beaker 1.21.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 +8 -8
- data/.gitignore +1 -0
- data/.rspec +1 -0
- data/CONTRIBUTING.md +1 -0
- data/HISTORY.md +17288 -2
- data/Rakefile +6 -2
- data/beaker.gemspec +15 -19
- data/lib/beaker.rb +2 -5
- data/lib/beaker/answers.rb +2 -0
- data/lib/beaker/answers/version34.rb +37 -1
- data/lib/beaker/cli.rb +4 -0
- data/lib/beaker/command.rb +16 -84
- data/lib/beaker/command_factory.rb +13 -2
- data/lib/beaker/dsl/assertions.rb +25 -2
- data/lib/beaker/dsl/ezbake_utils.rb +2 -2
- data/lib/beaker/dsl/helpers.rb +66 -12
- data/lib/beaker/dsl/install_utils.rb +128 -66
- data/lib/beaker/dsl/wrappers.rb +41 -3
- data/lib/beaker/host.rb +42 -6
- data/lib/beaker/host/mac.rb +62 -0
- data/lib/beaker/host/mac/group.rb +96 -0
- data/lib/beaker/host/mac/user.rb +93 -0
- data/lib/beaker/host/unix/exec.rb +1 -1
- data/lib/beaker/host/unix/pkg.rb +11 -11
- data/lib/beaker/host/windows.rb +4 -4
- data/lib/beaker/host_prebuilt_steps.rb +194 -58
- data/lib/beaker/hypervisor.rb +16 -9
- data/lib/beaker/hypervisor/aws_sdk.rb +61 -17
- data/lib/beaker/hypervisor/docker.rb +14 -2
- data/lib/beaker/hypervisor/ec2_helper.rb +15 -3
- data/lib/beaker/hypervisor/vagrant.rb +22 -10
- data/lib/beaker/hypervisor/vagrant_libvirt.rb +11 -0
- data/lib/beaker/hypervisor/vagrant_virtualbox.rb +1 -1
- data/lib/beaker/hypervisor/vcloud_pooled.rb +8 -39
- data/lib/beaker/logger.rb +15 -9
- data/lib/beaker/network_manager.rb +2 -2
- data/lib/beaker/options/command_line_parser.rb +1 -1
- data/lib/beaker/options/parser.rb +1 -8
- data/lib/beaker/options/presets.rb +70 -45
- data/lib/beaker/perf.rb +3 -4
- data/lib/beaker/platform.rb +2 -1
- data/lib/beaker/result.rb +3 -9
- data/lib/beaker/ssh_connection.rb +2 -0
- data/lib/beaker/test_case.rb +2 -21
- data/lib/beaker/test_suite.rb +21 -25
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/answers_spec.rb +36 -0
- data/spec/beaker/cli_spec.rb +45 -45
- data/spec/beaker/command_spec.rb +25 -36
- data/spec/beaker/dsl/assertions_spec.rb +20 -27
- data/spec/beaker/dsl/ezbake_utils_spec.rb +5 -5
- data/spec/beaker/dsl/helpers_spec.rb +293 -208
- data/spec/beaker/dsl/install_utils_spec.rb +310 -189
- data/spec/beaker/dsl/outcomes_spec.rb +6 -6
- data/spec/beaker/dsl/roles_spec.rb +27 -18
- data/spec/beaker/dsl/structure_spec.rb +11 -11
- data/spec/beaker/dsl/wrappers_spec.rb +35 -11
- data/spec/beaker/host/mac/group_spec.rb +124 -0
- data/spec/beaker/host/mac/user_spec.rb +134 -0
- data/spec/beaker/host/unix/pkg_spec.rb +40 -24
- data/spec/beaker/host/windows/group_spec.rb +1 -1
- data/spec/beaker/host_prebuilt_steps_spec.rb +194 -68
- data/spec/beaker/host_spec.rb +145 -67
- data/spec/beaker/hypervisor/aixer_spec.rb +6 -6
- data/spec/beaker/hypervisor/aws_sdk_spec.rb +22 -7
- data/spec/beaker/hypervisor/docker_spec.rb +71 -50
- data/spec/beaker/hypervisor/ec2_helper_spec.rb +25 -4
- data/spec/beaker/hypervisor/fusion_spec.rb +2 -2
- data/spec/beaker/hypervisor/hypervisor_spec.rb +20 -27
- data/spec/beaker/hypervisor/hypervisor_spec.rb.orig +80 -0
- data/spec/beaker/hypervisor/solaris_spec.rb +8 -8
- data/spec/beaker/hypervisor/vagrant_fusion_spec.rb +6 -8
- data/spec/beaker/hypervisor/vagrant_libvirt_spec.rb +34 -0
- data/spec/beaker/hypervisor/vagrant_spec.rb +34 -33
- data/spec/beaker/hypervisor/vagrant_virtualbox_spec.rb +18 -8
- data/spec/beaker/hypervisor/vagrant_workstation_spec.rb +6 -8
- data/spec/beaker/hypervisor/vcloud_pooled_spec.rb +8 -8
- data/spec/beaker/hypervisor/vcloud_spec.rb +10 -10
- data/spec/beaker/hypervisor/vsphere_helper_spec.rb +8 -8
- data/spec/beaker/hypervisor/vsphere_spec.rb +1 -1
- data/spec/beaker/logger_spec.rb +45 -31
- data/spec/beaker/options/command_line_parser_spec.rb +10 -2
- data/spec/beaker/options/hosts_file_parser_spec.rb +9 -2
- data/spec/beaker/options/options_hash_spec.rb +2 -2
- data/spec/beaker/options/parser_spec.rb +2 -2
- data/spec/beaker/options/pe_version_scaper_spec.rb +6 -1
- data/spec/beaker/options/presets_spec.rb +11 -1
- data/spec/beaker/shared/error_handler_spec.rb +5 -5
- data/spec/beaker/shared/host_manager_spec.rb +3 -2
- data/spec/beaker/shared/repetition_spec.rb +18 -18
- data/spec/beaker/ssh_connection_spec.rb +33 -4
- data/spec/beaker/test_case_spec.rb +9 -9
- data/spec/beaker/test_suite_spec.rb +14 -14
- data/spec/helpers.rb +4 -4
- data/spec/matchers.rb +4 -4
- data/spec/mocks.rb +5 -1
- data/spec/spec_helper.rb +2 -8
- metadata +114 -80
- data/lib/beaker/hypervisor/blimper.rb +0 -108
- data/spec/beaker/hypervisor/blimper_spec.rb +0 -42
- data/spec/beaker/options/data/LATEST +0 -1
- data/spec/beaker/puppet_command_spec.rb +0 -161
- data/spec/mock_blimpy.rb +0 -48
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
require 'blimpy'
|
|
2
|
-
require 'yaml' unless defined?(YAML)
|
|
3
|
-
require 'beaker/hypervisor/ec2_helper'
|
|
4
|
-
|
|
5
|
-
module Beaker
|
|
6
|
-
class Blimper < Beaker::Hypervisor
|
|
7
|
-
|
|
8
|
-
def initialize(blimpy_hosts, options)
|
|
9
|
-
@options = options
|
|
10
|
-
@logger = options[:logger]
|
|
11
|
-
@hosts = blimpy_hosts
|
|
12
|
-
@blimpy = Blimpy
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def provision
|
|
16
|
-
ami_spec= YAML.load_file(@options[:ec2_yaml])["AMI"]
|
|
17
|
-
|
|
18
|
-
fleet = @blimpy.fleet do |fleet|
|
|
19
|
-
@hosts.each do |host|
|
|
20
|
-
amitype = host['vmname'] || host['platform']
|
|
21
|
-
amisize = host['amisize'] || 'm1.small'
|
|
22
|
-
#use snapshot provided for this host
|
|
23
|
-
image_type = host['snapshot']
|
|
24
|
-
if not image_type
|
|
25
|
-
raise "No snapshot/image_type provided for blimpy provisioning"
|
|
26
|
-
end
|
|
27
|
-
ami = ami_spec[amitype]
|
|
28
|
-
fleet.add(:aws) do |ship|
|
|
29
|
-
ship.name = host.name
|
|
30
|
-
ship.ports = Beaker::EC2Helper.amiports(host['roles'])
|
|
31
|
-
ship.image_id = ami[:image][image_type.to_sym]
|
|
32
|
-
if not ship.image_id
|
|
33
|
-
raise "No image_id found for host #{ship.name} (#{amitype}:#{amisize}) using snapshot/image_type #{image_type}"
|
|
34
|
-
end
|
|
35
|
-
ship.flavor = amisize
|
|
36
|
-
ship.region = ami[:region]
|
|
37
|
-
ship.username = 'root'
|
|
38
|
-
ship.tags = {
|
|
39
|
-
:department => @options[:department],
|
|
40
|
-
:project => @options[:project],
|
|
41
|
-
:jenkins_build_url => @options[:jenkins_build_url],
|
|
42
|
-
}
|
|
43
|
-
end
|
|
44
|
-
@logger.debug "Added #{host.name} (#{amitype}:#{amisize}) using snapshot/image_type #{image_type} to blimpy fleet"
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# Attempt to start the fleet, we wrap it with some error handling that
|
|
49
|
-
# deals with generic Fog errors and retrying in case these errors are
|
|
50
|
-
# transient.
|
|
51
|
-
fleet_retries = 0
|
|
52
|
-
begin
|
|
53
|
-
fleet.start
|
|
54
|
-
rescue Fog::Errors::Error, SystemCallError => ex
|
|
55
|
-
fleet_retries += 1
|
|
56
|
-
if fleet_retries <= 3
|
|
57
|
-
sleep_time = rand(10) + 10
|
|
58
|
-
@logger.notify("Calling fleet.destroy, sleeping #{sleep_time} seconds and retrying fleet.start due to exception #{ex.class.to_s} (#{ex.message}), retry attempt #{fleet_retries}.")
|
|
59
|
-
begin
|
|
60
|
-
timeout(30) do
|
|
61
|
-
fleet.destroy
|
|
62
|
-
end
|
|
63
|
-
rescue
|
|
64
|
-
end
|
|
65
|
-
sleep sleep_time
|
|
66
|
-
retry
|
|
67
|
-
else
|
|
68
|
-
@logger.error("Retried Fog #{fleet_retries} times, giving up and throwing the exception")
|
|
69
|
-
raise ex
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
# Configure our nodes to match the blimp fleet
|
|
74
|
-
# Also generate hosts entries for the fleet, since we're iterating
|
|
75
|
-
etc_hosts = "127.0.0.1\tlocalhost localhost.localdomain\n"
|
|
76
|
-
fleet.ships.each do |ship|
|
|
77
|
-
ship.wait_for_sshd
|
|
78
|
-
name = ship.name
|
|
79
|
-
host = @hosts.select { |host| host.name == name }[0]
|
|
80
|
-
host['ip'] = ship.dns
|
|
81
|
-
host.exec(Command.new("hostname #{name}"))
|
|
82
|
-
ip = get_ip(host)
|
|
83
|
-
domain = get_domain_name(host)
|
|
84
|
-
etc_hosts += "#{ip}\t#{name}\t#{name}.#{domain}\n"
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
# Send our hosts information to the nodes
|
|
88
|
-
@hosts.each do |host|
|
|
89
|
-
set_etc_hosts(host, etc_hosts)
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
end #revert_blimpy
|
|
93
|
-
|
|
94
|
-
def cleanup
|
|
95
|
-
fleet = @blimpy.fleet do |fleet|
|
|
96
|
-
@hosts.each do |host|
|
|
97
|
-
fleet.add(:aws) do |ship|
|
|
98
|
-
ship.name = host.name
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
@logger.notify "Destroying Blimpy boxes"
|
|
104
|
-
fleet.destroy
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
end
|
|
108
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
require 'blimpy'
|
|
3
|
-
|
|
4
|
-
module Beaker
|
|
5
|
-
describe Blimper do
|
|
6
|
-
let( :blimper ) { Beaker::Blimper.new( @hosts, make_opts ) }
|
|
7
|
-
let( :amispec ) { { "centos-5-x86-64-west" => { :image => { :pe => "ami-sekrit1" }, :region => "us-west-2" },
|
|
8
|
-
"centos-6-x86-64-west" => { :image => { :pe => "ami-sekrit2" }, :region => "us-west-2" },
|
|
9
|
-
"centos-7-x86-64-west" => { :image => { :pe => "ami-sekrit3" }, :region => "us-west-2" } }}
|
|
10
|
-
|
|
11
|
-
before :each do
|
|
12
|
-
@hosts = make_hosts( { :snapshot => :pe })
|
|
13
|
-
@hosts[0][:platform] = "centos-5-x86-64-west"
|
|
14
|
-
@hosts[1][:platform] = "centos-6-x86-64-west"
|
|
15
|
-
@hosts[2][:platform] = "centos-7-x86-64-west"
|
|
16
|
-
blimper.instance_variable_set( :@blimpy, MockBlimpy )
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
it "can provision a set of hosts" do
|
|
20
|
-
YAML.stub( :load_file ).and_return( {"AMI" => amispec} )
|
|
21
|
-
blimper.stub( :get_ip ) do |host|
|
|
22
|
-
host['ip']
|
|
23
|
-
end
|
|
24
|
-
blimper.stub( :get_domain_name ).and_return( 'domain' )
|
|
25
|
-
blimper.stub( :sleep ).and_return( true )
|
|
26
|
-
|
|
27
|
-
@hosts.each do |host|
|
|
28
|
-
blimper.should_receive( :set_etc_hosts ).with( host, "127.0.0.1\tlocalhost localhost.localdomain\nvm1.my.ip\tvm1\tvm1.domain\nvm2.my.ip\tvm2\tvm2.domain\nvm3.my.ip\tvm3\tvm3.domain\n" )
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
blimper.provision
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
it "calls fleet.destroy on cleanup" do
|
|
35
|
-
MockFleet.any_instance.should_receive( :add ).with( :aws ).exactly( @hosts.length ).times
|
|
36
|
-
MockFleet.any_instance.should_receive( :destroy ).once
|
|
37
|
-
|
|
38
|
-
blimper.cleanup
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3.0.0
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
module Beaker
|
|
4
|
-
#most testing already covered in Command, just need to cover env variable handling
|
|
5
|
-
describe PuppetCommand do
|
|
6
|
-
let(:command) { @command || '/bin/ls' }
|
|
7
|
-
let(:args) { @args || Array.new }
|
|
8
|
-
let(:options) { @options || {} }
|
|
9
|
-
subject(:cmd) { PuppetCommand.new( command, args, options ) }
|
|
10
|
-
let(:host) { make_host( 'name', { :platform => @platform } ) }
|
|
11
|
-
|
|
12
|
-
let( :nix_path ) { %q[PATH="/usr/bin:/opt/puppet-git-repos/hiera/bin:${PATH}"] }
|
|
13
|
-
let( :nix_lib ) { %q[RUBYLIB="/opt/puppet-git-repos/hiera/lib:/opt/puppet-git-repos/hiera-puppet/lib:${RUBYLIB}"] }
|
|
14
|
-
|
|
15
|
-
it 'creates a Windows env for a Windows host' do
|
|
16
|
-
@platform = 'windows'
|
|
17
|
-
@command = 'agent'
|
|
18
|
-
@args = [ 'to', 'the', 'baz' ]
|
|
19
|
-
@options = { :foo => 'bar' }
|
|
20
|
-
|
|
21
|
-
expect( host ).to be_a_kind_of Windows::Host
|
|
22
|
-
expect( cmd.options ).to be == options
|
|
23
|
-
expect( cmd.args ).to be == [@args]
|
|
24
|
-
expect( cmd.command ).to be == "puppet " + @command
|
|
25
|
-
|
|
26
|
-
expect( cmd.args_string ).to be == 'to the baz'
|
|
27
|
-
expect( cmd.options_string ).to be == '--foo=bar'
|
|
28
|
-
|
|
29
|
-
win_path = %q[/opt/puppet-git-repos/hiera/bin:${PATH}]
|
|
30
|
-
win_lib = %q[`cygpath -w /opt/puppet-git-repos/hiera/lib`;`cygpath -w /opt/puppet-git-repos/hiera-puppet/lib`;${RUBYLIB}]
|
|
31
|
-
cmd_exe = %q[cmd.exe /c]
|
|
32
|
-
|
|
33
|
-
command_line = cmd.environment_string_for( host, cmd.environment )
|
|
34
|
-
expect( command_line ).to include( win_path )
|
|
35
|
-
expect( command_line ).to include( win_lib )
|
|
36
|
-
expect( command_line ).to include( cmd_exe )
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
it 'creates a Unix env for a Unix host' do
|
|
40
|
-
@platform = 'unix'
|
|
41
|
-
@command = 'agent'
|
|
42
|
-
@args = [ 'to', 'the', 'baz' ]
|
|
43
|
-
@options = { :foo => 'bar' }
|
|
44
|
-
|
|
45
|
-
expect( host ).to be_a_kind_of Unix::Host
|
|
46
|
-
expect( cmd.options ).to be == @options
|
|
47
|
-
expect( cmd.args ).to be == [@args]
|
|
48
|
-
expect( cmd.command ).to be == "puppet " + @command
|
|
49
|
-
|
|
50
|
-
expect( cmd.args_string ).to be == 'to the baz'
|
|
51
|
-
expect( cmd.options_string ).to be == '--foo=bar'
|
|
52
|
-
|
|
53
|
-
command_line = cmd.environment_string_for( host, cmd.environment )
|
|
54
|
-
expect( command_line ).to include( nix_path )
|
|
55
|
-
expect( command_line ).to include( nix_lib )
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
it 'creates an AIX env for an AIX host' do
|
|
59
|
-
@platform = 'aix'
|
|
60
|
-
@command = 'agent'
|
|
61
|
-
@args = [ 'to', 'the', 'baz' ]
|
|
62
|
-
@options = { :foo => 'bar' }
|
|
63
|
-
|
|
64
|
-
expect( host ).to be_a_kind_of Aix::Host
|
|
65
|
-
expect( cmd.options ).to be == @options
|
|
66
|
-
expect( cmd.args ).to be == [@args]
|
|
67
|
-
expect( cmd.command ).to be == "puppet " + @command
|
|
68
|
-
|
|
69
|
-
expect( cmd.args_string ).to be == 'to the baz'
|
|
70
|
-
expect( cmd.options_string ).to be == '--foo=bar'
|
|
71
|
-
|
|
72
|
-
command_line = cmd.environment_string_for( host, cmd.environment )
|
|
73
|
-
expect( command_line ).to include( nix_path )
|
|
74
|
-
expect( command_line ).to include( nix_lib )
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
it 'correctly adds additional ENV to default ENV' do
|
|
78
|
-
@platform = 'unix'
|
|
79
|
-
@command = 'agent'
|
|
80
|
-
@args = [ 'to', 'the', 'baz' ]
|
|
81
|
-
@options = { :foo => 'bar', 'ENV' => {'PATH' => '/STRING_ENV/bin'} }
|
|
82
|
-
|
|
83
|
-
expect( host ).to be_a_kind_of Unix::Host
|
|
84
|
-
expect( cmd.options ).to be == @options
|
|
85
|
-
expect( cmd.args ).to be == [@args]
|
|
86
|
-
expect( cmd.command ).to be == "puppet " + @command
|
|
87
|
-
|
|
88
|
-
expect( cmd.args_string ).to be == 'to the baz'
|
|
89
|
-
expect( cmd.options_string ).to be == '--foo=bar'
|
|
90
|
-
custom = %q[PATH="/STRING_ENV/bin"]
|
|
91
|
-
|
|
92
|
-
command_line = cmd.environment_string_for( host, cmd.environment )
|
|
93
|
-
expect( command_line ).to include( nix_path )
|
|
94
|
-
expect( command_line ).to include( nix_lib )
|
|
95
|
-
expect( command_line ).to include( custom )
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
it 'correctly adds additional :ENV to default ENV' do
|
|
99
|
-
@platform = 'unix'
|
|
100
|
-
@command = 'agent'
|
|
101
|
-
@args = [ 'to', 'the', 'baz' ]
|
|
102
|
-
@options = { :foo => 'bar', :ENV => {'PATH' => '/SYMBOL_ENV/bin'} }
|
|
103
|
-
|
|
104
|
-
expect( host ).to be_a_kind_of Unix::Host
|
|
105
|
-
expect( cmd.options ).to be == @options
|
|
106
|
-
expect( cmd.args ).to be == [@args]
|
|
107
|
-
expect( cmd.command ).to be == "puppet " + @command
|
|
108
|
-
|
|
109
|
-
expect( cmd.args_string ).to be == 'to the baz'
|
|
110
|
-
expect( cmd.options_string ).to be == '--foo=bar'
|
|
111
|
-
|
|
112
|
-
custom = %q[PATH="/SYMBOL_ENV/bin"]
|
|
113
|
-
command_line = cmd.environment_string_for( host, cmd.environment )
|
|
114
|
-
expect( command_line ).to include( nix_path )
|
|
115
|
-
expect( command_line ).to include( nix_lib )
|
|
116
|
-
expect( command_line ).to include( custom )
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
it 'correctly adds additional :environment to default ENV' do
|
|
120
|
-
@platform = 'unix'
|
|
121
|
-
@command = 'agent'
|
|
122
|
-
@args = [ 'to', 'the', 'baz' ]
|
|
123
|
-
@options = { :foo => 'bar', :environment => {'PATH' => '/SYMBOL_ENVIRONMENT/bin'} }
|
|
124
|
-
|
|
125
|
-
expect( host ).to be_a_kind_of Unix::Host
|
|
126
|
-
expect( cmd.options ).to be == @options
|
|
127
|
-
expect( cmd.args ).to be == [@args]
|
|
128
|
-
expect( cmd.command ).to be == "puppet " + @command
|
|
129
|
-
|
|
130
|
-
expect( cmd.args_string ).to be == 'to the baz'
|
|
131
|
-
expect( cmd.options_string ).to be == '--foo=bar'
|
|
132
|
-
|
|
133
|
-
custom = %q[PATH="/SYMBOL_ENVIRONMENT/bin"]
|
|
134
|
-
command_line = cmd.environment_string_for( host, cmd.environment )
|
|
135
|
-
expect( command_line ).to include( nix_path )
|
|
136
|
-
expect( command_line ).to include( nix_lib )
|
|
137
|
-
expect( command_line ).to include( custom )
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
it 'correctly adds additional environment to default ENV' do
|
|
141
|
-
@platform = 'unix'
|
|
142
|
-
@command = 'agent'
|
|
143
|
-
@args = [ 'to', 'the', 'baz' ]
|
|
144
|
-
@options = { :foo => 'bar', 'environment' => {'PATH' => '/STRING_ENVIRONMENT/bin'} }
|
|
145
|
-
|
|
146
|
-
expect( host ).to be_a_kind_of Unix::Host
|
|
147
|
-
expect( cmd.options ).to be == @options
|
|
148
|
-
expect( cmd.args ).to be == [@args]
|
|
149
|
-
expect( cmd.command ).to be == "puppet " + @command
|
|
150
|
-
|
|
151
|
-
expect( cmd.args_string ).to be == 'to the baz'
|
|
152
|
-
expect( cmd.options_string ).to be == '--foo=bar'
|
|
153
|
-
|
|
154
|
-
custom = %q[PATH="/STRING_ENVIRONMENT/bin"]
|
|
155
|
-
command_line = cmd.environment_string_for( host, cmd.environment )
|
|
156
|
-
expect( command_line ).to include( nix_path )
|
|
157
|
-
expect( command_line ).to include( nix_lib )
|
|
158
|
-
expect( command_line ).to include( custom )
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
end
|
data/spec/mock_blimpy.rb
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
class MockShip
|
|
2
|
-
attr_accessor :name, :ports, :image_id, :flavor, :region, :username, :dns, :tags
|
|
3
|
-
|
|
4
|
-
def initialize
|
|
5
|
-
@dns = "my.ip.address"
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
def wait_for_sshd
|
|
9
|
-
@dns = "#{@name}.my.ip"
|
|
10
|
-
return true
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
class MockFleet
|
|
16
|
-
attr_accessor :ships
|
|
17
|
-
@@attempts = 0
|
|
18
|
-
|
|
19
|
-
def initialize
|
|
20
|
-
@ships = []
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def add type
|
|
24
|
-
@ships << MockShip.new
|
|
25
|
-
yield(@ships[-1])
|
|
26
|
-
@ships[-1]
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def start
|
|
30
|
-
if @@attempts < 1
|
|
31
|
-
@@attempts += 1
|
|
32
|
-
raise Fog::Errors::Error
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def destroy
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
class MockBlimpy
|
|
42
|
-
@@fleet = nil
|
|
43
|
-
def self.fleet
|
|
44
|
-
yield(@@fleet = MockFleet.new)
|
|
45
|
-
@@fleet
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
end
|