beaker 2.4.1 → 2.5.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 +141 -2
- data/lib/beaker/answers.rb +2 -0
- data/lib/beaker/dsl/helpers.rb +8 -1
- data/lib/beaker/dsl/install_utils.rb +11 -4
- data/lib/beaker/host/windows.rb +7 -3
- data/lib/beaker/host.rb +1 -1
- data/lib/beaker/hypervisor/docker.rb +3 -1
- data/lib/beaker/hypervisor/vagrant.rb +1 -3
- data/lib/beaker/hypervisor/vcloud_pooled.rb +39 -26
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/dsl/install_utils_spec.rb +5 -4
- data/spec/mocks.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MTAxY2VmNjc1ZjM2NDAyOWM3YjM1NWYxZGI5YTE0ZTk4YzhjYTczOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTY1MzczMWY5YmNjOTRjZDA3MDE0MjM1ZjdmMjBmMzM3MjdhODI2ZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YWQwZGE3YzVjZmRkZWZiODE5NTFmZTViMWViNGVlMTllMzFkYzMzMTdlYTM3
|
10
|
+
YWU4MTE2MDdiOTgzZDRmYTIxZjMyYjU2MDcxYjNmMjkyZDcyMTYyNGQwZDIx
|
11
|
+
YmVlYmRmNTQ5OTgxYWViOTgyZjM3NTQ5ZjJlMmUyYWQxYTE3ZjY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
Zjk1NzdiNjg5N2Y2YjE3MGZhMzZkYTY5M2RiNWIyYWRjOTY5NTIzY2FjMjFl
|
14
|
+
YTNkYmYxMTM0MmVkYTEzYzgzYTZmZjA3OGEzZTIzMzA2YzJjODM1YTY5ZTY3
|
15
|
+
ZThkYTI3NTVkMzY4ZGVkNGYyYzNmNmUwNTA0OTkwZGQ0MDUwYzQ=
|
data/HISTORY.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# default - History
|
2
2
|
## Tags
|
3
|
-
* [LATEST -
|
3
|
+
* [LATEST - 23 Feb, 2015 (9ad8bd4c)](#LATEST)
|
4
|
+
* [beaker2.4.1 - 13 Feb, 2015 (84400ed1)](#beaker2.4.1)
|
4
5
|
* [beaker2.4.0 - 13 Feb, 2015 (bc5a6676)](#beaker2.4.0)
|
5
6
|
* [beaker2.3.0 - 29 Jan, 2015 (3d185da0)](#beaker2.3.0)
|
6
7
|
* [beaker2.2.0 - 8 Jan, 2015 (cba5f7ed)](#beaker2.2.0)
|
@@ -70,7 +71,145 @@
|
|
70
71
|
* [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
|
71
72
|
|
72
73
|
## Details
|
73
|
-
### <a name = "LATEST">LATEST -
|
74
|
+
### <a name = "LATEST">LATEST - 23 Feb, 2015 (9ad8bd4c)
|
75
|
+
|
76
|
+
* (GEM) update beaker version to 2.5.0 (9ad8bd4c)
|
77
|
+
|
78
|
+
* Merge pull request #701 from anodelman/win-fix (de652599)
|
79
|
+
|
80
|
+
|
81
|
+
```
|
82
|
+
Merge pull request #701 from anodelman/win-fix
|
83
|
+
|
84
|
+
(QENG-1852) install_puppet unable to install windows msi (regression)
|
85
|
+
```
|
86
|
+
* Merge pull request #677 from kevpl/qeng1721_aio_windowsadd (566600ba)
|
87
|
+
|
88
|
+
|
89
|
+
```
|
90
|
+
Merge pull request #677 from kevpl/qeng1721_aio_windowsadd
|
91
|
+
|
92
|
+
qeng1721: added AIO windows support
|
93
|
+
```
|
94
|
+
* Merge pull request #695 from liamjbennett/vagrant_windows_fix (a7a85f72)
|
95
|
+
|
96
|
+
|
97
|
+
```
|
98
|
+
Merge pull request #695 from liamjbennett/vagrant_windows_fix
|
99
|
+
|
100
|
+
(MAINT) Rolling back change for windows in the vagrant hypervisor
|
101
|
+
```
|
102
|
+
* Merge pull request #706 from madAndroid/GH-700-add-docker-options (8e0a7e7d)
|
103
|
+
|
104
|
+
|
105
|
+
```
|
106
|
+
Merge pull request #706 from madAndroid/GH-700-add-docker-options
|
107
|
+
|
108
|
+
GH-700 - Allow Docker::options to be set from config hash
|
109
|
+
```
|
110
|
+
* Merge pull request #709 from kevpl/qeng1868_3.8_answers (cd980c9e)
|
111
|
+
|
112
|
+
|
113
|
+
```
|
114
|
+
Merge pull request #709 from kevpl/qeng1868_3.8_answers
|
115
|
+
|
116
|
+
(QENG-1868) added 3.8 answers file, based on 3.7
|
117
|
+
```
|
118
|
+
* (QENG-1868) added 3.8 answers file, based on 3.7 (5ee004d4)
|
119
|
+
|
120
|
+
* Merge pull request #707 from johnduarte/QENG-1867 (badb17a0)
|
121
|
+
|
122
|
+
|
123
|
+
```
|
124
|
+
Merge pull request #707 from johnduarte/QENG-1867
|
125
|
+
|
126
|
+
(QENG-1867) Add ETIMEDOUT rescue to host.rb
|
127
|
+
```
|
128
|
+
* (QENG-1867) Add ETIMEDOUT rescue to host.rb (e7a2ed2d)
|
129
|
+
|
130
|
+
|
131
|
+
```
|
132
|
+
(QENG-1867) Add ETIMEDOUT rescue to host.rb
|
133
|
+
|
134
|
+
This commit adds `Errno::ETIMEDOUT` to the rescue logic of the
|
135
|
+
port_open? method in lib/beaker/host.rb.
|
136
|
+
|
137
|
+
Adding this this rescue prevents the ETIMEDOUT error from short circuiting of
|
138
|
+
the logical intention of the port_open? method.
|
139
|
+
```
|
140
|
+
* GH-700 - amend merge as per suggestion in #706 (6d56290a)
|
141
|
+
|
142
|
+
* GH-700 - amend comments to be more appropriate (02591293)
|
143
|
+
|
144
|
+
* GH-700 - handle the use case where ::Docker.options is nil (81836988)
|
145
|
+
|
146
|
+
* Merge pull request #703 from sschneid/pooling_api_syntax_fixup (041f04ad)
|
147
|
+
|
148
|
+
|
149
|
+
```
|
150
|
+
Merge pull request #703 from sschneid/pooling_api_syntax_fixup
|
151
|
+
|
152
|
+
(MAINT) use implicit trailing '/' for pooling_api URI
|
153
|
+
```
|
154
|
+
* (MAINT) use implicit trailing '/' for pooling_api URI (4d2e6f32)
|
155
|
+
|
156
|
+
* (QENG-1852) install_puppet unable to install windows msi (regression) (76aba308)
|
157
|
+
|
158
|
+
|
159
|
+
```
|
160
|
+
(QENG-1852) install_puppet unable to install windows msi (regression)
|
161
|
+
|
162
|
+
- busted curl command on windows
|
163
|
+
- busted msiexec command for installation
|
164
|
+
- i cry myself to sleep every night
|
165
|
+
```
|
166
|
+
* Merge pull request #698 from sschneid/batch_vm_checkout (b8a64f74)
|
167
|
+
|
168
|
+
|
169
|
+
```
|
170
|
+
Merge pull request #698 from sschneid/batch_vm_checkout
|
171
|
+
|
172
|
+
(QENG-780) request sets of VMs instead of one VM at a time
|
173
|
+
```
|
174
|
+
* GH-700 - set ::Docker.options from docker_options in options hash, if it's not set via ::Docker.options already (7db8b636)
|
175
|
+
|
176
|
+
* (QENG-780) Updating MockNet::HTTP::Post methods (72a07bd2)
|
177
|
+
|
178
|
+
* (QENG-780) request sets of VMs instead of one VM at a time (9e82d9b6)
|
179
|
+
|
180
|
+
|
181
|
+
```
|
182
|
+
(QENG-780) request sets of VMs instead of one VM at a time
|
183
|
+
|
184
|
+
This PR facilitates use of vmpooler's batch-request POST API
|
185
|
+
(https://github.com/puppetlabs/vmpooler#post-vm) within beaker.
|
186
|
+
```
|
187
|
+
* Merge pull request #696 from kevpl/qeng1721_aio_quickadd (831a6c4e)
|
188
|
+
|
189
|
+
|
190
|
+
```
|
191
|
+
Merge pull request #696 from kevpl/qeng1721_aio_quickadd
|
192
|
+
|
193
|
+
(QENG-1721) added a quick AIO override for windows to unblock testing
|
194
|
+
```
|
195
|
+
* (QENG-1721) added a quick AIO override for windows to unblock testing (ba6ba605)
|
196
|
+
|
197
|
+
* (MAINT) Rolling back change for windows in the vagrant hypervisor (16741375)
|
198
|
+
|
199
|
+
|
200
|
+
```
|
201
|
+
(MAINT) Rolling back change for windows in the vagrant hypervisor
|
202
|
+
|
203
|
+
Rolling back the change made in bf353c1 as it is no longer required.
|
204
|
+
|
205
|
+
The subsequent change in 3aa080c for vagrant 1.7 properly fixed the issue
|
206
|
+
and so the work around can now be removed.
|
207
|
+
```
|
208
|
+
* qeng1721: added AIO windows support (6f8deb7d)
|
209
|
+
|
210
|
+
### <a name = "beaker2.4.1">beaker2.4.1 - 13 Feb, 2015 (84400ed1)
|
211
|
+
|
212
|
+
* (HISTORY) update beaker history for gem release 2.4.1 (84400ed1)
|
74
213
|
|
75
214
|
* (GEM) update beaker version to 2.4.1 (c3cffad8)
|
76
215
|
|
data/lib/beaker/answers.rb
CHANGED
@@ -19,6 +19,8 @@ module Beaker
|
|
19
19
|
return Version34.new(version, hosts, options)
|
20
20
|
when /\A3\.99/
|
21
21
|
return Version40.new(version, hosts, options)
|
22
|
+
when /\A3\.8/
|
23
|
+
return Version34.new(version, hosts, options)
|
22
24
|
when /\A3\.7/
|
23
25
|
return Version34.new(version, hosts, options)
|
24
26
|
when /\A3\.4/
|
data/lib/beaker/dsl/helpers.rb
CHANGED
@@ -1249,7 +1249,14 @@ module Beaker
|
|
1249
1249
|
# In all the case that it is different, this init script will exist. So we can assume
|
1250
1250
|
# that if the script doesn't exist, we should just use `pe-puppet`
|
1251
1251
|
result = on agent, "[ -e /etc/init.d/pe-puppet-agent ]", :acceptable_exit_codes => [0,1]
|
1252
|
-
agent_service =
|
1252
|
+
agent_service = 'pe-puppet-agent'
|
1253
|
+
if result.exit_code != 0
|
1254
|
+
if agent['pe_ver'] && !version_is_less(agent['pe_ver'], '4.0')
|
1255
|
+
agent_service = 'puppet'
|
1256
|
+
else
|
1257
|
+
agent_service = 'pe-puppet'
|
1258
|
+
end
|
1259
|
+
end
|
1253
1260
|
|
1254
1261
|
# Under a number of stupid circumstances, we can't stop the
|
1255
1262
|
# agent using puppet. This is usually because of issues with
|
@@ -478,11 +478,18 @@ module Beaker
|
|
478
478
|
host['dist'] = "puppet-enterprise-#{version}-#{host['platform']}"
|
479
479
|
elsif host['platform'] =~ /windows/
|
480
480
|
version = host[:pe_ver] || opts['pe_ver_win']
|
481
|
+
should_install_64bit = !(version_is_less(version, '3.4')) && host.is_x86_64? && !host['install_32'] && !opts['install_32']
|
481
482
|
#only install 64bit builds if
|
482
483
|
# - we are on pe version 3.4+
|
483
484
|
# - we do not have install_32 set on host
|
484
485
|
# - we do not have install_32 set globally
|
485
|
-
if !(version_is_less(version, '
|
486
|
+
if !(version_is_less(version, '4.0'))
|
487
|
+
if should_install_64bit
|
488
|
+
host['dist'] = "puppet-agent-#{version}-x64"
|
489
|
+
else
|
490
|
+
host['dist'] = "puppet-agent-#{version}-x86"
|
491
|
+
end
|
492
|
+
elsif should_install_64bit
|
486
493
|
host['dist'] = "puppet-enterprise-#{version}-x64"
|
487
494
|
else
|
488
495
|
host['dist'] = "puppet-enterprise-#{version}"
|
@@ -807,8 +814,8 @@ module Beaker
|
|
807
814
|
end
|
808
815
|
|
809
816
|
if host['is_cygwin'].nil? or host['is_cygwin'] == true
|
810
|
-
dest = "
|
811
|
-
on host, "curl -O #{
|
817
|
+
dest = "#{host['dist']}.msi"
|
818
|
+
on host, "curl -O #{link}"
|
812
819
|
|
813
820
|
#Because the msi installer doesn't add Puppet to the environment path
|
814
821
|
#Add both potential paths for simplicity
|
@@ -826,7 +833,7 @@ module Beaker
|
|
826
833
|
on host, "if not exist #{host['distmoduledir']} (md #{host['distmoduledir']})"
|
827
834
|
end
|
828
835
|
|
829
|
-
on host, "msiexec /qn /i #{dest}"
|
836
|
+
on host, "cmd /C 'start /w msiexec.exe /qn /i #{dest}'"
|
830
837
|
end
|
831
838
|
|
832
839
|
# Installs Puppet and dependencies from dmg
|
data/lib/beaker/host/windows.rb
CHANGED
@@ -39,8 +39,8 @@ module Windows
|
|
39
39
|
'user' => 'Administrator',
|
40
40
|
'group' => 'Administrators',
|
41
41
|
'puppetpath' => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
|
42
|
-
'puppetconfdir'
|
43
|
-
'puppetcodedir'
|
42
|
+
'puppetconfdir' => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
|
43
|
+
'puppetcodedir' => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
|
44
44
|
'hieraconf' => '`cygpath -smF 35`/Puppetlabs/puppet/etc/hiera.yaml',
|
45
45
|
'puppetvardir' => '`cygpath -smF 35`/PuppetLabs/puppet/var',
|
46
46
|
'distmoduledir' => '`cygpath -smF 35`/PuppetLabs/puppet/etc/modules',
|
@@ -48,10 +48,14 @@ module Windows
|
|
48
48
|
'hieralibdir' => '`cygpath -w /opt/puppet-git-repos/hiera/lib`',
|
49
49
|
'hierapuppetlibdir' => '`cygpath -w /opt/puppet-git-repos/hiera-puppet/lib`',
|
50
50
|
#let's just add both potential bin dirs to the path, include ruby too for `gem`, `ruby`, etc
|
51
|
-
'puppetbindir'
|
51
|
+
'puppetbindir' => '/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet/bin:/cygdrive/c/Program Files/Puppet Labs/Puppet/bin:/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet/sys/ruby/bin:/cygdrive/c/Program Files/Puppet Labs/Puppet/sys/ruby/bin',
|
52
52
|
'hierabindir' => '/opt/puppet-git-repos/hiera/bin',
|
53
53
|
'pathseparator' => ';',
|
54
54
|
})
|
55
55
|
end
|
56
|
+
|
57
|
+
def self.aio_defaults
|
58
|
+
self.foss_defaults
|
59
|
+
end
|
56
60
|
end
|
57
61
|
end
|
data/lib/beaker/host.rb
CHANGED
@@ -8,7 +8,9 @@ module Beaker
|
|
8
8
|
@hosts = hosts
|
9
9
|
|
10
10
|
# increase the http timeouts as provisioning images can be slow
|
11
|
-
|
11
|
+
default_docker_options = { :write_timeout => 300, :read_timeout => 300 }.merge(::Docker.options || {})
|
12
|
+
# Merge docker options from the entry in hosts file
|
13
|
+
::Docker.options = default_docker_options.merge(@options[:docker_options] || {})
|
12
14
|
# assert that the docker-api gem can talk to your docker
|
13
15
|
# enpoint. Will raise if there is a version mismatch
|
14
16
|
begin
|
@@ -72,9 +72,7 @@ module Beaker
|
|
72
72
|
end
|
73
73
|
#replace hostname with ip
|
74
74
|
ssh_config = ssh_config.gsub(/Host #{host.name}/, "Host #{host['ip']}") unless not host['ip']
|
75
|
-
|
76
|
-
ssh_config = ssh_config.gsub(/127\.0\.0\.1/, host['ip']) unless not host['ip']
|
77
|
-
end
|
75
|
+
|
78
76
|
#set the user
|
79
77
|
ssh_config = ssh_config.gsub(/User vagrant/, "User #{user}")
|
80
78
|
f.write(ssh_config)
|
@@ -51,7 +51,9 @@ module Beaker
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def provision
|
54
|
+
request_payload = {}
|
54
55
|
start = Time.now
|
56
|
+
|
55
57
|
@hosts.each_with_index do |h, i|
|
56
58
|
if not h['template']
|
57
59
|
raise ArgumentError, "You must specify a template name for #{h}"
|
@@ -61,39 +63,50 @@ module Beaker
|
|
61
63
|
h['template'] = templatefolders.pop
|
62
64
|
end
|
63
65
|
|
64
|
-
|
66
|
+
request_payload[h['template']] = (request_payload[h['template']].to_i + 1).to_s
|
67
|
+
end
|
65
68
|
|
66
|
-
|
67
|
-
waited = 0 #the amount of time we've spent waiting for this host to provision
|
68
|
-
begin
|
69
|
-
uri = URI.parse(get_template_url(@options['pooling_api'], h['template']))
|
69
|
+
@logger.notify "Requesting VM set from vCloud host pool"
|
70
70
|
|
71
|
-
|
72
|
-
|
71
|
+
last_wait, wait = 0, 1
|
72
|
+
waited = 0 #the amount of time we've spent waiting for this host to provision
|
73
|
+
begin
|
74
|
+
uri = URI.parse(@options['pooling_api'] + '/vm/')
|
73
75
|
|
74
|
-
|
76
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
77
|
+
request = Net::HTTP::Post.new(uri.request_uri)
|
78
|
+
|
79
|
+
request.body = request_payload.to_json
|
80
|
+
|
81
|
+
response = http.request(request)
|
82
|
+
parsed_response = JSON.parse(response.body)
|
83
|
+
|
84
|
+
if parsed_response['ok']
|
85
|
+
domain = parsed_response['domain']
|
86
|
+
|
87
|
+
@hosts.each_with_index do |h, i|
|
88
|
+
if parsed_response[h['template']]['hostname'].is_a?(Array)
|
89
|
+
hostname = parsed_response[h['template']]['hostname'].shift
|
90
|
+
else
|
91
|
+
hostname = parsed_response[h['template']]['hostname']
|
92
|
+
end
|
75
93
|
|
76
|
-
response = http.request(request)
|
77
|
-
parsed_response = JSON.parse(response.body)
|
78
|
-
if parsed_response[h['template']] && parsed_response[h['template']]['ok'] && parsed_response[h['template']]['hostname']
|
79
|
-
hostname = parsed_response[h['template']]['hostname']
|
80
|
-
domain = parsed_response['domain']
|
81
94
|
h['vmhostname'] = domain ? "#{hostname}.#{domain}" : hostname
|
82
|
-
|
83
|
-
|
84
|
-
end
|
85
|
-
rescue JSON::ParserError, RuntimeError, *SSH_EXCEPTIONS => e
|
86
|
-
if waited <= @options[:timeout].to_i
|
87
|
-
@logger.debug("Retrying provision for vCloud host #{h.name} after waiting #{wait} second(s) (failed with #{e.class})")
|
88
|
-
sleep wait
|
89
|
-
waited += wait
|
90
|
-
last_wait, wait = wait, last_wait + wait
|
91
|
-
retry
|
95
|
+
|
96
|
+
@logger.notify "Using available vCloud host '#{h['vmhostname']}' (#{h.name})"
|
92
97
|
end
|
93
|
-
|
98
|
+
else
|
99
|
+
raise "VcloudPooled.provision - requested vCloud hosts not available"
|
94
100
|
end
|
95
|
-
|
96
|
-
|
101
|
+
rescue JSON::ParserError, RuntimeError, *SSH_EXCEPTIONS => e
|
102
|
+
if waited <= @options[:timeout].to_i
|
103
|
+
@logger.debug("Retrying provision for vCloud host after waiting #{wait} second(s) (failed with #{e.class})")
|
104
|
+
sleep wait
|
105
|
+
waited += wait
|
106
|
+
last_wait, wait = wait, last_wait + wait
|
107
|
+
retry
|
108
|
+
end
|
109
|
+
report_and_raise(@logger, e, 'vCloudPooled.provision')
|
97
110
|
end
|
98
111
|
|
99
112
|
@logger.notify 'Spent %.2f seconds grabbing VMs' % (Time.now - start)
|
data/lib/beaker/version.rb
CHANGED
@@ -354,6 +354,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
354
354
|
allow( subject ).to receive( :sign_certificate_for ).and_return( true )
|
355
355
|
allow( subject ).to receive( :stop_agent_on ).and_return( true )
|
356
356
|
allow( subject ).to receive( :sleep_until_puppetdb_started ).and_return( true )
|
357
|
+
allow( subject ).to receive( :version_is_less ).with('3.0', '4.0').and_return( true )
|
357
358
|
allow( subject ).to receive( :version_is_less ).with('3.0', '3.4').and_return( true )
|
358
359
|
allow( subject ).to receive( :version_is_less ).with('3.0', '3.0').and_return( false )
|
359
360
|
allow( subject ).to receive( :version_is_less ).with('3.0', '3.4').and_return( true )
|
@@ -547,15 +548,15 @@ describe ClassMixedWithDSLInstallUtils do
|
|
547
548
|
let(:platform) { "windows-2008r2-i386" }
|
548
549
|
it 'installs specific version of puppet when passed :version' do
|
549
550
|
allow(subject).to receive(:link_exists?).and_return( true )
|
550
|
-
expect(subject).to receive(:on).with(hosts[0], 'curl -O
|
551
|
+
expect(subject).to receive(:on).with(hosts[0], 'curl -O http://downloads.puppetlabs.com/windows/puppet-3000.msi')
|
551
552
|
expect(subject).to receive(:on).with(hosts[0], " echo 'export PATH=$PATH:\"/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet/bin\":\"/cygdrive/c/Program Files/Puppet Labs/Puppet/bin\"' > /etc/bash.bashrc ")
|
552
|
-
expect(subject).to receive(:on).with(hosts[0], 'msiexec /qn /i
|
553
|
+
expect(subject).to receive(:on).with(hosts[0], 'cmd /C \'start /w msiexec.exe /qn /i puppet-3000.msi\'')
|
553
554
|
subject.install_puppet(:version => '3000')
|
554
555
|
end
|
555
556
|
it 'installs from custom url when passed :win_download_url' do
|
556
557
|
allow(subject).to receive(:link_exists?).and_return( true )
|
557
|
-
expect(subject).to receive(:on).with(hosts[0], 'curl -O
|
558
|
-
expect(subject).to receive(:on).with(hosts[0], 'msiexec /qn /i
|
558
|
+
expect(subject).to receive(:on).with(hosts[0], 'curl -O http://nightlies.puppetlabs.com/puppet-latest/repos/windows/puppet-3000.msi')
|
559
|
+
expect(subject).to receive(:on).with(hosts[0], 'cmd /C \'start /w msiexec.exe /qn /i puppet-3000.msi\'')
|
559
560
|
subject.install_puppet( :version => '3000', :win_download_url => 'http://nightlies.puppetlabs.com/puppet-latest/repos/windows' )
|
560
561
|
end
|
561
562
|
end
|
data/spec/mocks.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: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppetlabs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -533,7 +533,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
533
533
|
version: '0'
|
534
534
|
requirements: []
|
535
535
|
rubyforge_project:
|
536
|
-
rubygems_version: 2.4.
|
536
|
+
rubygems_version: 2.4.6
|
537
537
|
signing_key:
|
538
538
|
specification_version: 4
|
539
539
|
summary: Let's test Puppet!
|