fog-vsphere 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 33de161c475e9cbcdb6173110f8a00b119e05990
4
- data.tar.gz: 762edd7485573426607bb2f40443bf74b4d9feb7
3
+ metadata.gz: 4d30a391d089effa12a3ce332e51dbaa45ef22fc
4
+ data.tar.gz: 3d2ae5f7f2d377f2f9ccb7fc174e6ffad86eea23
5
5
  SHA512:
6
- metadata.gz: b94bbabc6860fd140fb689404c17ca55468deacd7a8d050b70171b4927a2a045b03c2916d37316cbec22d1d244884ad1d6b9b0bbe87d5eb0129c38274d65f2ea
7
- data.tar.gz: dd59992b8521755be866e80d7974e4074de33037acd00a556fb2055928cf86813216098edc830254d9724d653c5afb827fd8cbdeb8bb1bfb275e6ad6a055a1e8
6
+ metadata.gz: 421b024fe77dad72a17dfc72e373ccd989b6b834d65b3315f7d181628be8bff9a2956421bf78497558d83183dfc0a08276380199821b44d88218527d465ce840
7
+ data.tar.gz: b305b9c8afdeed0d9631b04eed403250d4a36167ebbc306b30122cf84809e7b0c694c2b3b218ddbb04a61b2acc2473af2600a06538c085633f5a17e8042bf854
@@ -1,3 +1,8 @@
1
+ ## v0.8.0 6/15/2016
2
+
3
+ * List hosts in a cluster
4
+ * Deploy VM on a specific cluster
5
+
1
6
  ## v0.7.0 5/16/2016
2
7
 
3
8
  * Optionally process runcmd when creating customspec from cloudinit
@@ -47,6 +47,8 @@ module Fog
47
47
  collection :cdroms
48
48
  model :rule
49
49
  collection :rules
50
+ model :host
51
+ collection :hosts
50
52
 
51
53
  request_path 'fog/vsphere/requests/compute'
52
54
  request :current_time
@@ -109,6 +111,7 @@ module Fog
109
111
  request :create_rule
110
112
  request :list_rules
111
113
  request :destroy_rule
114
+ request :list_hosts
112
115
 
113
116
  module Shared
114
117
  attr_reader :vsphere_is_vcenter
@@ -348,6 +351,48 @@ module Fog
348
351
  :datacenters => {
349
352
  "Solutions" => {:name => "Solutions", :status => "grey", :path => ['Solutions']}
350
353
  },
354
+ :datastores => {
355
+ 'Storage1' => {
356
+ 'id' => 'datastore-123456',
357
+ 'name' => 'Storage1',
358
+ 'datacenter' => 'Solutions',
359
+ 'type' => 'VMFS',
360
+ 'freespace' => 697471860736,
361
+ 'accessible' => true,
362
+ 'capacity' => 1099243192320,
363
+ 'uncommitted' => 977158537741,
364
+ 'cluster' => [],
365
+ },
366
+ 'datastore1' => {
367
+ 'id' => 'datastore-789123',
368
+ 'name' => 'datastore1',
369
+ 'datacenter' => 'Solutions',
370
+ 'type' => 'VMFS',
371
+ 'freespace' => 697471860736,
372
+ 'accessible' => true,
373
+ 'capacity' => 1099243192320,
374
+ 'uncommitted' => 977158537741,
375
+ 'cluster' => ['Solutionscluster'],
376
+ },
377
+ },
378
+ :networks => {
379
+ 'network1' => {
380
+ 'id' => 'dvportgroup-123456',
381
+ 'name' => 'network1',
382
+ 'datacenter' => 'Solutions',
383
+ 'accessible' => true,
384
+ 'virtualswitch' => nil,
385
+ 'cluster' => ['Solutionscluster'],
386
+ },
387
+ 'network2' => {
388
+ 'id' => 'dvportgroup-789123',
389
+ 'name' => 'network2',
390
+ 'datacenter' => 'Solutions',
391
+ 'accessible' => true,
392
+ 'virtualswitch' => nil,
393
+ 'cluster' => [],
394
+ },
395
+ },
351
396
  :folders => {
352
397
  'wibble' => {
353
398
  'name' => 'wibble',
@@ -417,6 +462,14 @@ module Fog
417
462
  :type => RbVmomi::VIM::ClusterAntiAffinityRuleSpec,
418
463
  :vm_ids => ['5032c8a5-9c5e-ba7a-3804-832a03e16381', '502916a3-b42e-17c7-43ce-b3206e9524dc']
419
464
  }
465
+ },
466
+ :hosts => {
467
+ 'Host1' => {
468
+ :datacenter => 'Solutions',
469
+ :cluster => 'Solutionscluster',
470
+ :name => 'host1.example.com',
471
+ :vm_ids => ['5032c8a5-9c5e-ba7a-3804-832a03e16381', '502916a3-b42e-17c7-43ce-b3206e9524dc']
472
+ }
420
473
  }
421
474
  }
422
475
  end
@@ -498,7 +551,7 @@ module Fog
498
551
  :ssl => @vsphere_ssl,
499
552
  :insecure => bad_cert,
500
553
  :debug => @vsphere_debug
501
-
554
+
502
555
  # Create a shadow class to change the behaviour of @connection.obj2xml
503
556
  # so that xsd:any types are converted to xsd:int (and not xsd:long).
504
557
  #
@@ -520,7 +573,7 @@ module Fog
520
573
  end
521
574
  end
522
575
  end
523
-
576
+
524
577
  break
525
578
  rescue OpenSSL::SSL::SSLError
526
579
  raise if bad_cert
@@ -18,11 +18,31 @@ module Fog
18
18
  :datacenter => datacenter
19
19
  }.merge(filters))
20
20
  end
21
-
21
+
22
+ def datastores(filters = { })
23
+ self.attributes[:datastores] ||= id.nil? ? [] : service.datastores({
24
+ :service => service,
25
+ :cluster => name,
26
+ :datacenter => datacenter
27
+ }.merge(filters))
28
+ end
29
+
30
+ def networks(filters = { })
31
+ self.attributes[:networks] ||= id.nil? ? [] : service.networks({
32
+ :service => service,
33
+ :cluster => name,
34
+ :datacenter => datacenter
35
+ }.merge(filters))
36
+ end
37
+
22
38
  def rules
23
39
  service.rules(:datacenter => datacenter, :cluster => name)
24
40
  end
25
41
 
42
+ def hosts
43
+ service.hosts(:datacenter => datacenter, :cluster => name)
44
+ end
45
+
26
46
  def to_s
27
47
  name
28
48
  end
@@ -5,10 +5,10 @@ module Fog
5
5
  autoload :Datastore, File.expand_path('../datastore', __FILE__)
6
6
 
7
7
  model Fog::Compute::Vsphere::Datastore
8
- attr_accessor :datacenter
8
+ attr_accessor :datacenter, :cluster
9
9
 
10
10
  def all(filters = {})
11
- load service.list_datastores(filters.merge(:datacenter => datacenter))
11
+ load service.list_datastores(filters.merge(:datacenter => datacenter, :cluster => cluster))
12
12
  end
13
13
 
14
14
  def get(id)
@@ -0,0 +1,18 @@
1
+ module Fog
2
+ module Compute
3
+ class Vsphere
4
+ class Host < Fog::Model
5
+ identity :name
6
+
7
+ attribute :datacenter
8
+ attribute :cluster
9
+ attribute :name
10
+ attribute :vm_ids
11
+
12
+ def to_s
13
+ name
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ module Fog
2
+ module Compute
3
+ class Vsphere
4
+ class Hosts < Fog::Collection
5
+ attribute :datacenter
6
+ attribute :cluster
7
+
8
+ model Fog::Compute::Vsphere::Host
9
+
10
+ def all(filters = {})
11
+ requires :datacenter, :cluster
12
+ load service.list_hosts(:datacenter => datacenter, :cluster => cluster)
13
+ end
14
+
15
+ def get(name)
16
+ all.find { |host| host.name == name } or
17
+ raise Fog::Compute::Vsphere::NotFound, "no such host #{name}"
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -5,10 +5,10 @@ module Fog
5
5
  autoload :Network, File.expand_path('../network', __FILE__)
6
6
 
7
7
  model Fog::Compute::Vsphere::Network
8
- attr_accessor :datacenter
8
+ attr_accessor :datacenter, :cluster
9
9
 
10
10
  def all(filters = {})
11
- f = { :datacenter => datacenter }.merge(filters)
11
+ f = { :datacenter => datacenter, :cluster => cluster }.merge(filters)
12
12
  load service.list_networks(f)
13
13
  end
14
14
 
@@ -27,12 +27,17 @@ module Fog
27
27
  get_raw_cluster(attributes[:cluster], attributes[:datacenter]).resourcePool
28
28
  end
29
29
  vmFolder = get_raw_vmfolder(attributes[:path], attributes[:datacenter])
30
+ if attributes.key?(:host)
31
+ host = get_raw_host(attributes[:host], attributes[:cluster], attributes[:datacenter])
32
+ else
33
+ host = nil
34
+ end
30
35
  # if any volume has a storage_pod set, we deploy the vm on a storage pod instead of the defined datastores
31
36
  pod = get_storage_pod(attributes)
32
37
  if pod
33
- vm = create_vm_on_storage_pod(pod, vm_cfg, vmFolder, resource_pool, attributes[:datacenter])
38
+ vm = create_vm_on_storage_pod(pod, vm_cfg, vmFolder, resource_pool, attributes[:datacenter], host)
34
39
  else
35
- vm = create_vm_on_datastore(vm_cfg, vmFolder, resource_pool)
40
+ vm = create_vm_on_datastore(vm_cfg, vmFolder, resource_pool, host)
36
41
  end
37
42
  vm.config.instanceUuid
38
43
  rescue => e
@@ -41,11 +46,11 @@ module Fog
41
46
 
42
47
  private
43
48
 
44
- def create_vm_on_datastore(vm_cfg, vmFolder, resource_pool)
45
- vm = vmFolder.CreateVM_Task(:config => vm_cfg, :pool => resource_pool).wait_for_completion
49
+ def create_vm_on_datastore(vm_cfg, vmFolder, resource_pool, host = nil)
50
+ vm = vmFolder.CreateVM_Task(:config => vm_cfg, :pool => resource_pool, :host => host).wait_for_completion
46
51
  end
47
52
 
48
- def create_vm_on_storage_pod(storage_pod, vm_cfg, vmFolder, resource_pool, datacenter)
53
+ def create_vm_on_storage_pod(storage_pod, vm_cfg, vmFolder, resource_pool, datacenter, host = nil)
49
54
  pod_spec = RbVmomi::VIM::StorageDrsPodSelectionSpec.new(
50
55
  :storagePod => get_raw_storage_pod(storage_pod, datacenter),
51
56
  )
@@ -55,6 +60,7 @@ module Fog
55
60
  :resourcePool => resource_pool,
56
61
  :podSelectionSpec => pod_spec,
57
62
  :configSpec => vm_cfg,
63
+ :host => host,
58
64
  )
59
65
  srm = @connection.serviceContent.storageResourceManager
60
66
  result = srm.RecommendDatastores(:storageSpec => storage_spec)
@@ -0,0 +1,16 @@
1
+ module Fog
2
+ module Compute
3
+ class Vsphere
4
+ class Real
5
+
6
+ protected
7
+
8
+ def get_raw_host(name, cluster_name, datacenter_name)
9
+ cluster = get_raw_cluster(cluster_name, datacenter_name)
10
+ cluster.host.find { |host| host.name == name } or
11
+ raise Fog::Compute::Vsphere::NotFound, "no such host #{name}"
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -4,16 +4,21 @@ module Fog
4
4
  class Real
5
5
  def list_datastores(filters = { })
6
6
  datacenter_name = filters[:datacenter]
7
+ cluster_name = filters.fetch(:cluster, nil)
7
8
  # default to show all datastores
8
9
  only_active = filters[:accessible] || false
9
- raw_datastores(datacenter_name).map do |datastore|
10
+ raw_datastores(datacenter_name, cluster_name).map do |datastore|
10
11
  next if only_active and !datastore.summary.accessible
11
12
  datastore_attributes(datastore, datacenter_name)
12
13
  end.compact
13
14
  end
14
15
 
15
- def raw_datastores(datacenter_name)
16
- find_raw_datacenter(datacenter_name).datastore
16
+ def raw_datastores(datacenter_name, cluster = nil)
17
+ if cluster.nil?
18
+ find_raw_datacenter(datacenter_name).datastore
19
+ else
20
+ get_raw_cluster(cluster, datacenter_name).datastore
21
+ end
17
22
  end
18
23
  protected
19
24
 
@@ -31,9 +36,16 @@ module Fog
31
36
  end
32
37
  end
33
38
  class Mock
34
- def list_datastores(datacenter_name)
35
- self.data[:datastores].values.select {|d| d['datacenter'] == datacenter_name[:datacenter]} or
36
- raise Fog::Compute::Vsphere::NotFound
39
+ def list_datastores(filters)
40
+ datacenter_name = filters[:datacenter]
41
+ cluster_name = filters.fetch(:cluster, nil)
42
+ if cluster_name.nil?
43
+ self.data[:datastores].values.select { |d| d['datacenter'] == datacenter_name } or
44
+ raise Fog::Compute::Vsphere::NotFound
45
+ else
46
+ self.data[:datastores].values.select { |d| d['datacenter'] == datacenter_name && d['cluster'].include?(cluster_name) } or
47
+ raise Fog::Compute::Vsphere::NotFound
48
+ end
37
49
  end
38
50
  end
39
51
  end
@@ -0,0 +1,28 @@
1
+ module Fog
2
+ module Compute
3
+ class Vsphere
4
+ class Real
5
+ def list_hosts(filters = {})
6
+ cluster = get_raw_cluster(filters[:cluster], filters[:datacenter])
7
+ cluster.host.map {|host| host_attributes(host, filters)}
8
+ end
9
+
10
+ protected
11
+
12
+ def host_attributes(host, filters)
13
+ {
14
+ datacenter: filters[:datacenter],
15
+ cluster: filters[:cluster],
16
+ name: host[:name],
17
+ vm_ids: host[:vm].map {|vm| vm.config.instanceUuid }
18
+ }
19
+ end
20
+ end
21
+ class Mock
22
+ def list_hosts(filters = {})
23
+ self.data[:hosts].values.select {|r| r[:datacenter] == filters[:datacenter] && r[:cluster] == filters[:cluster]}
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -4,16 +4,21 @@ module Fog
4
4
  class Real
5
5
  def list_networks(filters = { })
6
6
  datacenter_name = filters[:datacenter]
7
+ cluster_name = filters.fetch(:cluster, nil)
7
8
  # default to show all networks
8
9
  only_active = filters[:accessible] || false
9
- raw_networks(datacenter_name).map do |network|
10
+ raw_networks(datacenter_name, cluster_name).map do |network|
10
11
  next if only_active and !network.summary.accessible
11
12
  network_attributes(network, datacenter_name)
12
13
  end.compact
13
14
  end
14
15
 
15
- def raw_networks(datacenter_name)
16
- find_raw_datacenter(datacenter_name).network
16
+ def raw_networks(datacenter_name, cluster = nil)
17
+ if cluster.nil?
18
+ find_raw_datacenter(datacenter_name).network
19
+ else
20
+ get_raw_cluster(cluster, datacenter_name).network
21
+ end
17
22
  end
18
23
 
19
24
  protected
@@ -29,9 +34,16 @@ module Fog
29
34
  end
30
35
  end
31
36
  class Mock
32
- def list_networks(datacenter_name)
33
- self.data[:networks].values.select {|n| n['datacenter'] == datacenter_name[:datacenter]} or
34
- raise Fog::Compute::Vsphere::NotFound
37
+ def list_networks(filters)
38
+ datacenter_name = filters[:datacenter]
39
+ cluster_name = filters.fetch(:cluster, nil)
40
+ if cluster_name.nil?
41
+ self.data[:networks].values.select { |d| d['datacenter'] == datacenter_name } or
42
+ raise Fog::Compute::Vsphere::NotFound
43
+ else
44
+ self.data[:networks].values.select { |d| d['datacenter'] == datacenter_name && d['cluster'].include?(cluster_name) } or
45
+ raise Fog::Compute::Vsphere::NotFound
46
+ end
35
47
  end
36
48
  end
37
49
  end
@@ -121,6 +121,7 @@ module Fog
121
121
  esx_host = vm_mob_ref.collect!('runtime.host')['runtime.host']
122
122
  # The parent of the ESX host itself is a ComputeResource which has a resourcePool
123
123
  resource_pool = esx_host.parent.resourcePool
124
+ cluster_name = nil
124
125
  end
125
126
  # If the vm given did return a valid resource pool, default to using it for the clone.
126
127
  # Even if specific pools aren't implemented in this environment, we will still get back
@@ -129,6 +130,14 @@ module Fog
129
130
  # already set.
130
131
  resource_pool ||= vm_mob_ref.resourcePool.nil? ? esx_host.parent.resourcePool : vm_mob_ref.resourcePool
131
132
 
133
+ # Options['host']<~String>
134
+ # The target host for the virtual machine. Optional.
135
+ if options.key?('host') && !options['host'].empty? && !cluster_name.nil?
136
+ host = get_raw_host(options['host'], attributes[:cluster], options['datacenter'])
137
+ else
138
+ host = nil
139
+ end
140
+
132
141
  # Options['datastore']<~String>
133
142
  # Grab the datastore object if option is set
134
143
  datastore_obj = get_raw_datastore(options['datastore'], options['datacenter']) if options.key?('datastore')
@@ -578,9 +587,11 @@ module Fog
578
587
  # Next, create a Relocation Spec instance
579
588
  relocation_spec = RbVmomi::VIM.VirtualMachineRelocateSpec(:datastore => datastore_obj,
580
589
  :pool => resource_pool,
590
+ :host => host,
581
591
  :diskMoveType => :moveChildMostDiskBacking)
582
592
  else
583
593
  relocation_spec = RbVmomi::VIM.VirtualMachineRelocateSpec(:pool => resource_pool,
594
+ :host => host,
584
595
  :transform => options['transform'] || 'sparse')
585
596
  unless options.key?('storage_pod') and datastore_obj.nil?
586
597
  relocation_spec[:datastore] = datastore_obj
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module Vsphere
3
- VERSION = '0.7.0'
3
+ VERSION = '0.8.0'
4
4
  end
5
5
  end
@@ -0,0 +1,19 @@
1
+ Shindo.tests('Fog::Compute[:vsphere] | cluster collection', ['vsphere']) do
2
+
3
+ compute = Fog::Compute[:vsphere]
4
+
5
+ tests('Cluster collection') do
6
+ clusters = compute.datacenters.first.clusters
7
+
8
+ test('should not be empty') { not clusters.empty? }
9
+ test('should be a kind of Fog::Compute::Vsphere::Clusters') { clusters.kind_of? Fog::Compute::Vsphere::Clusters }
10
+ test('should get a cluster') { clusters.get('Solutionscluster').id == '1d4d9a3f-e4e8-4c40-b7fc-263850068fa4' }
11
+ end
12
+
13
+ tests('A cluster should') do
14
+ cluster = compute.datacenters.first.clusters.get('Solutionscluster')
15
+
16
+ test('have datastores') { cluster.datastores.first.kind_of? Fog::Compute::Vsphere::Datastore }
17
+ test('have networks') { cluster.networks.first.kind_of? Fog::Compute::Vsphere::Network }
18
+ end
19
+ end
@@ -0,0 +1,13 @@
1
+ Shindo.tests('Fog::Compute[:vsphere] | hosts collection', ['vsphere']) do
2
+
3
+ compute = Fog::Compute[:vsphere]
4
+ cluster = compute.datacenters.first.clusters.get('Solutionscluster')
5
+ hosts = cluster.hosts
6
+
7
+ tests('The hosts collection') do
8
+ test('should not be empty') { not hosts.empty? }
9
+ test('should be a kind of Fog::Compute::Vsphere::Hosts') { hosts.kind_of? Fog::Compute::Vsphere::Hosts }
10
+ test('should get hosts') { hosts.get('host1.example.com').name == 'host1.example.com' }
11
+ end
12
+
13
+ end
@@ -0,0 +1,18 @@
1
+ Shindo.tests('Fog::Compute[:vsphere] | list_datastores request', ['vsphere']) do
2
+
3
+ compute = Fog::Compute[:vsphere]
4
+
5
+ tests('The response with datastore filter should') do
6
+ response = compute.list_datastores(:datacenter => 'Solutions')
7
+ test('be a kind of Array') { response.kind_of? Array }
8
+ test('contain Hashes') { response.all? { |i| Hash === i } }
9
+ test("have 2 elements") {response.length == 2}
10
+ end
11
+
12
+ tests('The response with cluster filter should') do
13
+ response = compute.list_datastores(:datacenter => 'Solutions', :cluster => 'Solutionscluster')
14
+ test('be a kind of Array') { response.kind_of? Array }
15
+ test('contain Hashes') { response.all? { |i| Hash === i } }
16
+ test("have a single element") {response.length == 1}
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ Shindo.tests('Fog::Compute[:vsphere] | list_hosts request', ['vsphere']) do
2
+
3
+ compute = Fog::Compute[:vsphere]
4
+
5
+ tests('The response should') do
6
+ response = compute.list_hosts(:datacenter => 'Solutions', :cluster => 'Solutionscluster')
7
+ test('be a kind of Array') { response.kind_of? Array }
8
+ test('contain Hashes') { response.all? { |i| Hash === i } }
9
+ test("have 1 element") {response.length == 1}
10
+ end
11
+ end
@@ -0,0 +1,18 @@
1
+ Shindo.tests('Fog::Compute[:vsphere] | list_networks request', ['vsphere']) do
2
+
3
+ compute = Fog::Compute[:vsphere]
4
+
5
+ tests('The response with datastore filter should') do
6
+ response = compute.list_networks(:datacenter => 'Solutions')
7
+ test('be a kind of Array') { response.kind_of? Array }
8
+ test('contain Hashes') { response.all? { |i| Hash === i } }
9
+ test("have 2 elements") {response.length == 2}
10
+ end
11
+
12
+ tests('The response with cluster filter should') do
13
+ response = compute.list_networks(:datacenter => 'Solutions', :cluster => 'Solutionscluster')
14
+ test('be a kind of Array') { response.kind_of? Array }
15
+ test('contain Hashes') { response.all? { |i| Hash === i } }
16
+ test("have a single element") {response.length == 1}
17
+ end
18
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog-vsphere
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - J.R. Garcia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-16 00:00:00.000000000 Z
11
+ date: 2016-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fog-core
@@ -159,6 +159,8 @@ files:
159
159
  - lib/fog/vsphere/models/compute/datastores.rb
160
160
  - lib/fog/vsphere/models/compute/folder.rb
161
161
  - lib/fog/vsphere/models/compute/folders.rb
162
+ - lib/fog/vsphere/models/compute/host.rb
163
+ - lib/fog/vsphere/models/compute/hosts.rb
162
164
  - lib/fog/vsphere/models/compute/interface.rb
163
165
  - lib/fog/vsphere/models/compute/interfaces.rb
164
166
  - lib/fog/vsphere/models/compute/interfacetype.rb
@@ -195,6 +197,7 @@ files:
195
197
  - lib/fog/vsphere/requests/compute/get_datacenter.rb
196
198
  - lib/fog/vsphere/requests/compute/get_datastore.rb
197
199
  - lib/fog/vsphere/requests/compute/get_folder.rb
200
+ - lib/fog/vsphere/requests/compute/get_host.rb
198
201
  - lib/fog/vsphere/requests/compute/get_interface_type.rb
199
202
  - lib/fog/vsphere/requests/compute/get_network.rb
200
203
  - lib/fog/vsphere/requests/compute/get_resource_pool.rb
@@ -210,6 +213,7 @@ files:
210
213
  - lib/fog/vsphere/requests/compute/list_datacenters.rb
211
214
  - lib/fog/vsphere/requests/compute/list_datastores.rb
212
215
  - lib/fog/vsphere/requests/compute/list_folders.rb
216
+ - lib/fog/vsphere/requests/compute/list_hosts.rb
213
217
  - lib/fog/vsphere/requests/compute/list_interface_types.rb
214
218
  - lib/fog/vsphere/requests/compute/list_networks.rb
215
219
  - lib/fog/vsphere/requests/compute/list_processes.rb
@@ -249,6 +253,8 @@ files:
249
253
  - tests/helper.rb
250
254
  - tests/helpers/mock_helper.rb
251
255
  - tests/helpers/succeeds_helper.rb
256
+ - tests/models/compute/cluster_tests.rb
257
+ - tests/models/compute/hosts_tests.rb
252
258
  - tests/models/compute/rules_tests.rb
253
259
  - tests/models/compute/server_tests.rb
254
260
  - tests/models/compute/server_unit_tests.rb
@@ -258,6 +264,9 @@ files:
258
264
  - tests/requests/compute/get_network_tests.rb
259
265
  - tests/requests/compute/list_child_snapshots_tests.rb
260
266
  - tests/requests/compute/list_clusters_tests.rb
267
+ - tests/requests/compute/list_datastores_tests.rb
268
+ - tests/requests/compute/list_hosts_tests.rb
269
+ - tests/requests/compute/list_networks_tests.rb
261
270
  - tests/requests/compute/list_storage_pods_test.rb
262
271
  - tests/requests/compute/list_virtual_machines_tests.rb
263
272
  - tests/requests/compute/list_vm_cdroms_tests.rb
@@ -307,6 +316,8 @@ test_files:
307
316
  - tests/helper.rb
308
317
  - tests/helpers/mock_helper.rb
309
318
  - tests/helpers/succeeds_helper.rb
319
+ - tests/models/compute/cluster_tests.rb
320
+ - tests/models/compute/hosts_tests.rb
310
321
  - tests/models/compute/rules_tests.rb
311
322
  - tests/models/compute/server_tests.rb
312
323
  - tests/models/compute/server_unit_tests.rb
@@ -316,6 +327,9 @@ test_files:
316
327
  - tests/requests/compute/get_network_tests.rb
317
328
  - tests/requests/compute/list_child_snapshots_tests.rb
318
329
  - tests/requests/compute/list_clusters_tests.rb
330
+ - tests/requests/compute/list_datastores_tests.rb
331
+ - tests/requests/compute/list_hosts_tests.rb
332
+ - tests/requests/compute/list_networks_tests.rb
319
333
  - tests/requests/compute/list_storage_pods_test.rb
320
334
  - tests/requests/compute/list_virtual_machines_tests.rb
321
335
  - tests/requests/compute/list_vm_cdroms_tests.rb