Sha256: 6d70e6cb775bc02ec525842194faa6644f509447031147f6885d5a407d3f170e

Contents?: true

Size: 1.76 KB

Versions: 43

Compression:

Stored size: 1.76 KB

Contents

module Fog
  module Compute
    class Vsphere
      class Real
        def list_server_types(filters={})
          datacenter_name = filters[:datacenter]
          servertypes=raw_server_types(datacenter_name)
          if servertypes
            servertypes.map do | servertype |
               server_type_attributes(servertype, datacenter_name) 
            end.compact
          else
            nil
          end
          #select{ | guestdesc | guestdesc.select{ | k, v | filter.has_key?(k) and filter[k] == v }==filter }
        end
      
        def raw_server_types(datacenter_name, filter={})
          datacenter=find_raw_datacenter(datacenter_name)
          environmentBrowser=datacenter.hostFolder.childEntity.grep(RbVmomi::VIM::ComputeResource).first.environmentBrowser
          if environmentBrowser
            environmentBrowser.QueryConfigOption[:guestOSDescriptor]
          end
        end
        
        protected
        
        def server_type_attributes(servertype, datacenter)
          {
            :id         => servertype.id,
            :name       => servertype.id,
            :family     => servertype.family,
            :fullname   => servertype.fullName,
            :datacenter => datacenter,
          }          
        end
      end
      class Mock
        def list_server_types(datacenter_name)
          [{:id=>"rhel6Guest", 
            :name=>"rhel6Guest", 
            :family=>"linuxGuest", 
            :fullname=>"Red Hat Enterprise Linux 6 (32-Bit)", 
            :datacenter=>"Solutions"}, 
           {:id=>"rhel5_64Guest", 
            :name=>"rhel5_64Guest", 
            :family=>"linuxGuest", 
            :fullname=>"Red Hat Enterprise Linux 5 (64-Bit)", 
            :datacenter=>"Solutions"}]
        end
      end

    end
  end
end

Version data entries

43 entries across 43 versions & 3 rubygems

Version Path
fog-maestrodev-1.20.0.20140305101839 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.20.0.20140305101305 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.19.0.20140212012611 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-1.20.0 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.19.0.20140110004459 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.19.0.20140110003812 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.19.0.20140109202555 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.19.0.20140107192102 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.19.0.20140107142106 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.19.0.20131219203941 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.18.0.20131219193542 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-1.19.0 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.18.0.20131219033443 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.18.0.20131219032002 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.18.0.20131219030716 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.18.0.20131219022322 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.18.0.20131218202447 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.18.0.20131209091424 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.18.0.20131209090811 lib/fog/vsphere/requests/compute/list_server_types.rb
fog-maestrodev-1.18.0.20131206115947 lib/fog/vsphere/requests/compute/list_server_types.rb