beaker 2.52.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/HISTORY.md +27034 -2
- data/acceptance/tests/base/external_resources_test.rb +7 -25
- data/acceptance/tests/base/host/host_test.rb +106 -0
- data/beaker.gemspec +13 -12
- data/docs/concepts/shared_options_for_executing_beaker_commands.md +1 -1
- data/docs/how_to/hypervisors/openstack.md +9 -0
- data/docs/how_to/test_arbitrary_beaker_versions.md +46 -0
- data/docs/how_to/upgrade_from_2_to_3.md +76 -0
- data/docs/tutorials/README.md +82 -0
- data/lib/beaker/dsl.rb +0 -2
- data/lib/beaker/dsl/helpers/puppet_helpers.rb +2 -1
- data/lib/beaker/dsl/install_utils/windows_utils.rb +27 -1
- data/lib/beaker/host.rb +16 -1
- data/lib/beaker/host/unix/exec.rb +4 -4
- data/lib/beaker/host/unix/pkg.rb +3 -2
- data/lib/beaker/host_prebuilt_steps.rb +2 -46
- data/lib/beaker/hypervisor.rb +1 -1
- data/lib/beaker/hypervisor/openstack.rb +19 -34
- data/lib/beaker/options/presets.rb +1 -5
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/dsl/helpers/puppet_helpers_spec.rb +18 -4
- data/spec/beaker/dsl/helpers/web_helpers_spec.rb +26 -4
- data/spec/beaker/dsl/install_utils/windows_utils_spec.rb +47 -1
- data/spec/beaker/host/unix/pkg_spec.rb +1 -0
- data/spec/beaker/host_prebuilt_steps_spec.rb +2 -33
- data/spec/beaker/host_spec.rb +14 -2
- data/spec/beaker/hypervisor/hypervisor_spec.rb +0 -15
- data/spec/beaker/hypervisor/openstack_spec.rb +5 -0
- data/spec/helpers.rb +1 -0
- metadata +15 -105
- data/lib/beaker/hypervisor/aixer.rb +0 -48
- data/lib/beaker/hypervisor/solaris.rb +0 -59
- data/spec/beaker/hypervisor/aixer_spec.rb +0 -34
- data/spec/beaker/hypervisor/solaris_spec.rb +0 -40
@@ -341,6 +341,7 @@ module Beaker
|
|
341
341
|
if version == 10
|
342
342
|
allow( instance ).to receive( :noask_file_text )
|
343
343
|
allow( instance ).to receive( :create_remote_file )
|
344
|
+
allow( instance ).to receive( :execute ).with('/opt/csw/bin/pkgutil -y -i pkgutil')
|
344
345
|
end
|
345
346
|
# only expect diff in the last line: .not_to vs .to raise_error
|
346
347
|
expect{
|
@@ -163,37 +163,6 @@ describe Beaker do
|
|
163
163
|
end
|
164
164
|
end
|
165
165
|
|
166
|
-
context "epel_info_for!" do
|
167
|
-
subject { dummy_class.new }
|
168
|
-
|
169
|
-
it "can return the correct url for an el-7 host" do
|
170
|
-
host = make_host( 'testhost', { :platform => Beaker::Platform.new('el-7-platform') } )
|
171
|
-
|
172
|
-
expect( subject.epel_info_for( host, options )).to be === ["http://dl.fedoraproject.org/pub/epel/7", "x86_64", "epel-release-7-8.noarch.rpm"]
|
173
|
-
end
|
174
|
-
|
175
|
-
it "can return the correct url for an el-6 host" do
|
176
|
-
host = make_host( 'testhost', { :platform => Beaker::Platform.new('el-6-platform') } )
|
177
|
-
|
178
|
-
expect( subject.epel_info_for( host, options )).to be === ["http://dl.fedoraproject.org/pub/epel/6", "i386", "epel-release-6-8.noarch.rpm"]
|
179
|
-
end
|
180
|
-
|
181
|
-
it "can return the correct url for an el-5 host" do
|
182
|
-
host = make_host( 'testhost', { :platform => Beaker::Platform.new('el-5-platform') } )
|
183
|
-
|
184
|
-
expect( subject.epel_info_for( host, options )).to be === ["http://dl.fedoraproject.org/pub/epel/5", "i386", "epel-release-5-4.noarch.rpm"]
|
185
|
-
|
186
|
-
end
|
187
|
-
|
188
|
-
it "raises an error on non el-5/6 host" do
|
189
|
-
host = make_host( 'testhost', { :platform => Beaker::Platform.new('el-4-platform') } )
|
190
|
-
|
191
|
-
expect{ subject.epel_info_for( host, options )}.to raise_error(ArgumentError, /epel_info_for does not support el version/)
|
192
|
-
|
193
|
-
end
|
194
|
-
|
195
|
-
end
|
196
|
-
|
197
166
|
context "apt_get_update" do
|
198
167
|
subject { dummy_class.new }
|
199
168
|
|
@@ -335,8 +304,8 @@ describe Beaker do
|
|
335
304
|
hosts[4][:platform] = Beaker::Platform.new('oracle-5-arch')
|
336
305
|
|
337
306
|
expect( Beaker::Command ).to receive( :new ).with("rpm -qa | grep epel-release").exactly( 6 ).times
|
338
|
-
expect( Beaker::Command ).to receive( :new ).with("rpm -i http://dl.fedoraproject.org/pub/epel/
|
339
|
-
expect( Beaker::Command ).to receive( :new ).with("rpm -i http://dl.fedoraproject.org/pub/epel/
|
307
|
+
expect( Beaker::Command ).to receive( :new ).with("rpm -i http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm").exactly( 4 ).times
|
308
|
+
expect( Beaker::Command ).to receive( :new ).with("rpm -i http://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm").exactly( 2 ).times
|
340
309
|
expect( Beaker::Command ).to receive( :new ).with("sed -i -e 's;#baseurl.*$;baseurl=http://dl\\.fedoraproject\\.org/pub/epel/6/$basearch;' /etc/yum.repos.d/epel.repo").exactly( 4 ).times
|
341
310
|
expect( Beaker::Command ).to receive( :new ).with("sed -i -e 's;#baseurl.*$;baseurl=http://dl\\.fedoraproject\\.org/pub/epel/5/$basearch;' /etc/yum.repos.d/epel.repo").exactly( 2 ).times
|
342
311
|
expect( Beaker::Command ).to receive( :new ).with("sed -i -e '/mirrorlist/d' /etc/yum.repos.d/epel.repo").exactly( 6 ).times
|
data/spec/beaker/host_spec.rb
CHANGED
@@ -197,7 +197,7 @@ module Beaker
|
|
197
197
|
result.exit_code = 1
|
198
198
|
expect( Beaker::Command ).to receive(:new).with("grep ^key=.*\\/my\\/first\\/value ~/.ssh/environment")
|
199
199
|
expect( host ).to receive(:exec).and_return(result)
|
200
|
-
expect( Beaker::Command ).to receive(:new).with(/grep \^key ~\/\.ssh\/environment/)
|
200
|
+
expect( Beaker::Command ).to receive(:new).with(/grep \^key= ~\/\.ssh\/environment/)
|
201
201
|
expect( host ).to receive(:exec).and_return(result)
|
202
202
|
expect( Beaker::Command ).to receive(:new).with("echo \"key=/my/first/value\" >> ~/.ssh/environment")
|
203
203
|
host.add_env_var('key', '/my/first/value')
|
@@ -210,7 +210,7 @@ module Beaker
|
|
210
210
|
expect( host ).to receive(:exec).and_return(result)
|
211
211
|
result = Beaker::Result.new(host, '')
|
212
212
|
result.exit_code = 0
|
213
|
-
expect( Beaker::Command ).to receive(:new).with(/grep \^key ~\/\.ssh\/environment/)
|
213
|
+
expect( Beaker::Command ).to receive(:new).with(/grep \^key= ~\/\.ssh\/environment/)
|
214
214
|
expect( host ).to receive(:exec).and_return(result)
|
215
215
|
expect( Beaker::SedCommand ).to receive(:new).with('unix', 's/^key=/key=\\/my\\/first\\/value:/', '~/.ssh/environment')
|
216
216
|
host.add_env_var('key', '/my/first/value')
|
@@ -740,5 +740,17 @@ module Beaker
|
|
740
740
|
expect(host.ip).to eq('127.0.0.1')
|
741
741
|
end
|
742
742
|
end
|
743
|
+
|
744
|
+
describe "#wait_for_port" do
|
745
|
+
it 'returns true when port is open' do
|
746
|
+
allow(host).to receive(:repeat_fibonacci_style_for).and_return(true)
|
747
|
+
expect(host.wait_for_port(22, 0)).to be true
|
748
|
+
end
|
749
|
+
|
750
|
+
it 'returns false when port is not open' do
|
751
|
+
allow(host).to receive(:repeat_fibonacci_style_for).and_return(false)
|
752
|
+
expect(host.wait_for_port(22, 0)).to be false
|
753
|
+
end
|
754
|
+
end
|
743
755
|
end
|
744
756
|
end
|
@@ -4,21 +4,6 @@ module Beaker
|
|
4
4
|
describe Hypervisor do
|
5
5
|
let( :hypervisor ) { Beaker::Hypervisor }
|
6
6
|
|
7
|
-
it "creates an aix hypervisor for aix hosts" do
|
8
|
-
aix = double( 'aix' )
|
9
|
-
allow( aix ).to receive( :provision ).and_return( true )
|
10
|
-
|
11
|
-
expect( Aixer ).to receive( :new ).once.and_return( aix )
|
12
|
-
expect( hypervisor.create( 'aix', [], make_opts() ) ).to be === aix
|
13
|
-
end
|
14
|
-
|
15
|
-
it "creates a solaris hypervisor for solaris hosts" do
|
16
|
-
solaris = double( 'solaris' )
|
17
|
-
allow( solaris ).to receive( :provision ).and_return( true )
|
18
|
-
expect( Solaris ).to receive( :new ).once.and_return( solaris )
|
19
|
-
expect( hypervisor.create( 'solaris', [], make_opts() ) ).to be === solaris
|
20
|
-
end
|
21
|
-
|
22
7
|
it "creates a vsphere hypervisor for vsphere hosts" do
|
23
8
|
vsphere = double( 'vsphere' )
|
24
9
|
allow( vsphere ).to receive( :provision ).and_return( true )
|
@@ -29,6 +29,7 @@ module Beaker
|
|
29
29
|
expect(options['openstack_network']).to eq('testing')
|
30
30
|
expect(options['openstack_keyname']).to eq('nopass')
|
31
31
|
expect(options['security_group']).to eq(['my_sg', 'default'])
|
32
|
+
expect(options['floating_ip_pool']).to eq('my_pool')
|
32
33
|
end
|
33
34
|
|
34
35
|
it 'check hosts options during initialization' do
|
@@ -61,6 +62,10 @@ module Beaker
|
|
61
62
|
:image_ref => 54321)
|
62
63
|
)
|
63
64
|
|
65
|
+
@hosts.each do |host|
|
66
|
+
allow(host).to receive(:wait_for_port).and_return(true)
|
67
|
+
end
|
68
|
+
|
64
69
|
openstack.provision
|
65
70
|
end
|
66
71
|
|
data/spec/helpers.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppetlabs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '11.2'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '11.2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: simplecov
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,14 +156,14 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - ~>
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: '2
|
159
|
+
version: '3.2'
|
160
160
|
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - ~>
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: '2
|
166
|
+
version: '3.2'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: net-scp
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -234,20 +234,6 @@ dependencies:
|
|
234
234
|
- - ~>
|
235
235
|
- !ruby/object:Gem::Version
|
236
236
|
version: '0.1'
|
237
|
-
- !ruby/object:Gem::Dependency
|
238
|
-
name: beaker-answers
|
239
|
-
requirement: !ruby/object:Gem::Requirement
|
240
|
-
requirements:
|
241
|
-
- - ~>
|
242
|
-
- !ruby/object:Gem::Version
|
243
|
-
version: '0.0'
|
244
|
-
type: :runtime
|
245
|
-
prerelease: false
|
246
|
-
version_requirements: !ruby/object:Gem::Requirement
|
247
|
-
requirements:
|
248
|
-
- - ~>
|
249
|
-
- !ruby/object:Gem::Version
|
250
|
-
version: '0.0'
|
251
237
|
- !ruby/object:Gem::Dependency
|
252
238
|
name: stringify-hash
|
253
239
|
requirement: !ruby/object:Gem::Requirement
|
@@ -276,20 +262,6 @@ dependencies:
|
|
276
262
|
- - ~>
|
277
263
|
- !ruby/object:Gem::Version
|
278
264
|
version: '0.0'
|
279
|
-
- !ruby/object:Gem::Dependency
|
280
|
-
name: beaker-pe
|
281
|
-
requirement: !ruby/object:Gem::Requirement
|
282
|
-
requirements:
|
283
|
-
- - ~>
|
284
|
-
- !ruby/object:Gem::Version
|
285
|
-
version: '0.0'
|
286
|
-
type: :runtime
|
287
|
-
prerelease: false
|
288
|
-
version_requirements: !ruby/object:Gem::Requirement
|
289
|
-
requirements:
|
290
|
-
- - ~>
|
291
|
-
- !ruby/object:Gem::Version
|
292
|
-
version: '0.0'
|
293
265
|
- !ruby/object:Gem::Dependency
|
294
266
|
name: beaker-hostgenerator
|
295
267
|
requirement: !ruby/object:Gem::Requirement
|
@@ -310,20 +282,14 @@ dependencies:
|
|
310
282
|
requirements:
|
311
283
|
- - ~>
|
312
284
|
- !ruby/object:Gem::Version
|
313
|
-
version: '1.
|
314
|
-
- - <
|
315
|
-
- !ruby/object:Gem::Version
|
316
|
-
version: 1.9.0
|
285
|
+
version: '1.9'
|
317
286
|
type: :runtime
|
318
287
|
prerelease: false
|
319
288
|
version_requirements: !ruby/object:Gem::Requirement
|
320
289
|
requirements:
|
321
290
|
- - ~>
|
322
291
|
- !ruby/object:Gem::Version
|
323
|
-
version: '1.
|
324
|
-
- - <
|
325
|
-
- !ruby/object:Gem::Version
|
326
|
-
version: 1.9.0
|
292
|
+
version: '1.9'
|
327
293
|
- !ruby/object:Gem::Dependency
|
328
294
|
name: fission
|
329
295
|
requirement: !ruby/object:Gem::Requirement
|
@@ -344,20 +310,14 @@ dependencies:
|
|
344
310
|
requirements:
|
345
311
|
- - ~>
|
346
312
|
- !ruby/object:Gem::Version
|
347
|
-
version: '0.
|
348
|
-
- - <
|
349
|
-
- !ruby/object:Gem::Version
|
350
|
-
version: 0.9.5
|
313
|
+
version: '0.9'
|
351
314
|
type: :runtime
|
352
315
|
prerelease: false
|
353
316
|
version_requirements: !ruby/object:Gem::Requirement
|
354
317
|
requirements:
|
355
318
|
- - ~>
|
356
319
|
- !ruby/object:Gem::Version
|
357
|
-
version: '0.
|
358
|
-
- - <
|
359
|
-
- !ruby/object:Gem::Version
|
360
|
-
version: 0.9.5
|
320
|
+
version: '0.9'
|
361
321
|
- !ruby/object:Gem::Dependency
|
362
322
|
name: aws-sdk-v1
|
363
323
|
requirement: !ruby/object:Gem::Requirement
|
@@ -386,54 +346,20 @@ dependencies:
|
|
386
346
|
- - ! '>='
|
387
347
|
- !ruby/object:Gem::Version
|
388
348
|
version: '0'
|
389
|
-
- !ruby/object:Gem::Dependency
|
390
|
-
name: mime-types
|
391
|
-
requirement: !ruby/object:Gem::Requirement
|
392
|
-
requirements:
|
393
|
-
- - ~>
|
394
|
-
- !ruby/object:Gem::Version
|
395
|
-
version: '2.99'
|
396
|
-
type: :runtime
|
397
|
-
prerelease: false
|
398
|
-
version_requirements: !ruby/object:Gem::Requirement
|
399
|
-
requirements:
|
400
|
-
- - ~>
|
401
|
-
- !ruby/object:Gem::Version
|
402
|
-
version: '2.99'
|
403
|
-
- !ruby/object:Gem::Dependency
|
404
|
-
name: fog-google
|
405
|
-
requirement: !ruby/object:Gem::Requirement
|
406
|
-
requirements:
|
407
|
-
- - ~>
|
408
|
-
- !ruby/object:Gem::Version
|
409
|
-
version: 0.0.9
|
410
|
-
type: :runtime
|
411
|
-
prerelease: false
|
412
|
-
version_requirements: !ruby/object:Gem::Requirement
|
413
|
-
requirements:
|
414
|
-
- - ~>
|
415
|
-
- !ruby/object:Gem::Version
|
416
|
-
version: 0.0.9
|
417
349
|
- !ruby/object:Gem::Dependency
|
418
350
|
name: fog
|
419
351
|
requirement: !ruby/object:Gem::Requirement
|
420
352
|
requirements:
|
421
353
|
- - ~>
|
422
354
|
- !ruby/object:Gem::Version
|
423
|
-
version: '1.
|
424
|
-
- - <
|
425
|
-
- !ruby/object:Gem::Version
|
426
|
-
version: 1.35.0
|
355
|
+
version: '1.38'
|
427
356
|
type: :runtime
|
428
357
|
prerelease: false
|
429
358
|
version_requirements: !ruby/object:Gem::Requirement
|
430
359
|
requirements:
|
431
360
|
- - ~>
|
432
361
|
- !ruby/object:Gem::Version
|
433
|
-
version: '1.
|
434
|
-
- - <
|
435
|
-
- !ruby/object:Gem::Version
|
436
|
-
version: 1.35.0
|
362
|
+
version: '1.38'
|
437
363
|
- !ruby/object:Gem::Dependency
|
438
364
|
name: unf
|
439
365
|
requirement: !ruby/object:Gem::Requirement
|
@@ -448,20 +374,6 @@ dependencies:
|
|
448
374
|
- - ~>
|
449
375
|
- !ruby/object:Gem::Version
|
450
376
|
version: '0.1'
|
451
|
-
- !ruby/object:Gem::Dependency
|
452
|
-
name: public_suffix
|
453
|
-
requirement: !ruby/object:Gem::Requirement
|
454
|
-
requirements:
|
455
|
-
- - <
|
456
|
-
- !ruby/object:Gem::Version
|
457
|
-
version: 1.5.0
|
458
|
-
type: :runtime
|
459
|
-
prerelease: false
|
460
|
-
version_requirements: !ruby/object:Gem::Requirement
|
461
|
-
requirements:
|
462
|
-
- - <
|
463
|
-
- !ruby/object:Gem::Version
|
464
|
-
version: 1.5.0
|
465
377
|
description: Puppetlabs accceptance testing harness
|
466
378
|
email:
|
467
379
|
- delivery@puppetlabs.com
|
@@ -477,7 +389,6 @@ files:
|
|
477
389
|
- CONTRIBUTING.md
|
478
390
|
- DOCUMENTING.md
|
479
391
|
- Gemfile
|
480
|
-
- Gemfile.lock
|
481
392
|
- HISTORY.md
|
482
393
|
- LICENSE
|
483
394
|
- MAINTAINERS
|
@@ -625,9 +536,12 @@ files:
|
|
625
536
|
- docs/how_to/recipes.md
|
626
537
|
- docs/how_to/run_in_parallel.md
|
627
538
|
- docs/how_to/ssh_agent_forwarding.md
|
539
|
+
- docs/how_to/test_arbitrary_beaker_versions.md
|
628
540
|
- docs/how_to/the_beaker_dsl.md
|
541
|
+
- docs/how_to/upgrade_from_2_to_3.md
|
629
542
|
- docs/how_to/use_user_password_authentication.md
|
630
543
|
- docs/how_to/write_a_beaker_test_for_a_module.md
|
544
|
+
- docs/tutorials/README.md
|
631
545
|
- docs/tutorials/creating_a_test_environment.md
|
632
546
|
- docs/tutorials/how_to_beaker.md
|
633
547
|
- docs/tutorials/installation.md
|
@@ -700,7 +614,6 @@ files:
|
|
700
614
|
- lib/beaker/host/windows/user.rb
|
701
615
|
- lib/beaker/host_prebuilt_steps.rb
|
702
616
|
- lib/beaker/hypervisor.rb
|
703
|
-
- lib/beaker/hypervisor/aixer.rb
|
704
617
|
- lib/beaker/hypervisor/aws_sdk.rb
|
705
618
|
- lib/beaker/hypervisor/docker.rb
|
706
619
|
- lib/beaker/hypervisor/ec2_helper.rb
|
@@ -709,7 +622,6 @@ files:
|
|
709
622
|
- lib/beaker/hypervisor/google_compute_helper.rb
|
710
623
|
- lib/beaker/hypervisor/noop.rb
|
711
624
|
- lib/beaker/hypervisor/openstack.rb
|
712
|
-
- lib/beaker/hypervisor/solaris.rb
|
713
625
|
- lib/beaker/hypervisor/vagrant.rb
|
714
626
|
- lib/beaker/hypervisor/vagrant_custom.rb
|
715
627
|
- lib/beaker/hypervisor/vagrant_fusion.rb
|
@@ -792,7 +704,6 @@ files:
|
|
792
704
|
- spec/beaker/host/windows_spec.rb
|
793
705
|
- spec/beaker/host_prebuilt_steps_spec.rb
|
794
706
|
- spec/beaker/host_spec.rb
|
795
|
-
- spec/beaker/hypervisor/aixer_spec.rb
|
796
707
|
- spec/beaker/hypervisor/aws_sdk_spec.rb
|
797
708
|
- spec/beaker/hypervisor/docker_spec.rb
|
798
709
|
- spec/beaker/hypervisor/ec2_helper_spec.rb
|
@@ -800,7 +711,6 @@ files:
|
|
800
711
|
- spec/beaker/hypervisor/hypervisor_spec.rb
|
801
712
|
- spec/beaker/hypervisor/hypervisor_spec.rb.orig
|
802
713
|
- spec/beaker/hypervisor/openstack_spec.rb
|
803
|
-
- spec/beaker/hypervisor/solaris_spec.rb
|
804
714
|
- spec/beaker/hypervisor/vagrant_custom_spec.rb
|
805
715
|
- spec/beaker/hypervisor/vagrant_fusion_spec.rb
|
806
716
|
- spec/beaker/hypervisor/vagrant_libvirt_spec.rb
|
@@ -1,48 +0,0 @@
|
|
1
|
-
module Beaker
|
2
|
-
class Aixer < Beaker::Hypervisor
|
3
|
-
|
4
|
-
def initialize(aix_hosts, options)
|
5
|
-
@options = options
|
6
|
-
@logger = options[:logger]
|
7
|
-
@hosts = aix_hosts
|
8
|
-
#aix machines are reverted to known state, not a snapshot
|
9
|
-
@fog_file = nil
|
10
|
-
if File.exists?( @options[:dot_fog] )
|
11
|
-
@fog_file = YAML.load_file( @options[:dot_fog] )
|
12
|
-
end
|
13
|
-
raise "Cant load #{@options[:dot_fog]} config" unless @fog_file
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
def provision
|
18
|
-
# Running the rake task on rpm-builder
|
19
|
-
hypername = @fog_file[:default][:aix_hypervisor_server]
|
20
|
-
hyperopts = @options.dup
|
21
|
-
hyperopts['HOSTS'] = {
|
22
|
-
hypername => { 'platform' => 'el-6-x86_64' }
|
23
|
-
}
|
24
|
-
|
25
|
-
@logger.notify "Connecting to hypervisor at #{hypername}"
|
26
|
-
hypervisor = Beaker::Host.create( hypername, hyperopts, @options )
|
27
|
-
hypervisor[:user] = @fog_file[:default][:aix_hypervisor_username] || hypervisor[:user]
|
28
|
-
hypervisor[:ssh][:keys] = [@fog_file[:default][:aix_hypervisor_keyfile]] || hypervisor[:ssh][:keys]
|
29
|
-
|
30
|
-
@hosts.each do |host|
|
31
|
-
vm_name = host['vmname'] || host.name
|
32
|
-
|
33
|
-
@logger.notify "Reverting #{vm_name} to aix clean state"
|
34
|
-
start = Time.now
|
35
|
-
# Restore AIX image, ID'd by the hostname
|
36
|
-
hypervisor.exec(Command.new("cd pe-aix && rake restore:#{host.name}"))
|
37
|
-
time = Time.now - start
|
38
|
-
@logger.notify "Spent %.2f seconds reverting" % time
|
39
|
-
end
|
40
|
-
hypervisor.close
|
41
|
-
end
|
42
|
-
|
43
|
-
def cleanup
|
44
|
-
@logger.notify "No cleanup for aix boxes"
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
end
|