Sha256: 58ccb6fc5f8212489c5145c24db201565f3dd77bc4a81a266efdc1ec744a747c

Contents?: true

Size: 1.26 KB

Versions: 13

Compression:

Stored size: 1.26 KB

Contents

module Fog
  module Vsphere
    class Compute
      class Servers < Fog::Collection
        model Fog::Vsphere::Compute::Server
        attr_accessor :datacenter
        attr_accessor :network
        attr_accessor :cluster
        attr_accessor :resource_pool
        attr_accessor :folder
        attr_accessor :recursive

        # 'folder' => '/Datacenters/vm/Jeff/Templates' will be MUCH faster.
        # than simply listing everything.
        def all(filters = {})
          f = {
            datacenter: datacenter,
            cluster: cluster,
            network: network,
            resource_pool: resource_pool,
            folder: folder,
            recursive: recursive
          }.merge(filters)

          load service.list_virtual_machines(f)
        end

        def get(id, datacenter = nil)
          new service.get_virtual_machine id, datacenter, folder, recursive
        rescue Fog::Vsphere::Compute::NotFound
          nil
        end

        # Pass attributes we know about down to any VM we're creating
        def new(attributes = {})
          super({
            datacenter: datacenter,
            path: folder,
            cluster: cluster,
            resource_pool: resource_pool
          }.merge(attributes))
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
fog-vsphere-3.7.0 lib/fog/vsphere/models/compute/servers.rb
fog-vsphere-3.6.8 lib/fog/vsphere/models/compute/servers.rb
fog-vsphere-3.6.7 lib/fog/vsphere/models/compute/servers.rb
fog-vsphere-3.6.6 lib/fog/vsphere/models/compute/servers.rb
fog-vsphere-3.6.5 lib/fog/vsphere/models/compute/servers.rb
fog-vsphere-3.6.4 lib/fog/vsphere/models/compute/servers.rb
fog-vsphere-3.6.3 lib/fog/vsphere/models/compute/servers.rb
fog-vsphere-3.6.2 lib/fog/vsphere/models/compute/servers.rb
fog-vsphere-3.5.3 lib/fog/vsphere/models/compute/servers.rb
fog-vsphere-3.6.0 lib/fog/vsphere/models/compute/servers.rb
fog-vsphere-3.5.2 lib/fog/vsphere/models/compute/servers.rb
fog-vsphere-3.5.1 lib/fog/vsphere/models/compute/servers.rb
fog-vsphere-3.5.0 lib/fog/vsphere/models/compute/servers.rb