Sha256: a08ace57960c332067961693f8b7f9ff2a8dda09b4704fddb1b2af582a7ca690

Contents?: true

Size: 1.67 KB

Versions: 21

Compression:

Stored size: 1.67 KB

Contents

require 'fog/core/collection'
require 'fog/xenserver/models/compute/server'

module Fog
  module Compute
    class XenServer

      class Servers < Fog::Collection

        model Fog::Compute::XenServer::Server

        def templates
          data = service.get_records 'VM'
          data.delete_if do |vm|
            !vm[:is_a_template]
          end
          load(data)
        end

        def custom_templates
          data = service.get_records 'VM'
          data.delete_if do |vm|
            !vm[:is_a_template] or !vm[:other_config]['default_template'].nil?
          end
          load(data)
        end

        def builtin_templates
          data = service.get_records 'VM'
          data.delete_if do |vm|
            !vm[:is_a_template] or vm[:other_config]['default_template'].nil?
          end
          load(data)
        end

        def all(options = {})
          data = service.get_records 'VM'
          # Exclude templates
          data.delete_if { |vm| vm[:is_control_domain] or vm[:is_a_template] }
          data.delete_if { |vm| vm[:is_a_snapshot] and !options[:include_snapshots] }
          data.delete_if { |vm| options[:name_matches] and (vm[:name_label] !~ /#{Regexp.escape(options[:name_matches])}/i ) }
          data.delete_if { |vm| options[:name_equals] and (vm[:name_label] != options[:name_equals] ) }
          load(data)
        end

        def get_by_name( name )
          ref = service.get_vm_by_name( name )
          get ref
        end

        def get( vm_ref )
          if vm_ref && vm = service.get_record( vm_ref, 'VM' )
            new(vm)
          end
        rescue Fog::XenServer::NotFound
          nil
        end

      end

    end
  end
end

Version data entries

21 entries across 21 versions & 6 rubygems

Version Path
gapinc-fog-1.12.1.2.1 lib/fog/xenserver/models/compute/servers.rb
fog-1.14.0 lib/fog/xenserver/models/compute/servers.rb
fog-1.13.0 lib/fog/xenserver/models/compute/servers.rb
gapinc-fog-1.12.1.2 lib/fog/xenserver/models/compute/servers.rb
gapinc-fog-1.12.1.1 lib/fog/xenserver/models/compute/servers.rb
gapinc-fog-1.12.1a lib/fog/xenserver/models/compute/servers.rb
gapinc-fog-1.12.1 lib/fog/xenserver/models/compute/servers.rb
fog-1.12.1 lib/fog/xenserver/models/compute/servers.rb
fog-1.12.0 lib/fog/xenserver/models/compute/servers.rb
hpfog-0.0.20 lib/fog/xenserver/models/compute/servers.rb
vagrant-shell-0.2.6 vendor/bundle/gems/fog-1.10.1/lib/fog/xenserver/models/compute/servers.rb
vagrant-shell-0.2.5 vendor/bundle/gems/fog-1.10.1/lib/fog/xenserver/models/compute/servers.rb
fog-1.11.1 lib/fog/xenserver/models/compute/servers.rb
fog-1.11.0 lib/fog/xenserver/models/compute/servers.rb
fog-1.10.1 lib/fog/xenserver/models/compute/servers.rb
fog-test-me-1.10.0 lib/fog/xenserver/models/compute/servers.rb
fog-1.10.0 lib/fog/xenserver/models/compute/servers.rb
fog-1.9.0 lib/fog/xenserver/models/compute/servers.rb
fog-maestrodev-1.8.0.20130114204828 lib/fog/xenserver/models/compute/servers.rb
fog-maestrodev-1.8.0.20130111070250 lib/fog/xenserver/models/compute/servers.rb