beaker-puppet 1.22.2 → 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 +4 -4
- data/CHANGELOG.md +13 -0
- data/lib/beaker-puppet/install_utils/foss_utils.rb +21 -9
- data/lib/beaker-puppet/version.rb +1 -1
- data/spec/beaker-puppet/helpers/puppet_helpers_spec.rb +19 -19
- data/spec/beaker-puppet/install_utils/foss_utils_spec.rb +2 -2
- data/spec/beaker-puppet/install_utils/windows_utils_spec.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 291be3169160fb05d4e9e03f4e18e0d70baa030bee8310919674cc2efb1939bb
|
4
|
+
data.tar.gz: 2db7eda8598a998fba05334c49239a2f3491773dc85b56e02f690e7ed3713439
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9a231d1ecbfd9935b75e81f792c168cb7069086a1aecdff9bb059c9ff0b1031160316b7cb8fe54575f314334ed8b4d893ab2558560c66b77567836370a4909e
|
7
|
+
data.tar.gz: dd4f7ebe572dc4436bd758ad48e695c287a4b00fdf7074740c251bf9a3cc5f935a9779c3b3aef4b576aa1cef640f9d80a24911538cbc151d85ec3a54a0667b75
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,19 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
|
5
|
+
## [1.23.0](https://github.com/voxpupuli/beaker-puppet/tree/1.23.0) (2022-02-23)
|
6
|
+
|
7
|
+
[Full Changelog](https://github.com/voxpupuli/beaker-puppet/compare/1.22.2...1.23.0)
|
8
|
+
|
9
|
+
**Implemented enhancements:**
|
10
|
+
|
11
|
+
- \(maint\) Follow redirects when curling MSI [\#176](https://github.com/voxpupuli/beaker-puppet/pull/176) ([joshcooper](https://github.com/joshcooper))
|
12
|
+
- Update agent download from URL logic to handle redirects [\#173](https://github.com/voxpupuli/beaker-puppet/pull/173) ([cthorn42](https://github.com/cthorn42))
|
13
|
+
|
14
|
+
**Merged pull requests:**
|
15
|
+
|
16
|
+
- Update specs to fix ruby 3 spec failures [\#174](https://github.com/voxpupuli/beaker-puppet/pull/174) ([cthorn42](https://github.com/cthorn42))
|
17
|
+
|
5
18
|
## [1.22.2](https://github.com/voxpupuli/beaker-puppet/tree/1.22.2) (2021-12-31)
|
6
19
|
|
7
20
|
[Full Changelog](https://github.com/voxpupuli/beaker-puppet/compare/1.22.1...1.22.2)
|
@@ -75,7 +75,7 @@ module Beaker
|
|
75
75
|
# redhat-8-arm64 is provided from amazon
|
76
76
|
return true if host.host_hash[:template] == 'redhat-8-arm64' && host.hostname =~ /.puppet.net$/
|
77
77
|
|
78
|
-
result = on(host, %(curl -fI "#{url}"), accept_all_exit_codes: true)
|
78
|
+
result = on(host, %(curl --location -fI "#{url}"), accept_all_exit_codes: true)
|
79
79
|
return result.exit_code.zero?
|
80
80
|
end
|
81
81
|
|
@@ -681,7 +681,7 @@ module Beaker
|
|
681
681
|
if host.is_cygwin?
|
682
682
|
# NOTE: it is critical that -o be before -O on Windows
|
683
683
|
proxy = opts[:package_proxy] ? "-x #{opts[:package_proxy]} " : ''
|
684
|
-
on host, "curl #{proxy}
|
684
|
+
on host, "curl #{proxy}--location --output \"#{msi_download_path}\" --remote-name #{link}"
|
685
685
|
|
686
686
|
#Because the msi installer doesn't add Puppet to the environment path
|
687
687
|
#Add both potential paths for simplicity
|
@@ -761,9 +761,9 @@ module Beaker
|
|
761
761
|
raise "You need to specify versions for OSX host\n eg. install_puppet({:version => '3.6.2',:facter_version => '2.1.0',:hiera_version => '1.3.4',})"
|
762
762
|
end
|
763
763
|
|
764
|
-
on host, "curl -
|
765
|
-
on host, "curl -
|
766
|
-
on host, "curl -
|
764
|
+
on host, "curl --location --remote-name #{opts[:mac_download_url]}/puppet-#{puppet_ver}.dmg"
|
765
|
+
on host, "curl --location --remote-name #{opts[:mac_download_url]}/facter-#{facter_ver}.dmg"
|
766
|
+
on host, "curl --location --remote-name #{opts[:mac_download_url]}/hiera-#{hiera_ver}.dmg"
|
767
767
|
|
768
768
|
host.install_package("puppet-#{puppet_ver}")
|
769
769
|
host.install_package("facter-#{facter_ver}")
|
@@ -815,7 +815,7 @@ module Beaker
|
|
815
815
|
|
816
816
|
pkg_name = "puppet-agent-#{agent_version}*"
|
817
817
|
dmg_name = "puppet-agent-#{agent_version}-1.osx#{version}.dmg"
|
818
|
-
on host, "curl -
|
818
|
+
on host, "curl --location --remote-name #{download_url}/#{dmg_name}"
|
819
819
|
|
820
820
|
host.install_package(pkg_name)
|
821
821
|
|
@@ -826,7 +826,7 @@ module Beaker
|
|
826
826
|
# Returns the latest puppet-agent version number from a given url.
|
827
827
|
#
|
828
828
|
# @param [String] url URL containing list of puppet-agent packages.
|
829
|
-
# Example: https://downloads.puppetlabs.com/mac/10.
|
829
|
+
# Example: https://downloads.puppetlabs.com/mac/puppet7/10.15/x86_64/
|
830
830
|
#
|
831
831
|
# @return [String] version puppet-agent version number (e.g. 1.4.1)
|
832
832
|
# Empty string if none found.
|
@@ -834,8 +834,20 @@ module Beaker
|
|
834
834
|
def get_latest_puppet_agent_build_from_url(url)
|
835
835
|
require 'oga'
|
836
836
|
require 'net/http'
|
837
|
-
|
838
|
-
|
837
|
+
|
838
|
+
full_url = "#{url}/index_by_lastModified_reverse.html"
|
839
|
+
response = Net::HTTP.get_response(URI(full_url))
|
840
|
+
counter = 0
|
841
|
+
|
842
|
+
# Redirect following
|
843
|
+
while response.is_a?(Net::HTTPRedirection) && counter < 15
|
844
|
+
response = Net::HTTP.get_response(URI.parse(Net::HTTP.get_response(URI(full_url))['location']))
|
845
|
+
counter = counter + 1
|
846
|
+
end
|
847
|
+
|
848
|
+
raise "The URL for puppet-agent download, #{response.uri}, returned #{response.message} with #{response.code}" unless response.is_a?(Net::HTTPSuccess)
|
849
|
+
|
850
|
+
document = Oga.parse_html(response.body)
|
839
851
|
agents = document.xpath('//a[contains(@href, "puppet-agent")]')
|
840
852
|
|
841
853
|
latest_match = agents.shift.attributes[0].value
|
@@ -174,7 +174,7 @@ describe ClassMixedWithDSLHelpers do
|
|
174
174
|
|
175
175
|
expect( subject ).to receive( :on ).
|
176
176
|
with( agent, 'puppet_command',
|
177
|
-
:acceptable_exit_codes => [0] )
|
177
|
+
{:acceptable_exit_codes => [0]} )
|
178
178
|
|
179
179
|
subject.apply_manifest_on( agent, 'class { "boo": }')
|
180
180
|
end
|
@@ -189,7 +189,7 @@ describe ClassMixedWithDSLHelpers do
|
|
189
189
|
and_return( 'puppet_command' )
|
190
190
|
|
191
191
|
expect( subject ).to receive( :on ).
|
192
|
-
with( host, 'puppet_command', :acceptable_exit_codes => [0] )
|
192
|
+
with( host, 'puppet_command', {:acceptable_exit_codes => [0]} )
|
193
193
|
end
|
194
194
|
|
195
195
|
result = subject.apply_manifest_on( the_hosts, 'include foobar' )
|
@@ -209,7 +209,7 @@ describe ClassMixedWithDSLHelpers do
|
|
209
209
|
and_return( 'puppet_command' )
|
210
210
|
the_hosts.each do |host|
|
211
211
|
allow( subject ).to receive( :on ).
|
212
|
-
|
212
|
+
with( host, 'puppet_command', {:acceptable_exit_codes => [0]} )
|
213
213
|
end
|
214
214
|
|
215
215
|
result = nil
|
@@ -228,11 +228,11 @@ describe ClassMixedWithDSLHelpers do
|
|
228
228
|
and_return( 'puppet_command' )
|
229
229
|
the_hosts.each do |host|
|
230
230
|
allow( subject ).to receive( :on ).
|
231
|
-
with( host, 'puppet_command', :acceptable_exit_codes => [0] )
|
231
|
+
with( host, 'puppet_command', {:acceptable_exit_codes => [0]} )
|
232
232
|
end
|
233
233
|
expect( subject ).to receive( :block_on ).with(
|
234
234
|
anything,
|
235
|
-
:run_in_parallel => true
|
235
|
+
{:run_in_parallel => true}
|
236
236
|
)
|
237
237
|
|
238
238
|
subject.apply_manifest_on( the_hosts, 'include foobar', { :run_in_parallel => true } )
|
@@ -246,11 +246,11 @@ describe ClassMixedWithDSLHelpers do
|
|
246
246
|
|
247
247
|
expect( subject ).to receive( :on ).
|
248
248
|
with( agent, 'puppet_command',
|
249
|
-
:acceptable_exit_codes => [0,2] )
|
249
|
+
{:acceptable_exit_codes => [0,2]} )
|
250
250
|
|
251
251
|
subject.apply_manifest_on( agent,
|
252
252
|
'class { "boo": }',
|
253
|
-
:catch_failures => true )
|
253
|
+
{:catch_failures => true} )
|
254
254
|
end
|
255
255
|
it 'allows acceptable exit codes through :catch_failures' do
|
256
256
|
allow( subject ).to receive( :hosts ).and_return( hosts )
|
@@ -260,12 +260,12 @@ describe ClassMixedWithDSLHelpers do
|
|
260
260
|
|
261
261
|
expect( subject ).to receive( :on ).
|
262
262
|
with( agent, 'puppet_command',
|
263
|
-
|
263
|
+
{:acceptable_exit_codes => [4,0,2]} )
|
264
264
|
|
265
265
|
subject.apply_manifest_on( agent,
|
266
266
|
'class { "boo": }',
|
267
|
-
:acceptable_exit_codes => [4],
|
268
|
-
|
267
|
+
{:acceptable_exit_codes => [4],
|
268
|
+
:catch_failures => true} )
|
269
269
|
end
|
270
270
|
it 'enforces a 0 exit code through :catch_changes' do
|
271
271
|
allow( subject ).to receive( :hosts ).and_return( hosts )
|
@@ -276,13 +276,13 @@ describe ClassMixedWithDSLHelpers do
|
|
276
276
|
expect( subject ).to receive( :on ).with(
|
277
277
|
agent,
|
278
278
|
'puppet_command',
|
279
|
-
:acceptable_exit_codes => [0]
|
279
|
+
{:acceptable_exit_codes => [0]}
|
280
280
|
)
|
281
281
|
|
282
282
|
subject.apply_manifest_on(
|
283
283
|
agent,
|
284
284
|
'class { "boo": }',
|
285
|
-
:catch_changes => true
|
285
|
+
{:catch_changes => true}
|
286
286
|
)
|
287
287
|
end
|
288
288
|
it 'enforces a 2 exit code through :expect_changes' do
|
@@ -294,13 +294,13 @@ describe ClassMixedWithDSLHelpers do
|
|
294
294
|
expect( subject ).to receive( :on ).with(
|
295
295
|
agent,
|
296
296
|
'puppet_command',
|
297
|
-
:acceptable_exit_codes => [2]
|
297
|
+
{:acceptable_exit_codes => [2]}
|
298
298
|
)
|
299
299
|
|
300
300
|
subject.apply_manifest_on(
|
301
301
|
agent,
|
302
302
|
'class { "boo": }',
|
303
|
-
:expect_changes => true
|
303
|
+
{:expect_changes => true}
|
304
304
|
)
|
305
305
|
end
|
306
306
|
it 'enforces exit codes through :expect_failures' do
|
@@ -312,13 +312,13 @@ describe ClassMixedWithDSLHelpers do
|
|
312
312
|
expect( subject ).to receive( :on ).with(
|
313
313
|
agent,
|
314
314
|
'puppet_command',
|
315
|
-
:acceptable_exit_codes => [1,4,6]
|
315
|
+
{:acceptable_exit_codes => [1,4,6]}
|
316
316
|
)
|
317
317
|
|
318
318
|
subject.apply_manifest_on(
|
319
319
|
agent,
|
320
320
|
'class { "boo": }',
|
321
|
-
:expect_failures => true
|
321
|
+
{:expect_failures => true}
|
322
322
|
)
|
323
323
|
end
|
324
324
|
it 'enforces exit codes through :expect_failures' do
|
@@ -341,14 +341,14 @@ describe ClassMixedWithDSLHelpers do
|
|
341
341
|
expect( subject ).to receive( :on ).with(
|
342
342
|
agent,
|
343
343
|
'puppet_command',
|
344
|
-
:acceptable_exit_codes => [1,2,3,4,5,6]
|
344
|
+
{:acceptable_exit_codes => [1,2,3,4,5,6]}
|
345
345
|
)
|
346
346
|
|
347
347
|
subject.apply_manifest_on(
|
348
348
|
agent,
|
349
349
|
'class { "boo": }',
|
350
|
-
:acceptable_exit_codes => (1..5),
|
351
|
-
|
350
|
+
{:acceptable_exit_codes => (1..5),
|
351
|
+
:expect_failures => true}
|
352
352
|
)
|
353
353
|
end
|
354
354
|
|
@@ -341,7 +341,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
341
341
|
|
342
342
|
it 'installs puppet on cygwin windows' do
|
343
343
|
allow(subject).to receive(:link_exists?).and_return( true )
|
344
|
-
expect(subject).to receive(:on).with(winhost, "curl
|
344
|
+
expect(subject).to receive(:on).with(winhost, "curl --location --output \"#{win_temp}\\puppet-3.7.1-x64.msi\" --remote-name http://downloads.puppet.com/windows/puppet-3.7.1-x64.msi")
|
345
345
|
expect(subject).to receive(:on).with(winhost, " echo 'export PATH=$PATH:\"/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet/bin\":\"/cygdrive/c/Program Files/Puppet Labs/Puppet/bin\"' > /etc/bash.bashrc ")
|
346
346
|
expect(subject).to receive(:install_msi_on).with(winhost, "#{win_temp}\\puppet-3.7.1-x64.msi", {}, {:debug => nil})
|
347
347
|
|
@@ -350,7 +350,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
350
350
|
|
351
351
|
it 'installs puppet on cygwin windows via proxy' do
|
352
352
|
allow(subject).to receive(:link_exists?).and_return( true )
|
353
|
-
expect(subject).to receive(:on).with(winhost, "curl -x https://proxy.com
|
353
|
+
expect(subject).to receive(:on).with(winhost, "curl -x https://proxy.com --location --output \"#{win_temp}\\puppet-3.7.1-x64.msi\" --remote-name http://downloads.puppet.com/windows/puppet-3.7.1-x64.msi")
|
354
354
|
expect(subject).to receive(:on).with(winhost, " echo 'export PATH=$PATH:\"/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet/bin\":\"/cygdrive/c/Program Files/Puppet Labs/Puppet/bin\"' > /etc/bash.bashrc ")
|
355
355
|
expect(subject).to receive(:install_msi_on).with(winhost, "#{win_temp}\\puppet-3.7.1-x64.msi", {}, {:debug => nil})
|
356
356
|
|
@@ -99,7 +99,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
99
99
|
expect_version_log_called
|
100
100
|
expect( subject ).to receive( :create_install_msi_batch_on ).with(
|
101
101
|
anything, anything,
|
102
|
-
'PUPPET_AGENT_STARTUP_MODE' => 'Manual')
|
102
|
+
{'PUPPET_AGENT_STARTUP_MODE' => 'Manual'})
|
103
103
|
subject.install_msi_on(hosts, msi_path, {})
|
104
104
|
end
|
105
105
|
|
@@ -112,7 +112,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
112
112
|
value = 'Automatic'
|
113
113
|
expect( subject ).to receive( :create_install_msi_batch_on ).with(
|
114
114
|
anything, anything,
|
115
|
-
'PUPPET_AGENT_STARTUP_MODE' => value)
|
115
|
+
{'PUPPET_AGENT_STARTUP_MODE' => value})
|
116
116
|
subject.install_msi_on(hosts, msi_path, {'PUPPET_AGENT_STARTUP_MODE' => value})
|
117
117
|
end
|
118
118
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaker-puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vox Pupuli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|