beaker 2.52.0 → 3.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 +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
@@ -1,59 +0,0 @@
|
|
1
|
-
module Beaker
|
2
|
-
class Solaris < Beaker::Hypervisor
|
3
|
-
|
4
|
-
def initialize(solaris_hosts, options)
|
5
|
-
@options = options
|
6
|
-
@logger = options[:logger]
|
7
|
-
@hosts = solaris_hosts
|
8
|
-
@fog_file = nil
|
9
|
-
if File.exists?( @options[:dot_fog] )
|
10
|
-
@fog_file = YAML.load_file( @options[:dot_fog] )
|
11
|
-
end
|
12
|
-
raise "Cant load #{@options[:dot_fog]} config" unless @fog_file
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
def provision
|
17
|
-
hypername = @fog_file[:default][:solaris_hypervisor_server]
|
18
|
-
vmpath = @fog_file[:default][:solaris_hypervisor_vmpath]
|
19
|
-
snappaths = @fog_file[:default][:solaris_hypervisor_snappaths]
|
20
|
-
|
21
|
-
hyperopts = @options.dup
|
22
|
-
hyperopts['HOSTS'] = {
|
23
|
-
hypername => { 'platform' => 'solaris-11-sparc' }
|
24
|
-
}
|
25
|
-
|
26
|
-
@logger.notify "Connecting to hypervisor at #{hypername}"
|
27
|
-
hypervisor = Beaker::Host.create( hypername, hyperopts, @options )
|
28
|
-
hypervisor[:user] = @fog_file[:default][:solaris_hypervisor_username] || hypervisor[:user]
|
29
|
-
hypervisor[:ssh][:keys] = [@fog_file[:default][:solaris_hypervisor_keyfile]] || hypervisor[:ssh][:keys]
|
30
|
-
|
31
|
-
@hosts.each do |host|
|
32
|
-
vm_name = host['vmname'] || host.name
|
33
|
-
#use the snapshot provided for this host
|
34
|
-
snapshot = host['snapshot']
|
35
|
-
|
36
|
-
@logger.notify "Reverting #{vm_name} to snapshot #{snapshot}"
|
37
|
-
start = Time.now
|
38
|
-
hypervisor.exec(Command.new("sudo /sbin/zfs rollback -Rf #{vmpath}/#{vm_name}@#{snapshot}"))
|
39
|
-
snappaths.each do |spath|
|
40
|
-
@logger.notify "Reverting #{vm_name}/#{spath} to snapshot #{snapshot}"
|
41
|
-
hypervisor.exec(Command.new("sudo /sbin/zfs rollback -Rf #{vmpath}/#{vm_name}/#{spath}@#{snapshot}"))
|
42
|
-
end
|
43
|
-
time = Time.now - start
|
44
|
-
@logger.notify "Spent %.2f seconds reverting" % time
|
45
|
-
|
46
|
-
@logger.notify "Booting #{vm_name}"
|
47
|
-
start = Time.now
|
48
|
-
hypervisor.exec(Command.new("sudo /sbin/zoneadm -z #{vm_name} boot"))
|
49
|
-
@logger.notify "Spent %.2f seconds booting #{vm_name}" % (Time.now - start)
|
50
|
-
end
|
51
|
-
hypervisor.close
|
52
|
-
end
|
53
|
-
|
54
|
-
def cleanup
|
55
|
-
@logger.notify "No cleanup for solaris boxes"
|
56
|
-
end
|
57
|
-
|
58
|
-
end
|
59
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Beaker
|
4
|
-
describe Aixer do
|
5
|
-
let( :aixer) { Beaker::Aixer.new( @hosts, make_opts ) }
|
6
|
-
|
7
|
-
before :each do
|
8
|
-
@hosts = make_hosts()
|
9
|
-
allow( File ).to receive( :exists? ).and_return( true )
|
10
|
-
allow( YAML ).to receive( :load_file ).and_return( fog_file_contents )
|
11
|
-
allow_any_instance_of( Host ).to receive( :exec ).and_return( true )
|
12
|
-
end
|
13
|
-
|
14
|
-
it "can provision a set of hosts" do
|
15
|
-
@hosts.each do |host|
|
16
|
-
expect( Command ).to receive( :new ).with( "cd pe-aix && rake restore:#{host.name}" ).once
|
17
|
-
|
18
|
-
end
|
19
|
-
allow_any_instance_of(Host).to receive(:close)
|
20
|
-
aixer.provision
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
it "does nothing for cleanup" do
|
25
|
-
expect( Command ).to receive( :new ).never
|
26
|
-
expect( Host ).to receive( :exec ).never
|
27
|
-
|
28
|
-
aixer.cleanup
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
|
33
|
-
end
|
34
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Beaker
|
4
|
-
describe Solaris do
|
5
|
-
let( :solaris) { Beaker::Solaris.new( @hosts, make_opts ) }
|
6
|
-
|
7
|
-
before :each do
|
8
|
-
@hosts = make_hosts()
|
9
|
-
allow( File ).to receive( :exists? ).and_return( true )
|
10
|
-
allow( YAML ).to receive( :load_file ).and_return( fog_file_contents )
|
11
|
-
allow_any_instance_of( Host ).to receive( :exec ).and_return( true )
|
12
|
-
end
|
13
|
-
|
14
|
-
it "can provision a set of hosts" do
|
15
|
-
vmpath = "rpoooool/zs"
|
16
|
-
spath = "rpoooool/USER/z0"
|
17
|
-
|
18
|
-
@hosts.each do |host|
|
19
|
-
vm_name = host['vmname'] || host.name
|
20
|
-
snapshot = host['snapshot']
|
21
|
-
expect( Command ).to receive( :new ).with("sudo /sbin/zfs rollback -Rf #{vmpath}/#{vm_name}@#{snapshot}").once
|
22
|
-
expect( Command ).to receive( :new ).with("sudo /sbin/zfs rollback -Rf #{vmpath}/#{vm_name}/#{spath}@#{snapshot}").once
|
23
|
-
expect( Command ).to receive( :new ).with("sudo /sbin/zoneadm -z #{vm_name} boot").once
|
24
|
-
end
|
25
|
-
allow_any_instance_of(Host).to receive(:close)
|
26
|
-
|
27
|
-
solaris.provision
|
28
|
-
end
|
29
|
-
|
30
|
-
it "does nothing for cleanup" do
|
31
|
-
expect( Command ).to receive( :new ).never
|
32
|
-
expect( Host ).to receive( :exec ).never
|
33
|
-
|
34
|
-
solaris.cleanup
|
35
|
-
end
|
36
|
-
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|