beaker-pe 1.22.0 → 1.23.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/README.md +5 -0
- data/lib/beaker-pe/install/pe_utils.rb +13 -6
- data/lib/beaker-pe/pe-client-tools/executable_helper.rb +9 -0
- data/lib/beaker-pe/version.rb +1 -1
- data/spec/beaker-pe/install/pe_utils_spec.rb +53 -4
- data/spec/beaker-pe/pe-client-tools/executable_helper_spec.rb +6 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
MjlmYWQxODA1M2Q3NzI3ZTM0YWNkNzk0Y2E4MDI1YWJmMzVmNTc4ZA==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
YWFiNmVkMTJiNDM1YTk1ODQ2MTk1ZDRlZWI3ZDJmYzM4MzQ3YjcxYg==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
MTg4NTllZTMzNjBiMTZiZTM4YmUyYzQxNDllNDM4OTU4Yjg3ZDc0NzI0ODA0
|
|
10
|
+
MTRjOTA3N2Y1ZDg2YWM1ZmU1NGRiYjY1ZDFmYjY2ZGVjZjZlYjMyMTRkNGEy
|
|
11
|
+
MmZjNzkwNzcyYjIzYmI4ZjUxNjhmNGI1NmRjMjAxNmNkZGI2MTU=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
YTJkOWVkYzc4ZjhhYWRkZmRlZWFkOTM2OTY1NmVjMjA1ZWRmYmUzODkzOWU2
|
|
14
|
+
MThkYzYxOTJkMmM2MTc0NDk1NzE0ODhhMmNiNDkyNjVmN2EzZjZjNTJkMjFh
|
|
15
|
+
ZmE0NzJiYmIwNWM4OTJkYzEwZGM0MmE1ZTE4ZTllOTc2N2Y0MTE=
|
data/README.md
CHANGED
|
@@ -37,6 +37,11 @@ things:
|
|
|
37
37
|
2. put a `require 'beaker-pe'` statement in your tests/code that need
|
|
38
38
|
beaker-pe-specific functionality
|
|
39
39
|
|
|
40
|
+
# Gem Installing
|
|
41
|
+
Spec tests require a version of scooter that is private. Execute
|
|
42
|
+
`export GEM_SOURCE=http://rubygems.delivery.puppetlabs.net` prior to running
|
|
43
|
+
`bundle install --path .bundle/gems/`.
|
|
44
|
+
|
|
40
45
|
# Spec Testing
|
|
41
46
|
|
|
42
47
|
Spec tests all live under the `spec` folder. These are the default rake task, &
|
|
@@ -92,11 +92,11 @@ module Beaker
|
|
|
92
92
|
@cert_cache_dir ||= Dir.mktmpdir("master_ca_cert")
|
|
93
93
|
local_cert_copy = "#{@cert_cache_dir}/ca.pem"
|
|
94
94
|
step "Copying master ca.pem to agent for secure frictionless install" do
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
scp_from(master,
|
|
98
|
-
on(host, "mkdir -p #{
|
|
99
|
-
scp_to(host, local_cert_copy,
|
|
95
|
+
agent_ca_pem_dir = "#{host['puppetpath']}/ssl/certs"
|
|
96
|
+
master_ca_pem_path = "/etc/puppetlabs/puppet/ssl/certs/ca.pem"
|
|
97
|
+
scp_from(master, master_ca_pem_path , @cert_cache_dir) unless File.exist?(local_cert_copy)
|
|
98
|
+
on(host, "mkdir -p #{agent_ca_pem_dir}")
|
|
99
|
+
scp_to(host, local_cert_copy, agent_ca_pem_dir)
|
|
100
100
|
end
|
|
101
101
|
end
|
|
102
102
|
end
|
|
@@ -128,7 +128,14 @@ module Beaker
|
|
|
128
128
|
use_puppet_ca_cert = host[:use_puppet_ca_cert] || opts[:use_puppet_ca_cert]
|
|
129
129
|
|
|
130
130
|
if host['platform'] =~ /windows/ then
|
|
131
|
-
|
|
131
|
+
if use_puppet_ca_cert
|
|
132
|
+
frictionless_install_opts << '-UsePuppetCA'
|
|
133
|
+
cert_validator = %Q{\\$callback = {param(\\$sender,[System.Security.Cryptography.X509Certificates.X509Certificate]\\$certificate,[System.Security.Cryptography.X509Certificates.X509Chain]\\$chain,[System.Net.Security.SslPolicyErrors]\\$sslPolicyErrors);\\$CertificateType=[System.Security.Cryptography.X509Certificates.X509Certificate2];\\$CACert=\\$CertificateType::CreateFromCertFile('#{host['puppetpath']}/ssl/certs/ca.pem') -as \\$CertificateType;\\$chain.ChainPolicy.ExtraStore.Add(\\$CACert);return \\$chain.Build(\\$certificate)};[Net.ServicePointManager]::ServerCertificateValidationCallback = \\$callback}
|
|
134
|
+
else
|
|
135
|
+
cert_validator = '[Net.ServicePointManager]::ServerCertificateValidationCallback = {\\$true}'
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
cmd = %Q{powershell -c "cd #{host['working_dir']};#{cert_validator};\\$webClient = New-Object System.Net.WebClient;\\$webClient.DownloadFile('https://#{master}:8140/packages/current/install.ps1', '#{host['working_dir']}/install.ps1');#{host['working_dir']}/install.ps1 -verbose #{frictionless_install_opts.join(' ')}"}
|
|
132
139
|
else
|
|
133
140
|
curl_opts = %w{--tlsv1 -O}
|
|
134
141
|
if use_puppet_ca_cert
|
|
@@ -61,6 +61,15 @@ module Beaker
|
|
|
61
61
|
Private.new.tool(:query, *args, &block)
|
|
62
62
|
end
|
|
63
63
|
|
|
64
|
+
# puppet-task helper win/lin/osx
|
|
65
|
+
# @param [BEAKER::Host] host The SUT that should run the puppet-task command
|
|
66
|
+
# @param [String] args The arguments to puppet-task
|
|
67
|
+
# @param [Hash] opts options hash to the Beaker Command
|
|
68
|
+
# @param [Block] &block optional block
|
|
69
|
+
def puppet_task_on(*args, &block)
|
|
70
|
+
Private.new.tool(:task, *args, &block)
|
|
71
|
+
end
|
|
72
|
+
|
|
64
73
|
# Logs a user in on a SUT with puppet-access/RBAC API (windows)
|
|
65
74
|
# @param [Beaker::Host] host The SUT to perform the login on
|
|
66
75
|
# @param [Scooter::HttpDispatchers::ConsoleDispatcher] credentialed_dispatcher A Scooter dispatcher that has credentials for the user
|
data/lib/beaker-pe/version.rb
CHANGED
|
@@ -200,22 +200,70 @@ describe ClassMixedWithDSLInstallUtils do
|
|
|
200
200
|
end
|
|
201
201
|
|
|
202
202
|
it 'generates a unix PE frictionless install command without cert verification' do
|
|
203
|
-
|
|
203
|
+
expecting = [
|
|
204
|
+
"FRICTIONLESS_TRACE='true'",
|
|
205
|
+
"export FRICTIONLESS_TRACE",
|
|
206
|
+
"cd /tmp && curl --tlsv1 -O -k https://testmaster:8140/packages/current/install.bash && bash install.bash"
|
|
207
|
+
].join("; ")
|
|
208
|
+
|
|
209
|
+
expect( subject.frictionless_agent_installer_cmd( host, {}, '2016.4.0' ) ).to eq(expecting)
|
|
204
210
|
end
|
|
205
211
|
|
|
206
212
|
it 'generates a unix PE frictionless install command with cert verification' do
|
|
207
213
|
host['use_puppet_ca_cert'] = true
|
|
208
|
-
|
|
214
|
+
expecting = [
|
|
215
|
+
"FRICTIONLESS_TRACE='true'",
|
|
216
|
+
"export FRICTIONLESS_TRACE",
|
|
217
|
+
"cd /tmp && curl --tlsv1 -O --cacert /etc/puppetlabs/puppet/ssl/certs/ca.pem https://testmaster:8140/packages/current/install.bash && bash install.bash"
|
|
218
|
+
].join("; ")
|
|
219
|
+
|
|
220
|
+
expect( subject.frictionless_agent_installer_cmd( host, {}, '2016.4.0' ) ).to eq(expecting)
|
|
209
221
|
end
|
|
210
222
|
|
|
211
223
|
it 'generates a unix PE frictionless install command without cert verification on aix' do
|
|
212
224
|
host['platform'] = 'aix-61-power'
|
|
213
|
-
|
|
225
|
+
expecting = [
|
|
226
|
+
"FRICTIONLESS_TRACE='true'",
|
|
227
|
+
"export FRICTIONLESS_TRACE",
|
|
228
|
+
"cd /tmp && curl --tlsv1 -O https://testmaster:8140/packages/current/install.bash && bash install.bash"
|
|
229
|
+
].join("; ")
|
|
230
|
+
|
|
231
|
+
expect( subject.frictionless_agent_installer_cmd( host, {}, '2016.4.0' ) ).to eq(expecting)
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
it 'generates a PS1 frictionless install command for windows' do
|
|
235
|
+
host['platform'] = 'windows-2012-64'
|
|
236
|
+
expecting = "powershell -c \"" +
|
|
237
|
+
[
|
|
238
|
+
"cd /tmp",
|
|
239
|
+
"[Net.ServicePointManager]::ServerCertificateValidationCallback = {\\$true}",
|
|
240
|
+
"\\$webClient = New-Object System.Net.WebClient",
|
|
241
|
+
"\\$webClient.DownloadFile('https://testmaster:8140/packages/current/install.ps1', '/tmp/install.ps1')",
|
|
242
|
+
"/tmp/install.ps1 -verbose "
|
|
243
|
+
].join(";") +
|
|
244
|
+
"\""
|
|
245
|
+
expect( subject.frictionless_agent_installer_cmd( host, {}, '2016.4.0' ) ).to eq(expecting)
|
|
214
246
|
end
|
|
215
247
|
|
|
216
248
|
it 'generates a PS1 frictionless install command for windows' do
|
|
217
249
|
host['platform'] = 'windows-2012-64'
|
|
218
|
-
|
|
250
|
+
host['puppetpath'] = '/PuppetLabs/puppet/etc'
|
|
251
|
+
host['use_puppet_ca_cert'] = true
|
|
252
|
+
expecting = "powershell -c \"" +
|
|
253
|
+
[
|
|
254
|
+
"cd /tmp",
|
|
255
|
+
"\\$callback = {param(\\$sender,[System.Security.Cryptography.X509Certificates.X509Certificate]\\$certificate,[System.Security.Cryptography.X509Certificates.X509Chain]\\$chain,[System.Net.Security.SslPolicyErrors]\\$sslPolicyErrors)",
|
|
256
|
+
"\\$CertificateType=[System.Security.Cryptography.X509Certificates.X509Certificate2]",
|
|
257
|
+
"\\$CACert=\\$CertificateType::CreateFromCertFile('/PuppetLabs/puppet/etc/ssl/certs/ca.pem') -as \\$CertificateType",
|
|
258
|
+
"\\$chain.ChainPolicy.ExtraStore.Add(\\$CACert)",
|
|
259
|
+
"return \\$chain.Build(\\$certificate)}",
|
|
260
|
+
"[Net.ServicePointManager]::ServerCertificateValidationCallback = \\$callback",
|
|
261
|
+
"\\$webClient = New-Object System.Net.WebClient",
|
|
262
|
+
"\\$webClient.DownloadFile('https://testmaster:8140/packages/current/install.ps1', '#{host['working_dir']}/install.ps1')",
|
|
263
|
+
"/tmp/install.ps1 -verbose -UsePuppetCA"
|
|
264
|
+
].join(";") +
|
|
265
|
+
"\""
|
|
266
|
+
expect( subject.frictionless_agent_installer_cmd( host, {}, '2016.4.0' ) ).to eq(expecting)
|
|
219
267
|
end
|
|
220
268
|
end
|
|
221
269
|
|
|
@@ -232,6 +280,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
|
232
280
|
|
|
233
281
|
it 'installs ca.pem if use_puppet_ca_cert is true' do
|
|
234
282
|
host['use_puppet_ca_cert'] = true
|
|
283
|
+
host['puppetpath'] = '/etc/puppetlabs/puppet'
|
|
235
284
|
expect(Dir).to receive(:mktmpdir).with('master_ca_cert').and_return('/tmp/master_ca_cert_random')
|
|
236
285
|
expect(subject).to receive(:on).with(host, 'mkdir -p /etc/puppetlabs/puppet/ssl/certs')
|
|
237
286
|
expect(subject).to receive(:scp_from).with('testmaster', '/etc/puppetlabs/puppet/ssl/certs/ca.pem', %r{/tmp/master_ca_cert_random})
|
|
@@ -52,6 +52,12 @@ describe MixedWithExecutableHelper do
|
|
|
52
52
|
it_behaves_like 'pe-client-tool'
|
|
53
53
|
end
|
|
54
54
|
|
|
55
|
+
context 'puppet-task' do
|
|
56
|
+
let(:tool) {'task'}
|
|
57
|
+
|
|
58
|
+
it_behaves_like 'pe-client-tool'
|
|
59
|
+
end
|
|
60
|
+
|
|
55
61
|
it 'has a method to login with puppet access' do
|
|
56
62
|
expect(subject.respond_to?('login_with_puppet_access_on')).not_to be(false)
|
|
57
63
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: beaker-pe
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.23.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Puppetlabs
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-09-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|