fog-vsphere 0.3.0 → 0.4.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 +4 -4
- data/CHANGELOG.md +11 -0
- data/lib/fog/vsphere.rb +4 -2
- data/lib/fog/vsphere/compute.rb +41 -1
- data/lib/fog/vsphere/models/compute/cluster.rb +4 -0
- data/lib/fog/vsphere/models/compute/rule.rb +46 -0
- data/lib/fog/vsphere/models/compute/rules.rb +30 -0
- data/lib/fog/vsphere/models/compute/server.rb +1 -0
- data/lib/fog/vsphere/requests/compute/create_rule.rb +46 -0
- data/lib/fog/vsphere/requests/compute/create_vm.rb +17 -12
- data/lib/fog/vsphere/requests/compute/destroy_rule.rb +27 -0
- data/lib/fog/vsphere/requests/compute/get_cluster.rb +3 -1
- data/lib/fog/vsphere/requests/compute/list_rules.rb +31 -0
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +1 -1
- data/lib/fog/vsphere/version.rb +1 -1
- data/tests/models/compute/rules_tests.rb +34 -0
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3ecf2e2e7786673208a3301191bc8a2ccd5fc1f
|
4
|
+
data.tar.gz: c4282d6b04ab981c10e65d63ad071091743ece0e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49594f0acf240a9e7e8e49d8a0729f040c714de249e610c73cb6e2212e6a51c1cdc2340ea8bf493a2edfeb21f4e85fe3bcae2880dffe19a631256d8f7c1ca085
|
7
|
+
data.tar.gz: 19532eac88ce221bb6d0bdeef0511f399552625d5677faba6ca0c024bb0ebd24112d54acfd821d80d005fa76ef678e9e6f30464dfefb24c7d47cf5b6bcb43e85
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
## v0.4.0 12/15/2015
|
2
|
+
|
3
|
+
* Fix cannot create vm on "Resources" resource pool
|
4
|
+
* Fix Fog::Mock.reset
|
5
|
+
* Implement support for DRS rules
|
6
|
+
* Fix issues with boot options
|
7
|
+
* Add boot retry support
|
8
|
+
* Add support for annotation and extra_config
|
9
|
+
|
10
|
+
## v0.3.0 12/3/2015
|
11
|
+
|
1
12
|
* Fix update_vm_interface
|
2
13
|
* Add add folder.destroy
|
3
14
|
* Implement CD-ROM options
|
data/lib/fog/vsphere.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
require 'fog/core'
|
2
2
|
|
3
3
|
module Fog
|
4
|
-
module
|
5
|
-
autoload :
|
4
|
+
module Compute
|
5
|
+
autoload :Vsphere, File.expand_path('../vsphere/compute.rb', __FILE__)
|
6
|
+
end
|
6
7
|
|
8
|
+
module Vsphere
|
7
9
|
extend Fog::Provider
|
8
10
|
|
9
11
|
module Errors
|
data/lib/fog/vsphere/compute.rb
CHANGED
@@ -45,6 +45,8 @@ module Fog
|
|
45
45
|
model :process
|
46
46
|
model :cdrom
|
47
47
|
collection :cdroms
|
48
|
+
model :rule
|
49
|
+
collection :rules
|
48
50
|
|
49
51
|
request_path 'fog/vsphere/requests/compute'
|
50
52
|
request :current_time
|
@@ -104,6 +106,9 @@ module Fog
|
|
104
106
|
request :list_processes
|
105
107
|
request :upload_iso
|
106
108
|
request :folder_destroy
|
109
|
+
request :create_rule
|
110
|
+
request :list_rules
|
111
|
+
request :destroy_rule
|
107
112
|
|
108
113
|
module Shared
|
109
114
|
attr_reader :vsphere_is_vcenter
|
@@ -136,6 +141,7 @@ module Fog
|
|
136
141
|
:cpuHotAddEnabled => 'config.cpuHotAddEnabled',
|
137
142
|
:memoryHotAddEnabled => 'config.memoryHotAddEnabled',
|
138
143
|
:firmware => 'config.firmware',
|
144
|
+
:annotation => 'config.annotation',
|
139
145
|
}
|
140
146
|
|
141
147
|
def convert_vm_view_to_attr_hash(vms)
|
@@ -400,7 +406,18 @@ module Fog
|
|
400
406
|
:klass => "RbVmomi::VIM::ComputeResource"}
|
401
407
|
]
|
402
408
|
}
|
403
|
-
|
409
|
+
],
|
410
|
+
:rules => {
|
411
|
+
'anti-affinity-foo' => {
|
412
|
+
:datacenter => 'Solutions',
|
413
|
+
:cluster => 'Solutionscluster',
|
414
|
+
:key => 4242,
|
415
|
+
:name => 'anti-affinity-foo',
|
416
|
+
:enabled => true,
|
417
|
+
:type => RbVmomi::VIM::ClusterAntiAffinityRuleSpec,
|
418
|
+
:vm_ids => ['5032c8a5-9c5e-ba7a-3804-832a03e16381', '502916a3-b42e-17c7-43ce-b3206e9524dc']
|
419
|
+
}
|
420
|
+
}
|
404
421
|
}
|
405
422
|
end
|
406
423
|
end
|
@@ -481,6 +498,29 @@ module Fog
|
|
481
498
|
:ssl => @vsphere_ssl,
|
482
499
|
:insecure => bad_cert,
|
483
500
|
:debug => @vsphere_debug
|
501
|
+
|
502
|
+
# Create a shadow class to change the behaviour of @connection.obj2xml
|
503
|
+
# so that xsd:any types are converted to xsd:int (and not xsd:long).
|
504
|
+
#
|
505
|
+
# This is a known issue with RbVmomi.
|
506
|
+
#
|
507
|
+
# See https://communities.vmware.com/message/2505334 for discussion
|
508
|
+
# and https://github.com/rlane/rbvmomi/pull/30 for an unmerged
|
509
|
+
# pull request that fixes it in RbVmomi.
|
510
|
+
#
|
511
|
+
class <<@connection
|
512
|
+
def obj2xml xml, name, type, is_array, o, attrs={}
|
513
|
+
case o
|
514
|
+
when Integer
|
515
|
+
attrs['xsi:type'] = 'xsd:int' if type(type) == RbVmomi::BasicTypes::AnyType
|
516
|
+
xml.tag! name, o.to_s, attrs
|
517
|
+
xml
|
518
|
+
else
|
519
|
+
super xml, name, type, is_array, o, attrs
|
520
|
+
end
|
521
|
+
end
|
522
|
+
end
|
523
|
+
|
484
524
|
break
|
485
525
|
rescue OpenSSL::SSL::SSLError
|
486
526
|
raise if bad_cert
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Vsphere
|
4
|
+
# ClusterRuleInfo
|
5
|
+
class Rule < Fog::Model
|
6
|
+
identity :key
|
7
|
+
|
8
|
+
attribute :datacenter
|
9
|
+
attribute :cluster
|
10
|
+
attribute :name
|
11
|
+
attribute :enabled
|
12
|
+
# Type should be a class - either
|
13
|
+
# - RbVmomi::VIM::ClusterAntiAffinityRuleSpec
|
14
|
+
# - RbVmomi::VIM::ClusterAffinityRuleSpec
|
15
|
+
attribute :type
|
16
|
+
attribute :vm_ids
|
17
|
+
|
18
|
+
def vms
|
19
|
+
vm_ids.map {|id| service.servers.get(id, datacenter) }
|
20
|
+
end
|
21
|
+
|
22
|
+
def vms=(vms)
|
23
|
+
self.vm_ids = vms.map(&:instance_uuid)
|
24
|
+
end
|
25
|
+
|
26
|
+
def save
|
27
|
+
requires :datacenter, :cluster, :name, :enabled, :type, :vm_ids
|
28
|
+
if vm_ids.length < 2
|
29
|
+
raise ArgumentError, "A rule must have at least 2 VMs"
|
30
|
+
end
|
31
|
+
if persisted?
|
32
|
+
raise "Update is not supported yet"
|
33
|
+
else
|
34
|
+
self.key = service.create_rule(attributes)
|
35
|
+
end
|
36
|
+
reload
|
37
|
+
end
|
38
|
+
|
39
|
+
def destroy
|
40
|
+
service.destroy_rule(attributes)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Vsphere
|
4
|
+
class Rules < Fog::Collection
|
5
|
+
autoload :Rule, File.expand_path('../rule', __FILE__)
|
6
|
+
|
7
|
+
model Fog::Compute::Vsphere::Rule
|
8
|
+
attribute :datacenter
|
9
|
+
attribute :cluster
|
10
|
+
|
11
|
+
def all(filters = {})
|
12
|
+
requires :datacenter, :cluster
|
13
|
+
load service.list_rules(:datacenter => datacenter, :cluster => cluster)
|
14
|
+
end
|
15
|
+
|
16
|
+
def get(key_or_name)
|
17
|
+
all.find {|rule| [rule.key, rule.name].include? key_or_name } or
|
18
|
+
raise Fog::Compute::Vsphere::NotFound, "no such rule #{key_or_name}"
|
19
|
+
end
|
20
|
+
|
21
|
+
# Pass datacenter/cluster to every new rule
|
22
|
+
def new(attributes={})
|
23
|
+
requires :datacenter, :cluster
|
24
|
+
super(attributes.merge(datacenter: datacenter, cluster: cluster))
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Vsphere
|
4
|
+
class Real
|
5
|
+
def create_rule(attributes={})
|
6
|
+
cluster = get_raw_cluster(attributes[:cluster], attributes[:datacenter])
|
7
|
+
# Check if it already exists and blow up if it does
|
8
|
+
# (otherwise ESX just happily accepts it and then considers it a conflict)
|
9
|
+
rule = cluster.configurationEx.rule.find {|n| n[:name] == attributes[:name]}
|
10
|
+
if rule
|
11
|
+
raise ArgumentError, "Rule #{attributes[:name]} already exists!"
|
12
|
+
end
|
13
|
+
# First, create the rulespec
|
14
|
+
vms = attributes[:vm_ids].to_a.map {|id| get_vm_ref(id, attributes[:datacenter])}
|
15
|
+
spec = attributes[:type].new(
|
16
|
+
name: attributes[:name],
|
17
|
+
enabled: attributes[:enabled],
|
18
|
+
vm: vms
|
19
|
+
)
|
20
|
+
# Now, attach it to the cluster
|
21
|
+
cluster_spec = RbVmomi::VIM.ClusterConfigSpecEx(rulesSpec: [
|
22
|
+
RbVmomi::VIM.ClusterRuleSpec(
|
23
|
+
operation: RbVmomi::VIM.ArrayUpdateOperation('add'),
|
24
|
+
info: spec
|
25
|
+
)
|
26
|
+
])
|
27
|
+
ret = cluster.ReconfigureComputeResource_Task(spec: cluster_spec, modify: true).wait_for_completion
|
28
|
+
rule = cluster.configurationEx.rule.find {|n| n[:name] == attributes[:name]}
|
29
|
+
if rule
|
30
|
+
return rule[:key]
|
31
|
+
else
|
32
|
+
raise Fog::Vsphere::Errors::ServiceError, "Unknown error creating rule #{attributes[:name]}"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
class Mock
|
38
|
+
def create_rule(attributes={})
|
39
|
+
attributes[:key] = rand(9999)
|
40
|
+
self.data[:rules][attributes[:name]] = attributes
|
41
|
+
attributes[:key]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -7,6 +7,7 @@ module Fog
|
|
7
7
|
|
8
8
|
vm_cfg = {
|
9
9
|
:name => attributes[:name],
|
10
|
+
:annotation => attributes[:annotation],
|
10
11
|
:guestId => attributes[:guest_id],
|
11
12
|
:version => attributes[:hardware_version],
|
12
13
|
:files => { :vmPathName => vm_path_name(attributes) },
|
@@ -19,8 +20,8 @@ module Fog
|
|
19
20
|
vm_cfg[:cpuHotAddEnabled] = attributes[:cpuHotAddEnabled] if attributes.key?(:cpuHotAddEnabled)
|
20
21
|
vm_cfg[:memoryHotAddEnabled] = attributes[:memoryHotAddEnabled] if attributes.key?(:memoryHotAddEnabled)
|
21
22
|
vm_cfg[:firmware] = attributes[:firmware] if attributes.key?(:firmware)
|
22
|
-
vm_cfg[:bootOptions] = boot_options(attributes) if attributes.key?(:boot_order)
|
23
|
-
resource_pool = if attributes[:resource_pool]
|
23
|
+
vm_cfg[:bootOptions] = boot_options(attributes) if attributes.key?(:boot_order) || attributes.key?(:boot_retry)
|
24
|
+
resource_pool = if attributes[:resource_pool] && attributes[:resource_pool] != 'Resources'
|
24
25
|
get_raw_resource_pool(attributes[:resource_pool], attributes[:cluster], attributes[:datacenter])
|
25
26
|
else
|
26
27
|
get_raw_cluster(attributes[:cluster], attributes[:datacenter]).resourcePool
|
@@ -106,10 +107,18 @@ module Fog
|
|
106
107
|
def boot_options attributes
|
107
108
|
# NOTE: you must be using vsphere_rev 5.0 or greater to set boot_order
|
108
109
|
# e.g. Fog::Compute.new(provider: "vsphere", vsphere_rev: "5.5", etc)
|
109
|
-
|
110
|
-
|
111
|
-
:bootOrder
|
112
|
-
|
110
|
+
options = {}
|
111
|
+
if @vsphere_rev.to_f >= 5 and attributes[:boot_order]
|
112
|
+
options[:bootOrder] = boot_order(attributes)
|
113
|
+
end
|
114
|
+
|
115
|
+
# Set attributes[:boot_retry] to a delay in miliseconds to enable boot retries
|
116
|
+
if attributes[:boot_retry]
|
117
|
+
options[:bootRetryEnabled] = true
|
118
|
+
options[:bootRetryDelay] = attributes[:boot_retry]
|
119
|
+
end
|
120
|
+
|
121
|
+
options.empty? ? nil : RbVmomi::VIM::VirtualMachineBootOptions.new(options)
|
113
122
|
end
|
114
123
|
|
115
124
|
def boot_order attributes
|
@@ -280,12 +289,8 @@ module Fog
|
|
280
289
|
end
|
281
290
|
|
282
291
|
def extra_config attributes
|
283
|
-
[
|
284
|
-
|
285
|
-
:key => 'bios.bootOrder',
|
286
|
-
:value => 'ethernet0'
|
287
|
-
}
|
288
|
-
]
|
292
|
+
extra_config = attributes[:extra_config] || {'bios.bootOrder' => 'ethernet0'}
|
293
|
+
extra_config.map {|k,v| {:key => k, :value => v.to_s} }
|
289
294
|
end
|
290
295
|
end
|
291
296
|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Vsphere
|
4
|
+
class Real
|
5
|
+
def destroy_rule(attributes = {})
|
6
|
+
cluster = get_raw_cluster(attributes[:cluster], attributes[:datacenter])
|
7
|
+
rule = cluster.configurationEx.rule.find {|rule| rule.key == attributes[:key]}
|
8
|
+
raise Fog::Vsphere::Error::NotFound, "rule #{attributes[:key]} not found" unless rule
|
9
|
+
delete_spec = RbVmomi::VIM.ClusterConfigSpecEx(rulesSpec: [
|
10
|
+
RbVmomi::VIM.ClusterRuleSpec(
|
11
|
+
operation: RbVmomi::VIM.ArrayUpdateOperation('remove'),
|
12
|
+
removeKey: rule.key
|
13
|
+
)
|
14
|
+
])
|
15
|
+
cluster.ReconfigureComputeResource_Task(spec: delete_spec, modify: true).wait_for_completion
|
16
|
+
end
|
17
|
+
end
|
18
|
+
class Mock
|
19
|
+
def destroy_rule(attributes = {})
|
20
|
+
rule = self.data[:rules][attributes[:name]]
|
21
|
+
raise Fog::Vsphere::Error::NotFound unless rule
|
22
|
+
self.data[:rules].delete(attributes[:name])
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Vsphere
|
4
|
+
class Real
|
5
|
+
def list_rules(filters = {})
|
6
|
+
cluster = get_raw_cluster(filters[:cluster], filters[:datacenter])
|
7
|
+
cluster.configurationEx.rule.map {|r| rule_attributes r, filters}
|
8
|
+
end
|
9
|
+
|
10
|
+
protected
|
11
|
+
|
12
|
+
def rule_attributes(rule, filters)
|
13
|
+
{
|
14
|
+
datacenter: filters[:datacenter],
|
15
|
+
cluster: filters[:cluster],
|
16
|
+
key: rule[:key],
|
17
|
+
name: rule[:name],
|
18
|
+
enabled: rule[:enabled],
|
19
|
+
type: rule.class,
|
20
|
+
vm_ids: rule[:vm].map {|vm| vm.config.instanceUuid }
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
class Mock
|
25
|
+
def list_rules(filters = {})
|
26
|
+
self.data[:rules].values.select {|r| r[:datacenter] == filters[:datacenter] && r[:cluster] == filters[:cluster]}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -108,7 +108,7 @@ module Fog
|
|
108
108
|
|
109
109
|
# Options['resource_pool']<~Array>
|
110
110
|
# Now find _a_ resource pool to use for the clone if one is not specified
|
111
|
-
if ( options.key?('resource_pool') && options['resource_pool'].is_a?(Array) && options['resource_pool'].length == 2 )
|
111
|
+
if ( options.key?('resource_pool') && options['resource_pool'].is_a?(Array) && options['resource_pool'].length == 2 && options['resource_pool'][1] != 'Resources')
|
112
112
|
cluster_name = options['resource_pool'][0]
|
113
113
|
pool_name = options['resource_pool'][1]
|
114
114
|
resource_pool = get_raw_resource_pool(pool_name, cluster_name, options['datacenter'])
|
data/lib/fog/vsphere/version.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
Shindo.tests('Fog::Compute[:vsphere] | rules collection', ['vsphere']) do
|
2
|
+
|
3
|
+
compute = Fog::Compute[:vsphere]
|
4
|
+
cluster = compute.datacenters.first.clusters.get('Solutionscluster')
|
5
|
+
servers = compute.servers
|
6
|
+
rules = cluster.rules
|
7
|
+
|
8
|
+
tests('The rules collection') do
|
9
|
+
test('should not be empty') { not rules.empty? }
|
10
|
+
test('should be a kind of Fog::Compute::Vsphere::Rules') { rules.kind_of? Fog::Compute::Vsphere::Rules }
|
11
|
+
test('should get rules') { rules.get('anti-affinity-foo').key == 4242 }
|
12
|
+
test('should destroy rules') { rules.first.destroy; rules.reload; rules.empty? }
|
13
|
+
test('should create rules') do
|
14
|
+
r = rules.new({
|
15
|
+
name: 'affinity-foo',
|
16
|
+
enabled: true,
|
17
|
+
type: RbVmomi::VIM::ClusterAffinityRuleSpec
|
18
|
+
})
|
19
|
+
r.vms = [servers.get('5032c8a5-9c5e-ba7a-3804-832a03e16381'), servers.get('502916a3-b42e-17c7-43ce-b3206e9524dc')]
|
20
|
+
r.save
|
21
|
+
rules.reload
|
22
|
+
rules.get('affinity-foo').key > 0
|
23
|
+
end
|
24
|
+
raises(ArgumentError, 'should not create rules with <2 vms') do
|
25
|
+
rules.create({
|
26
|
+
name: 'affinity-foo',
|
27
|
+
enabled: true,
|
28
|
+
type: RbVmomi::VIM::ClusterAffinityRuleSpec,
|
29
|
+
vm_ids: ['5032c8a5-9c5e-ba7a-3804-832a03e16381']
|
30
|
+
})
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
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.
|
4
|
+
version: 0.4.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: 2015-12-
|
11
|
+
date: 2015-12-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog-core
|
@@ -154,6 +154,8 @@ files:
|
|
154
154
|
- lib/fog/vsphere/models/compute/process.rb
|
155
155
|
- lib/fog/vsphere/models/compute/resource_pool.rb
|
156
156
|
- lib/fog/vsphere/models/compute/resource_pools.rb
|
157
|
+
- lib/fog/vsphere/models/compute/rule.rb
|
158
|
+
- lib/fog/vsphere/models/compute/rules.rb
|
157
159
|
- lib/fog/vsphere/models/compute/scsicontroller.rb
|
158
160
|
- lib/fog/vsphere/models/compute/server.rb
|
159
161
|
- lib/fog/vsphere/models/compute/servers.rb
|
@@ -169,8 +171,10 @@ files:
|
|
169
171
|
- lib/fog/vsphere/models/compute/volumes.rb
|
170
172
|
- lib/fog/vsphere/requests/compute/cloudinit_to_customspec.rb
|
171
173
|
- lib/fog/vsphere/requests/compute/create_folder.rb
|
174
|
+
- lib/fog/vsphere/requests/compute/create_rule.rb
|
172
175
|
- lib/fog/vsphere/requests/compute/create_vm.rb
|
173
176
|
- lib/fog/vsphere/requests/compute/current_time.rb
|
177
|
+
- lib/fog/vsphere/requests/compute/destroy_rule.rb
|
174
178
|
- lib/fog/vsphere/requests/compute/folder_destroy.rb
|
175
179
|
- lib/fog/vsphere/requests/compute/get_cluster.rb
|
176
180
|
- lib/fog/vsphere/requests/compute/get_compute_resource.rb
|
@@ -196,6 +200,7 @@ files:
|
|
196
200
|
- lib/fog/vsphere/requests/compute/list_networks.rb
|
197
201
|
- lib/fog/vsphere/requests/compute/list_processes.rb
|
198
202
|
- lib/fog/vsphere/requests/compute/list_resource_pools.rb
|
203
|
+
- lib/fog/vsphere/requests/compute/list_rules.rb
|
199
204
|
- lib/fog/vsphere/requests/compute/list_server_types.rb
|
200
205
|
- lib/fog/vsphere/requests/compute/list_storage_pods.rb
|
201
206
|
- lib/fog/vsphere/requests/compute/list_templates.rb
|
@@ -229,6 +234,7 @@ files:
|
|
229
234
|
- tests/helper.rb
|
230
235
|
- tests/helpers/mock_helper.rb
|
231
236
|
- tests/helpers/succeeds_helper.rb
|
237
|
+
- tests/models/compute/rules_tests.rb
|
232
238
|
- tests/models/compute/server_tests.rb
|
233
239
|
- tests/models/compute/servers_tests.rb
|
234
240
|
- tests/requests/compute/current_time_tests.rb
|
@@ -284,6 +290,7 @@ test_files:
|
|
284
290
|
- tests/helper.rb
|
285
291
|
- tests/helpers/mock_helper.rb
|
286
292
|
- tests/helpers/succeeds_helper.rb
|
293
|
+
- tests/models/compute/rules_tests.rb
|
287
294
|
- tests/models/compute/server_tests.rb
|
288
295
|
- tests/models/compute/servers_tests.rb
|
289
296
|
- tests/requests/compute/current_time_tests.rb
|