fog-vsphere 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|