Sha256: 1dd0e8376e35277579054c33b47e7bae9f3bf05e060bba671f5114db18e9bcef

Contents?: true

Size: 1.7 KB

Versions: 13

Compression:

Stored size: 1.7 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 = connection.get_records 'VM'
          data.delete_if do |vm|
            !vm[:is_a_template]
          end
          load(data)
        end

        def custom_templates
          data = connection.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 = connection.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 = connection.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 = connection.get_vm_by_name( name )
          get ref
        end

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

      end

    end
  end
end

Version data entries

13 entries across 13 versions & 7 rubygems

Version Path
fog-nirvanix-1.8.2 lib/fog/xenserver/models/compute/servers.rb
fog-nirvanix-1.8.1 lib/fog/xenserver/models/compute/servers.rb
fog-parser-fix-1.6.1 lib/fog/xenserver/models/compute/servers.rb
fog-test-again-1.6.0 lib/fog/xenserver/models/compute/servers.rb
fog-parser-fix-1.6.0 lib/fog/xenserver/models/compute/servers.rb
ey-vendored-backup-3.0.27 vendor/gems/fog/lib/fog/xenserver/models/compute/servers.rb
fog-sgonyea-1.8.1 lib/fog/xenserver/models/compute/servers.rb
fog-1.8.0 lib/fog/xenserver/models/compute/servers.rb
fog-maestrodev-1.7.0.20121114190951 lib/fog/xenserver/models/compute/servers.rb
fog-1.7.0 lib/fog/xenserver/models/compute/servers.rb
fog-1.6.0 lib/fog/xenserver/models/compute/servers.rb
fog-1.5.0 lib/fog/xenserver/models/compute/servers.rb
fog-1.4.0 lib/fog/xenserver/models/compute/servers.rb