beaker-vcloud 1.1.0 → 2.0.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/.github/dependabot.yml +9 -0
- data/.github/workflows/release.yml +2 -2
- data/.github/workflows/test.yml +30 -7
- data/.rubocop.yml +5 -0
- data/.rubocop_todo.yml +292 -0
- data/CHANGELOG.md +25 -0
- data/Gemfile +6 -22
- data/Rakefile +12 -111
- data/beaker-vcloud.gemspec +19 -17
- data/bin/beaker-vcloud +1 -3
- data/lib/beaker/hypervisor/vcloud.rb +79 -88
- data/lib/beaker-vcloud/version.rb +1 -1
- data/spec/beaker/hypervisor/vcloud_spec.rb +39 -49
- data/spec/mock_vsphere.rb +284 -0
- data/spec/mock_vsphere_helper.rb +167 -0
- data/spec/spec_helper.rb +8 -6
- metadata +72 -28
@@ -0,0 +1,284 @@
|
|
1
|
+
class MockRbVmomiSnapshot
|
2
|
+
attr_accessor :name, :rootSnapshotList, :childSnapshotList
|
3
|
+
|
4
|
+
def initialize
|
5
|
+
@name = nil
|
6
|
+
@rootSnapshotList = []
|
7
|
+
@childSnapshotList = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def print_nested_array(arg)
|
11
|
+
str = '[ '
|
12
|
+
arg.each do |arry|
|
13
|
+
if arry.is_a?(Array)
|
14
|
+
str += print_nested_array(arry)
|
15
|
+
elsif arry.is_a?(MockRbVmomiSnapshot)
|
16
|
+
str += arry.to_s + ', '
|
17
|
+
end
|
18
|
+
end
|
19
|
+
str + ' ]'
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_s
|
23
|
+
"Snapshot(name: #{@name}, rootSnapshotlist: #{print_nested_array(@rootSnapshotList)}, childSnapshotList: #{print_nested_array(@childSnapshotList)})"
|
24
|
+
end
|
25
|
+
|
26
|
+
def snapshot
|
27
|
+
self
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class MockRbVmomiVM
|
32
|
+
attr_accessor :snapshot, :name, :state
|
33
|
+
|
34
|
+
def info
|
35
|
+
self
|
36
|
+
end
|
37
|
+
|
38
|
+
def process_snaphash(snaphash)
|
39
|
+
shotlist = []
|
40
|
+
snaphash.each do |name, subsnaps|
|
41
|
+
new_snap = MockRbVmomiSnapshot.new
|
42
|
+
new_snap.name = name
|
43
|
+
new_snap.childSnapshotList = process_snaphash(subsnaps) if subsnaps.is_a?(Hash)
|
44
|
+
shotlist << new_snap
|
45
|
+
end
|
46
|
+
shotlist
|
47
|
+
end
|
48
|
+
|
49
|
+
def get_snapshot(name, snaplist = @snapshot.rootSnapshotList)
|
50
|
+
snapshot = nil
|
51
|
+
snaplist.each do |snap|
|
52
|
+
if snap.is_a?(Array)
|
53
|
+
snapshot = get_snapshot(snap, name)
|
54
|
+
elsif snap.name == name
|
55
|
+
snapshot = snap.snapshot
|
56
|
+
end
|
57
|
+
end
|
58
|
+
snapshot
|
59
|
+
end
|
60
|
+
|
61
|
+
def initialize(name, snaphash)
|
62
|
+
@name = name
|
63
|
+
@snapshot = MockRbVmomiSnapshot.new
|
64
|
+
@snapshot.name = name
|
65
|
+
@snapshot.rootSnapshotList = process_snaphash(snaphash)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
class MockRbVmomiConnection
|
70
|
+
class CustomizationSpecManager
|
71
|
+
class CustomizationSpec
|
72
|
+
def spec
|
73
|
+
true
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def initialize
|
78
|
+
@customizationspec = CustomizationSpec.new
|
79
|
+
end
|
80
|
+
|
81
|
+
def GetCustomizationSpec(_arg)
|
82
|
+
@customizationspec
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
class PropertyCollector
|
87
|
+
class Result
|
88
|
+
def initialize(name, object)
|
89
|
+
@name = name
|
90
|
+
@object = object
|
91
|
+
end
|
92
|
+
|
93
|
+
def val
|
94
|
+
@name
|
95
|
+
end
|
96
|
+
|
97
|
+
def obj
|
98
|
+
@object
|
99
|
+
end
|
100
|
+
|
101
|
+
def propSet
|
102
|
+
[self]
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
class ResultContainer
|
107
|
+
attr_accessor :token
|
108
|
+
|
109
|
+
def initialize
|
110
|
+
@results = []
|
111
|
+
end
|
112
|
+
|
113
|
+
def objects
|
114
|
+
@results
|
115
|
+
end
|
116
|
+
|
117
|
+
def add_object(obj)
|
118
|
+
@results << obj
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
def initialize
|
123
|
+
@results = ResultContainer.new
|
124
|
+
end
|
125
|
+
|
126
|
+
def RetrievePropertiesEx(_hash)
|
127
|
+
@results.token = true
|
128
|
+
@results
|
129
|
+
end
|
130
|
+
|
131
|
+
def ContinueRetrievePropertiesEx(_token)
|
132
|
+
@results.token = false
|
133
|
+
@results
|
134
|
+
end
|
135
|
+
|
136
|
+
def add_result(name, object)
|
137
|
+
@results.add_object(Result.new(name, object))
|
138
|
+
end
|
139
|
+
|
140
|
+
def WaitForUpdates(_arg)
|
141
|
+
result = OpenStruct.new
|
142
|
+
result.version = 'version'
|
143
|
+
result
|
144
|
+
end
|
145
|
+
|
146
|
+
def CreateFilter(_arg)
|
147
|
+
filter = OpenStruct.new
|
148
|
+
filter.DestroyPropertyFilter = true
|
149
|
+
filter
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
class ServiceInstance
|
154
|
+
class Datacenter
|
155
|
+
attr_accessor :vmFolder, :hostFolder
|
156
|
+
|
157
|
+
def initialize
|
158
|
+
@vmFolder = MockRbVmomi::VIM::Folder.new
|
159
|
+
@vmFolder.name = '/root'
|
160
|
+
end
|
161
|
+
|
162
|
+
def find_datastore(_arg)
|
163
|
+
true
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
def initialize
|
168
|
+
@datacenter = Datacenter.new
|
169
|
+
end
|
170
|
+
|
171
|
+
def find_datacenter(_dc)
|
172
|
+
@datacenter
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
class ServiceManager
|
177
|
+
class ViewManager
|
178
|
+
def CreateContainerView(hash)
|
179
|
+
@view = hash
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
def initialize
|
184
|
+
@customizationspecmanager = CustomizationSpecManager.new
|
185
|
+
@viewmanager = ViewManager.new
|
186
|
+
end
|
187
|
+
|
188
|
+
def customizationSpecManager
|
189
|
+
@customizationspecmanager
|
190
|
+
end
|
191
|
+
|
192
|
+
def viewManager
|
193
|
+
@viewmanager
|
194
|
+
end
|
195
|
+
|
196
|
+
def rootFolder
|
197
|
+
'/root'
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
def initialize(opts)
|
202
|
+
@host = opts[:host]
|
203
|
+
@user = opts[:user]
|
204
|
+
@password = opts[:password]
|
205
|
+
@insecure = opts[:insecure]
|
206
|
+
@serviceinstance = ServiceInstance.new
|
207
|
+
@servicemanager = ServiceManager.new
|
208
|
+
@propertycollector = PropertyCollector.new
|
209
|
+
end
|
210
|
+
|
211
|
+
def serviceInstance
|
212
|
+
@serviceinstance
|
213
|
+
end
|
214
|
+
|
215
|
+
def serviceContent
|
216
|
+
@servicemanager
|
217
|
+
end
|
218
|
+
|
219
|
+
def propertyCollector
|
220
|
+
@propertycollector
|
221
|
+
end
|
222
|
+
|
223
|
+
def set_info(vms)
|
224
|
+
vms.each do |vm|
|
225
|
+
@propertycollector.add_result(vm.name, vm)
|
226
|
+
end
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
class MockRbVmomi
|
231
|
+
class VIM
|
232
|
+
class Folder
|
233
|
+
attr_accessor :name
|
234
|
+
|
235
|
+
def find
|
236
|
+
self
|
237
|
+
end
|
238
|
+
|
239
|
+
def childEntity
|
240
|
+
self
|
241
|
+
end
|
242
|
+
|
243
|
+
def resourcePool
|
244
|
+
self
|
245
|
+
end
|
246
|
+
|
247
|
+
def traverse(_path, _type = Object, _create = false)
|
248
|
+
self
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
252
|
+
class ResourcePool
|
253
|
+
attr_accessor :name
|
254
|
+
|
255
|
+
def find
|
256
|
+
self
|
257
|
+
end
|
258
|
+
|
259
|
+
def resourcePool
|
260
|
+
self
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
264
|
+
class ClusterComputeResource
|
265
|
+
attr_accessor :name
|
266
|
+
|
267
|
+
def find
|
268
|
+
self
|
269
|
+
end
|
270
|
+
|
271
|
+
def resourcePool
|
272
|
+
self
|
273
|
+
end
|
274
|
+
end
|
275
|
+
|
276
|
+
class TraversalSpec
|
277
|
+
def initialize(hash); end
|
278
|
+
end
|
279
|
+
|
280
|
+
def self.connect(opts)
|
281
|
+
MockRbVmomiConnection.new(opts)
|
282
|
+
end
|
283
|
+
end
|
284
|
+
end
|
@@ -0,0 +1,167 @@
|
|
1
|
+
class MockVsphereSnapshot
|
2
|
+
attr_accessor :name
|
3
|
+
|
4
|
+
def RevertToSnapshot_Task
|
5
|
+
self
|
6
|
+
end
|
7
|
+
|
8
|
+
def wait_for_completion
|
9
|
+
true
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class MockVsphereVM
|
14
|
+
attr_accessor :name, :powerState, :snapshot, :template, :toolsRunningStatus
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@powerState = 'poweredOff'
|
18
|
+
@toolsRunningStatus = 'guestToolsStopped'
|
19
|
+
@first = true
|
20
|
+
end
|
21
|
+
|
22
|
+
def runtime
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
attr_reader :powerState
|
27
|
+
|
28
|
+
def toolsRunningStatus
|
29
|
+
prev = @toolsRunningStatus
|
30
|
+
@toolsRunningStatus = 'guestToolsRunning'
|
31
|
+
prev
|
32
|
+
end
|
33
|
+
|
34
|
+
def PowerOnVM_Task
|
35
|
+
@powerState = 'poweredOn'
|
36
|
+
self
|
37
|
+
end
|
38
|
+
|
39
|
+
def PowerOffVM_Task
|
40
|
+
@powerState = 'poweredOff'
|
41
|
+
self
|
42
|
+
end
|
43
|
+
|
44
|
+
def summary
|
45
|
+
self
|
46
|
+
end
|
47
|
+
|
48
|
+
def guest
|
49
|
+
self
|
50
|
+
end
|
51
|
+
|
52
|
+
def ipAddress
|
53
|
+
@toolsRunningStatus = 'guestToolsRunning'
|
54
|
+
"#{@name}.ip.address"
|
55
|
+
end
|
56
|
+
|
57
|
+
def CloneVM_Task(opts)
|
58
|
+
clone = MockVsphereVM.new
|
59
|
+
clone.name = opts[:name]
|
60
|
+
clone.snapshot = snapshot
|
61
|
+
clone.template = template
|
62
|
+
clone.PowerOnVM_Task
|
63
|
+
MockVsphereHelper.add_vm(opts[:name], clone)
|
64
|
+
clone
|
65
|
+
end
|
66
|
+
|
67
|
+
def wait_for_completion
|
68
|
+
true
|
69
|
+
end
|
70
|
+
|
71
|
+
def Destroy_Task
|
72
|
+
true
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
class MockVsphereHelper
|
77
|
+
@@fog_file = {}
|
78
|
+
@@vms = {}
|
79
|
+
|
80
|
+
def initialize(arg); end
|
81
|
+
|
82
|
+
def self.add_vm(name, vm)
|
83
|
+
@@vms[name] = vm
|
84
|
+
end
|
85
|
+
|
86
|
+
def self.set_config(conf)
|
87
|
+
@@fog_file = conf
|
88
|
+
end
|
89
|
+
|
90
|
+
def self.powerOn
|
91
|
+
@@vms.each do |_name, vm|
|
92
|
+
vm.powerState = 'poweredOn'
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def self.powerOff
|
97
|
+
@@vms.each do |_name, vm|
|
98
|
+
vm.powerState = 'poweredOff'
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def self.set_vms(hosts)
|
103
|
+
@@vms = {}
|
104
|
+
hosts.each do |host|
|
105
|
+
vm = MockVsphereVM.new
|
106
|
+
vm.name = host.name
|
107
|
+
vm.snapshot = MockVsphereSnapshot.new
|
108
|
+
vm.snapshot.name = host[:snapshot]
|
109
|
+
@@vms[host.name] = vm
|
110
|
+
template = MockVsphereVM.new
|
111
|
+
template.name = host[:template]
|
112
|
+
template.snapshot = MockVsphereSnapshot.new
|
113
|
+
template.snapshot.name = host[:snapshot]
|
114
|
+
@@vms[host[:template]] = template
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
def self.load_config(_file)
|
119
|
+
@@fog_file
|
120
|
+
end
|
121
|
+
|
122
|
+
def find_vms(keys)
|
123
|
+
found = {}
|
124
|
+
keys = ([] << keys)
|
125
|
+
keys.flatten!
|
126
|
+
keys.each do |key|
|
127
|
+
found[key] = @@vms[key] if @@vms.has_key?(key)
|
128
|
+
end
|
129
|
+
found
|
130
|
+
end
|
131
|
+
|
132
|
+
def self.find_vm(key)
|
133
|
+
return unless @@vms.has_key?(key)
|
134
|
+
|
135
|
+
@@vms[key]
|
136
|
+
end
|
137
|
+
|
138
|
+
def find_snapshot(vm, snap)
|
139
|
+
return unless @@vms[vm.name].snapshot.name == snap
|
140
|
+
|
141
|
+
@@vms[vm.name].snapshot
|
142
|
+
end
|
143
|
+
|
144
|
+
def find_customization(_template)
|
145
|
+
nil
|
146
|
+
end
|
147
|
+
|
148
|
+
def find_datastore(_dc, datastore)
|
149
|
+
datastore
|
150
|
+
end
|
151
|
+
|
152
|
+
def find_pool(_dc, pool)
|
153
|
+
pool
|
154
|
+
end
|
155
|
+
|
156
|
+
def find_folder(_dc, folder)
|
157
|
+
folder
|
158
|
+
end
|
159
|
+
|
160
|
+
def wait_for_tasks(_tasks, _try, _attempts)
|
161
|
+
true
|
162
|
+
end
|
163
|
+
|
164
|
+
def close
|
165
|
+
true
|
166
|
+
end
|
167
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,19 +1,23 @@
|
|
1
|
+
require 'beaker'
|
2
|
+
require 'mock_vsphere'
|
3
|
+
require 'mock_vsphere_helper'
|
4
|
+
|
1
5
|
begin
|
2
6
|
require 'simplecov'
|
3
7
|
require 'simplecov-console'
|
4
8
|
require 'codecov'
|
5
9
|
rescue LoadError
|
10
|
+
# Do nothing if no required gem installed
|
6
11
|
else
|
7
12
|
SimpleCov.start do
|
8
13
|
track_files 'lib/**/*.rb'
|
9
14
|
|
10
15
|
add_filter '/spec'
|
11
|
-
|
12
|
-
enable_coverage :branch
|
13
|
-
|
14
16
|
# do not track vendored files
|
15
17
|
add_filter '/vendor'
|
16
18
|
add_filter '/.vendor'
|
19
|
+
|
20
|
+
enable_coverage :branch
|
17
21
|
end
|
18
22
|
|
19
23
|
SimpleCov.formatters = [
|
@@ -22,9 +26,7 @@ else
|
|
22
26
|
]
|
23
27
|
end
|
24
28
|
|
25
|
-
|
26
|
-
require 'beaker'
|
27
|
-
require 'beaker/hypervisor/vcloud'
|
29
|
+
Dir['./lib/beaker/hypervisor/*.rb'].sort.each { |file| require file }
|
28
30
|
|
29
31
|
# setup & require beaker's spec_helper.rb
|
30
32
|
beaker_gem_spec = Gem::Specification.find_by_name('beaker')
|
metadata
CHANGED
@@ -1,113 +1,153 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaker-vcloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vox Pupuli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: fakefs
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.5'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '13.2'
|
31
34
|
- - ">="
|
32
35
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
36
|
+
version: 13.2.1
|
34
37
|
type: :development
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
41
|
+
- - "~>"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '13.2'
|
38
44
|
- - ">="
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
46
|
+
version: 13.2.1
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
48
|
+
name: rspec
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
51
|
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0
|
53
|
+
version: '3.0'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
58
|
- - "~>"
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0
|
60
|
+
version: '3.0'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
62
|
+
name: rspec-its
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
|
-
- - "
|
65
|
+
- - "~>"
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
67
|
+
version: '1.3'
|
62
68
|
type: :development
|
63
69
|
prerelease: false
|
64
70
|
version_requirements: !ruby/object:Gem::Requirement
|
65
71
|
requirements:
|
66
|
-
- - "
|
72
|
+
- - "~>"
|
67
73
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
74
|
+
version: '1.3'
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
76
|
+
name: voxpupuli-rubocop
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
79
|
- - "~>"
|
74
80
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
76
|
-
type: :
|
81
|
+
version: 2.6.0
|
82
|
+
type: :development
|
77
83
|
prerelease: false
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
79
85
|
requirements:
|
80
86
|
- - "~>"
|
81
87
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
88
|
+
version: 2.6.0
|
83
89
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
90
|
+
name: beaker
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
86
92
|
requirements:
|
87
93
|
- - "~>"
|
88
94
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
95
|
+
version: '5.8'
|
90
96
|
type: :runtime
|
91
97
|
prerelease: false
|
92
98
|
version_requirements: !ruby/object:Gem::Requirement
|
93
99
|
requirements:
|
94
100
|
- - "~>"
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
102
|
+
version: '5.8'
|
97
103
|
- !ruby/object:Gem::Dependency
|
98
104
|
name: beaker-vmware
|
99
105
|
requirement: !ruby/object:Gem::Requirement
|
100
106
|
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '2.1'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '2.1'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: rbvmomi2
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '3.7'
|
101
124
|
- - ">="
|
102
125
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
126
|
+
version: 3.7.1
|
104
127
|
type: :runtime
|
105
128
|
prerelease: false
|
106
129
|
version_requirements: !ruby/object:Gem::Requirement
|
107
130
|
requirements:
|
131
|
+
- - "~>"
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '3.7'
|
108
134
|
- - ">="
|
109
135
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
136
|
+
version: 3.7.1
|
137
|
+
- !ruby/object:Gem::Dependency
|
138
|
+
name: stringify-hash
|
139
|
+
requirement: !ruby/object:Gem::Requirement
|
140
|
+
requirements:
|
141
|
+
- - "~>"
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: 0.0.0
|
144
|
+
type: :runtime
|
145
|
+
prerelease: false
|
146
|
+
version_requirements: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - "~>"
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: 0.0.0
|
111
151
|
description: For use for the Beaker acceptance testing tool
|
112
152
|
email:
|
113
153
|
- voxpupuli@groups.io
|
@@ -120,6 +160,8 @@ files:
|
|
120
160
|
- ".github/workflows/release.yml"
|
121
161
|
- ".github/workflows/test.yml"
|
122
162
|
- ".gitignore"
|
163
|
+
- ".rubocop.yml"
|
164
|
+
- ".rubocop_todo.yml"
|
123
165
|
- ".simplecov"
|
124
166
|
- CHANGELOG.md
|
125
167
|
- Gemfile
|
@@ -131,10 +173,12 @@ files:
|
|
131
173
|
- lib/beaker-vcloud/version.rb
|
132
174
|
- lib/beaker/hypervisor/vcloud.rb
|
133
175
|
- spec/beaker/hypervisor/vcloud_spec.rb
|
176
|
+
- spec/mock_vsphere.rb
|
177
|
+
- spec/mock_vsphere_helper.rb
|
134
178
|
- spec/spec_helper.rb
|
135
179
|
homepage: https://github.com/voxpupuli/beaker-vcloud
|
136
180
|
licenses:
|
137
|
-
-
|
181
|
+
- Apache-2.0
|
138
182
|
metadata: {}
|
139
183
|
post_install_message:
|
140
184
|
rdoc_options: []
|
@@ -144,14 +188,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
144
188
|
requirements:
|
145
189
|
- - ">="
|
146
190
|
- !ruby/object:Gem::Version
|
147
|
-
version: '
|
191
|
+
version: '2.7'
|
148
192
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
193
|
requirements:
|
150
194
|
- - ">="
|
151
195
|
- !ruby/object:Gem::Version
|
152
196
|
version: '0'
|
153
197
|
requirements: []
|
154
|
-
rubygems_version: 3.2.
|
198
|
+
rubygems_version: 3.2.33
|
155
199
|
signing_key:
|
156
200
|
specification_version: 4
|
157
201
|
summary: Beaker DSL Extension Helpers!
|