beaker-puppet 4.4.1 → 4.4.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6f0348cca254c27334c26c725d3f4a85f8e1478ee9cc0f2225e5926191dbf2ad
4
- data.tar.gz: 80b547283b224d79124c4da2d64ac80d2e7f7e1f5771bb3b894b60dfac6e807b
3
+ metadata.gz: c7e6d038ac57aef64b353df0164ffc60deaa271b12ac273484e9b3af2ef15008
4
+ data.tar.gz: 4b79a68287b4b82c9fa322c8020e31c54cac11d5aee4dbd37c470eb0bd655a6c
5
5
  SHA512:
6
- metadata.gz: f46087026e865f7e5cb5b92c10fc9f2d63622461506912d3d4d871cc4e1753a5ee259335e1f34eb2ee8ab2e855c7c9a3bb6a17d00db617bdff3d0eb5bb88d44f
7
- data.tar.gz: 1eb888543c65046ad3e562eb765099c087433309b14df31ba45b53d544f3776a32daf92e237d89d9352a5289ddc74e6b738d20c295bb371601214c54864794c7
6
+ metadata.gz: 63f4933b686b1d43dc520575b752f4f4267e97a3b8646debc04707a6efd04405d366aa6da5d5fbee2ad1eafc97dcb669e8e0fae3121448c149f253f0491ccbed
7
+ data.tar.gz: 339bcc300c9ee16b5157cceb6fa933d95f57062738a5153dec963a64a91d7b39b42d502d86046d00e2e6c48bcf4d7db9c6682ab69abfe7941fa3bc060fcc8f27
data/CHANGELOG.md CHANGED
@@ -1,12 +1,19 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to this project will be documented in this file.
3
+ ## [4.4.2](https://github.com/puppetlabs/beaker-puppet/tree/4.4.2) (2026-08-12)
4
4
 
5
- ## [4.4.1](https://github.com/puppetlabs/beaker-puppet/tree/4.4.1) (2026-03-19)
5
+ [Full Changelog](https://github.com/puppetlabs/beaker-puppet/compare/4.4.1...4.4.2)
6
+
7
+ **Fixed bugs:**
8
+
9
+ - \(PE-45697\) Fall back to the ssl check when PuppetDB's cleartext status port is unavailable [\#278](https://github.com/puppetlabs/beaker-puppet/pull/278) ([jonathannewman](https://github.com/jonathannewman))
10
+ - \(maint\) Update GitHubSig to current GitHub RSA host key [\#277](https://github.com/puppetlabs/beaker-puppet/pull/277) ([Magisus](https://github.com/Magisus))
11
+
12
+ ## [4.4.1](https://github.com/puppetlabs/beaker-puppet/tree/4.4.1) (2026-03-20)
6
13
 
7
14
  [Full Changelog](https://github.com/puppetlabs/beaker-puppet/compare/4.4.0...4.4.1)
8
15
 
9
- **Merged pull requests:**
16
+ **Fixed bugs:**
10
17
 
11
18
  - \(PA-8312\) Skip gem source add for Solaris & AIX [\#274](https://github.com/puppetlabs/beaker-puppet/pull/274) ([cthorn42](https://github.com/cthorn42))
12
19
 
@@ -14,10 +21,6 @@ All notable changes to this project will be documented in this file.
14
21
 
15
22
  [Full Changelog](https://github.com/puppetlabs/beaker-puppet/compare/4.3.0...4.4.0)
16
23
 
17
- **Merged pull requests:**
18
-
19
- - beaker: Allow 7.x [\#272](https://github.com/puppetlabs/beaker-puppet/pull/272) ([bastelfreak](https://github.com/bastelfreak))
20
-
21
24
  ## [4.3.0](https://github.com/puppetlabs/beaker-puppet/tree/4.3.0) (2026-01-06)
22
25
 
23
26
  [Full Changelog](https://github.com/puppetlabs/beaker-puppet/compare/4.2.0...4.3.0)
@@ -31,10 +34,6 @@ All notable changes to this project will be documented in this file.
31
34
 
32
35
  - Drop inifile dependency [\#206](https://github.com/puppetlabs/beaker-puppet/issues/206)
33
36
 
34
- **Merged pull requests:**
35
-
36
- - \(maint\) Update tests [\#268](https://github.com/puppetlabs/beaker-puppet/pull/268) ([mhashizume](https://github.com/mhashizume))
37
-
38
37
  ## [4.2.0](https://github.com/puppetlabs/beaker-puppet/tree/4.2.0) (2025-01-17)
39
38
 
40
39
  [Full Changelog](https://github.com/puppetlabs/beaker-puppet/compare/4.1.1...4.2.0)
@@ -63,8 +62,6 @@ All notable changes to this project will be documented in this file.
63
62
 
64
63
  - Add support for Ubuntu 24.04 [\#257](https://github.com/puppetlabs/beaker-puppet/pull/257) ([joshcooper](https://github.com/joshcooper))
65
64
 
66
- **Merged pull requests:**
67
-
68
65
  ## [4.0.0](https://github.com/puppetlabs/beaker-puppet/tree/4.0.0) (2024-05-29)
69
66
 
70
67
  [Full Changelog](https://github.com/puppetlabs/beaker-puppet/compare/2.1.0...4.0.0)
@@ -74,6 +71,7 @@ All notable changes to this project will be documented in this file.
74
71
  - Add support for Beaker 6 [\#255](https://github.com/puppetlabs/beaker-puppet/pull/255) ([mhashizume](https://github.com/mhashizume))
75
72
  - Remove unsupported network platforms [\#254](https://github.com/puppetlabs/beaker-puppet/pull/254) ([mhashizume](https://github.com/mhashizume))
76
73
 
74
+ ## [2.1.0](https://github.com/puppetlabs/beaker-puppet/tree/2.1.0) (2024-03-19)
77
75
 
78
76
  [Full Changelog](https://github.com/puppetlabs/beaker-puppet/compare/3.0.1...2.1.0)
79
77
 
@@ -111,17 +109,6 @@ All notable changes to this project will be documented in this file.
111
109
 
112
110
  **Merged pull requests:**
113
111
 
114
- - Release prep [\#248](https://github.com/puppetlabs/beaker-puppet/pull/248) ([mhashizume](https://github.com/mhashizume))
115
- - Update excluded label to "maintenance" [\#247](https://github.com/puppetlabs/beaker-puppet/pull/247) ([mhashizume](https://github.com/mhashizume))
116
- - Add changelog generator configuration file [\#246](https://github.com/puppetlabs/beaker-puppet/pull/246) ([mhashizume](https://github.com/mhashizume))
117
- - Update release-prep script [\#245](https://github.com/puppetlabs/beaker-puppet/pull/245) ([mhashizume](https://github.com/mhashizume))
118
- - Update branch for github workflow testing [\#244](https://github.com/puppetlabs/beaker-puppet/pull/244) ([tvpartytonight](https://github.com/tvpartytonight))
119
- - Add release prep script [\#243](https://github.com/puppetlabs/beaker-puppet/pull/243) ([mhashizume](https://github.com/mhashizume))
120
- - Move to Puppet release GitHub Actions [\#242](https://github.com/puppetlabs/beaker-puppet/pull/242) ([mhashizume](https://github.com/mhashizume))
121
- - README: remove obsolete transfer notice, update badges [\#241](https://github.com/puppetlabs/beaker-puppet/pull/241) ([kenyon](https://github.com/kenyon))
122
- - Add Unicorn to CODEONWERS [\#235](https://github.com/puppetlabs/beaker-puppet/pull/235) ([cthorn42](https://github.com/cthorn42))
123
- - Update CODEOWNERS [\#234](https://github.com/puppetlabs/beaker-puppet/pull/234) ([cthorn42](https://github.com/cthorn42))
124
- - rubocop: Update to voxpupuli-rubocop 2.1.0 [\#230](https://github.com/puppetlabs/beaker-puppet/pull/230) ([bastelfreak](https://github.com/bastelfreak))
125
112
  - Bump actions/checkout from 3 to 4 [\#227](https://github.com/puppetlabs/beaker-puppet/pull/227) ([dependabot[bot]](https://github.com/apps/dependabot))
126
113
  - Update voxpupuli-rubocop requirement from ~\> 1.2 to ~\> 2.0 [\#226](https://github.com/puppetlabs/beaker-puppet/pull/226) ([dependabot[bot]](https://github.com/apps/dependabot))
127
114
 
@@ -146,14 +133,12 @@ All notable changes to this project will be documented in this file.
146
133
 
147
134
  **Merged pull requests:**
148
135
 
149
- - release 2.0.0 [\#224](https://github.com/puppetlabs/beaker-puppet/pull/224) ([bastelfreak](https://github.com/bastelfreak))
150
136
  - Update fakefs requirement from \>= 0.6, \< 2.0 to \>= 0.6, \< 3.0 [\#222](https://github.com/puppetlabs/beaker-puppet/pull/222) ([dependabot[bot]](https://github.com/apps/dependabot))
151
137
  - rubocop: fix layout cops [\#221](https://github.com/puppetlabs/beaker-puppet/pull/221) ([bastelfreak](https://github.com/bastelfreak))
152
138
  - rubocop: fix style violations [\#220](https://github.com/puppetlabs/beaker-puppet/pull/220) ([bastelfreak](https://github.com/bastelfreak))
153
139
  - CI: Build gems with strictness and verbosity & dependencies: Add version constraints [\#219](https://github.com/puppetlabs/beaker-puppet/pull/219) ([bastelfreak](https://github.com/bastelfreak))
154
140
  - CI: apply Vox Pupuli best practices [\#217](https://github.com/puppetlabs/beaker-puppet/pull/217) ([bastelfreak](https://github.com/bastelfreak))
155
141
  - Drop in-parallel dependency [\#214](https://github.com/puppetlabs/beaker-puppet/pull/214) ([ekohl](https://github.com/ekohl))
156
- - Update in-parallel requirement from ~\> 0.1 to \>= 0.1, \< 2.0 [\#213](https://github.com/puppetlabs/beaker-puppet/pull/213) ([dependabot[bot]](https://github.com/apps/dependabot))
157
142
  - Bump actions/checkout from 2 to 3 [\#211](https://github.com/puppetlabs/beaker-puppet/pull/211) ([dependabot[bot]](https://github.com/apps/dependabot))
158
143
  - tests: Always set the platform as a Beaker::Platform instance [\#209](https://github.com/puppetlabs/beaker-puppet/pull/209) ([ekohl](https://github.com/ekohl))
159
144
  - dependabot: check for github actions [\#208](https://github.com/puppetlabs/beaker-puppet/pull/208) ([bastelfreak](https://github.com/bastelfreak))
@@ -172,7 +157,6 @@ All notable changes to this project will be documented in this file.
172
157
 
173
158
  **Merged pull requests:**
174
159
 
175
- - Release 1.29.0 [\#203](https://github.com/puppetlabs/beaker-puppet/pull/203) ([yachub](https://github.com/yachub))
176
160
  - \(maint\) Uses RFC 5737 IP space in example [\#200](https://github.com/puppetlabs/beaker-puppet/pull/200) ([mhashizume](https://github.com/mhashizume))
177
161
 
178
162
  ## [1.28.0](https://github.com/puppetlabs/beaker-puppet/tree/1.28.0) (2022-09-08)
@@ -183,10 +167,6 @@ All notable changes to this project will be documented in this file.
183
167
 
184
168
  - \(PA-4552\) Create ci:test:setup step for iterative workflow [\#194](https://github.com/puppetlabs/beaker-puppet/pull/194) ([joshcooper](https://github.com/joshcooper))
185
169
 
186
- **Merged pull requests:**
187
-
188
- - Release 1.28.0 [\#201](https://github.com/puppetlabs/beaker-puppet/pull/201) ([joshcooper](https://github.com/joshcooper))
189
-
190
170
  ## [1.27.0](https://github.com/puppetlabs/beaker-puppet/tree/1.27.0) (2022-08-31)
191
171
 
192
172
  [Full Changelog](https://github.com/puppetlabs/beaker-puppet/compare/1.26.3...1.27.0)
@@ -221,7 +201,6 @@ All notable changes to this project will be documented in this file.
221
201
 
222
202
  **Merged pull requests:**
223
203
 
224
- - Release 1.26.2 [\#192](https://github.com/puppetlabs/beaker-puppet/pull/192) ([joshcooper](https://github.com/joshcooper))
225
204
  - \(PA-4178\) Only clear and add non-default gem sources [\#190](https://github.com/puppetlabs/beaker-puppet/pull/190) ([joshcooper](https://github.com/joshcooper))
226
205
 
227
206
  ## [1.26.1](https://github.com/puppetlabs/beaker-puppet/tree/1.26.1) (2022-03-24)
@@ -238,8 +217,6 @@ All notable changes to this project will be documented in this file.
238
217
 
239
218
  **Merged pull requests:**
240
219
 
241
- - Release 1.26.1 [\#189](https://github.com/puppetlabs/beaker-puppet/pull/189) ([mhashizume](https://github.com/mhashizume))
242
- - Release 1.26.0 [\#187](https://github.com/puppetlabs/beaker-puppet/pull/187) ([mhashizume](https://github.com/mhashizume))
243
220
  - \(PA-4332\) Changes download links to HTTPS [\#185](https://github.com/puppetlabs/beaker-puppet/pull/185) ([mhashizume](https://github.com/mhashizume))
244
221
 
245
222
  ## [1.26.0](https://github.com/puppetlabs/beaker-puppet/tree/1.26.0) (2022-03-23)
@@ -258,10 +235,6 @@ All notable changes to this project will be documented in this file.
258
235
 
259
236
  - \(PA-4331\) Fix the logic to only run on older solaris versions [\#183](https://github.com/puppetlabs/beaker-puppet/pull/183) ([cthorn42](https://github.com/cthorn42))
260
237
 
261
- **Merged pull requests:**
262
-
263
- - Release 1.25.0 [\#184](https://github.com/puppetlabs/beaker-puppet/pull/184) ([bastelfreak](https://github.com/bastelfreak))
264
-
265
238
  ## [1.24.0](https://github.com/puppetlabs/beaker-puppet/tree/1.24.0) (2022-03-04)
266
239
 
267
240
  [Full Changelog](https://github.com/puppetlabs/beaker-puppet/compare/1.23.0...1.24.0)
@@ -272,11 +245,9 @@ All notable changes to this project will be documented in this file.
272
245
 
273
246
  **Merged pull requests:**
274
247
 
275
- - Release 1.24.0 [\#181](https://github.com/puppetlabs/beaker-puppet/pull/181) ([bastelfreak](https://github.com/bastelfreak))
276
248
  - gemspec: fix typo in Apache-2.0 license [\#180](https://github.com/puppetlabs/beaker-puppet/pull/180) ([bastelfreak](https://github.com/bastelfreak))
277
249
  - Add Ruby 3.1 to CI [\#179](https://github.com/puppetlabs/beaker-puppet/pull/179) ([bastelfreak](https://github.com/bastelfreak))
278
250
  - Depend on Ruby 2.4 or newer in gemspec [\#178](https://github.com/puppetlabs/beaker-puppet/pull/178) ([bastelfreak](https://github.com/bastelfreak))
279
- - Release 1.23.0 [\#175](https://github.com/puppetlabs/beaker-puppet/pull/175) ([cthorn42](https://github.com/cthorn42))
280
251
 
281
252
  ## [1.23.0](https://github.com/puppetlabs/beaker-puppet/tree/1.23.0) (2022-02-23)
282
253
 
@@ -297,7 +268,6 @@ All notable changes to this project will be documented in this file.
297
268
 
298
269
  **Merged pull requests:**
299
270
 
300
- - Release 1.22.2 [\#171](https://github.com/puppetlabs/beaker-puppet/pull/171) ([bastelfreak](https://github.com/bastelfreak))
301
271
  - Fix install\_puppet\_on on el8 [\#170](https://github.com/puppetlabs/beaker-puppet/pull/170) ([gcampbell12](https://github.com/gcampbell12))
302
272
 
303
273
  ## [1.22.1](https://github.com/puppetlabs/beaker-puppet/tree/1.22.1) (2021-08-19)
@@ -306,7 +276,6 @@ All notable changes to this project will be documented in this file.
306
276
 
307
277
  **Merged pull requests:**
308
278
 
309
- - Prep for 1.22.1 release [\#169](https://github.com/puppetlabs/beaker-puppet/pull/169) ([tvpartytonight](https://github.com/tvpartytonight))
310
279
  - Revert "Use the built-in Resolv::IPv4::Regex" [\#168](https://github.com/puppetlabs/beaker-puppet/pull/168) ([kenyon](https://github.com/kenyon))
311
280
 
312
281
  ## [1.22.0](https://github.com/puppetlabs/beaker-puppet/tree/1.22.0) (2021-08-17)
@@ -320,10 +289,8 @@ All notable changes to this project will be documented in this file.
320
289
 
321
290
  **Merged pull requests:**
322
291
 
323
- - Regenerate v1.22 changelog [\#167](https://github.com/puppetlabs/beaker-puppet/pull/167) ([bastelfreak](https://github.com/bastelfreak))
324
292
  - Remove mentions of Beaker 3 [\#165](https://github.com/puppetlabs/beaker-puppet/pull/165) ([ekohl](https://github.com/ekohl))
325
293
  - Use the built-in Resolv::IPv4::Regex [\#164](https://github.com/puppetlabs/beaker-puppet/pull/164) ([ekohl](https://github.com/ekohl))
326
- - release 1.22.0 [\#163](https://github.com/puppetlabs/beaker-puppet/pull/163) ([bastelfreak](https://github.com/bastelfreak))
327
294
  - Implement codecov; update README.md [\#162](https://github.com/puppetlabs/beaker-puppet/pull/162) ([bastelfreak](https://github.com/bastelfreak))
328
295
  - Add both GPG keys when installing repos on SLES [\#157](https://github.com/puppetlabs/beaker-puppet/pull/157) ([GabrielNagy](https://github.com/GabrielNagy))
329
296
 
@@ -335,16 +302,10 @@ All notable changes to this project will be documented in this file.
335
302
 
336
303
  - Fix Arch Linux support [\#154](https://github.com/puppetlabs/beaker-puppet/pull/154) ([bastelfreak](https://github.com/bastelfreak))
337
304
 
338
- **Closed issues:**
339
-
340
- - Useless 'PATH' string prepended to PATH environment variable [\#151](https://github.com/puppetlabs/beaker-puppet/issues/151)
341
-
342
305
  **Merged pull requests:**
343
306
 
344
307
  - \(\#151\) Remove useless 'PATH' string from system PATH [\#152](https://github.com/puppetlabs/beaker-puppet/pull/152) ([silug](https://github.com/silug))
345
- - Release 1.21.0 with proper changelog [\#150](https://github.com/puppetlabs/beaker-puppet/pull/150) ([bastelfreak](https://github.com/bastelfreak))
346
308
  - \(maint\) replace use of deprecated method `get_puppet_collection` [\#149](https://github.com/puppetlabs/beaker-puppet/pull/149) ([ciprianbadescu](https://github.com/ciprianbadescu))
347
- - Convert workflow to Github Actions [\#148](https://github.com/puppetlabs/beaker-puppet/pull/148) ([ekohl](https://github.com/ekohl))
348
309
  - \(maint\) Make latest the latest stable instead of nightly [\#147](https://github.com/puppetlabs/beaker-puppet/pull/147) ([GabrielNagy](https://github.com/GabrielNagy))
349
310
  - \(maint\) Remove deprecated gem install flags [\#146](https://github.com/puppetlabs/beaker-puppet/pull/146) ([gimmyxd](https://github.com/gimmyxd))
350
311
  - \(maint\) redhat-8-arm64 builds access check [\#145](https://github.com/puppetlabs/beaker-puppet/pull/145) ([ciprianbadescu](https://github.com/ciprianbadescu))
@@ -662,11 +662,40 @@ module Beaker
662
662
  endpoint = 'status/v1/services/puppetdb-status'
663
663
  expected_regex = '\"state\" \{0,\}: \{0,\}\"running\"'
664
664
  end
665
- retry_on(host,
666
- "curl -m 1 http://localhost:#{nonssl_port}/#{endpoint} | grep '#{expected_regex}'",
667
- { max_retries: 120 })
668
- curl_with_retries('start puppetdb (ssl)',
669
- host, "https://#{host.node_name}:#{ssl_port}", [35, 60])
665
+ # The ssl status port is always enabled and is the check this method
666
+ # ultimately reports the result of, so use it as the primary
667
+ # liveness gate. Checking the nonssl port FIRST (as this method used
668
+ # to) meant every host with it disabled -- the default for fresh
669
+ # installs as of PE-45384/PE-44906 (SECVULN-1792) -- burned through
670
+ # 120 failed retries (~2 minutes, at retry_on's default 1s
671
+ # retry_interval) before ever reaching the check that actually
672
+ # matters (PE-45697).
673
+ result = curl_with_retries('start puppetdb (ssl)',
674
+ host, "https://#{host.node_name}:#{ssl_port}", [35, 60])
675
+
676
+ # Now that ssl liveness is already confirmed, the nonssl check is
677
+ # just a quick, best-effort secondary confirmation: a small retry
678
+ # budget is enough, and its absence -- by design, on a host with
679
+ # the cleartext listener disabled -- shouldn't fail this method.
680
+ nonssl_status_command = "curl -m 1 http://localhost:#{nonssl_port}/#{endpoint} | grep '#{expected_regex}'"
681
+ begin
682
+ retry_on(host, nonssl_status_command, { max_retries: 5 })
683
+ rescue RuntimeError => e
684
+ # Only treat this as the known "exhausted all retries" failure
685
+ # retry_on itself raises for THIS command (a plain RuntimeError
686
+ # with this exact templated message, see beaker's
687
+ # Beaker::DSL::Helpers::HostHelpers#retry_on) -- not any other
688
+ # RuntimeError, or a same-shaped error for a different command,
689
+ # that might surface from deeper in the retry loop (e.g. an
690
+ # SSH/connection error from the underlying on() call). Re-raise
691
+ # anything else unrecognized rather than silently reclassifying
692
+ # it below (PE-45697).
693
+ raise unless e.message == "Command `#{nonssl_status_command}` failed."
694
+
695
+ logger.warn("sleep_until_puppetdb_started: nonssl status check on port #{nonssl_port} did not succeed (#{e.message}), but ssl status check already confirmed puppetdb is running")
696
+ end
697
+
698
+ result
670
699
  end
671
700
 
672
701
  # Waits until a successful curl check has happened against puppetserver
@@ -29,7 +29,7 @@ module Beaker
29
29
  GitURI = %r{^(git|https?|file)://|^git@|^gitmirror@}
30
30
 
31
31
  # Github's ssh signature for cloning via ssh
32
- GitHubSig = 'github.com,207.97.227.239 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=='
32
+ GitHubSig = 'github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=' # rubocop:disable Layout/LineLength
33
33
 
34
34
  # Merge given options with our default options in a consistent way
35
35
  # This will remove any nil values so that we always have a set default.
@@ -1,3 +1,3 @@
1
1
  module BeakerPuppet
2
- VERSION = '4.4.1'
2
+ VERSION = '4.4.2'
3
3
  end
@@ -1034,35 +1034,80 @@ describe ClassMixedWithDSLHelpers do
1034
1034
  allow(subject).to receive(:version_is_less).and_return(true)
1035
1035
  end
1036
1036
 
1037
- it 'uses the default ports if none given' do
1037
+ it 'uses the default ports if none given, checking ssl before nonssl' do
1038
1038
  host = hosts[0]
1039
- expect(subject).to receive(:retry_on).with(anything, /8080/, anything).once.ordered
1040
1039
  expect(subject).to receive(:curl_with_retries).with(anything, anything, /8081/, anything).once.ordered
1040
+ expect(subject).to receive(:retry_on).with(anything, /8080/, anything).once.ordered
1041
1041
  subject.sleep_until_puppetdb_started(host)
1042
1042
  end
1043
1043
 
1044
1044
  it 'allows setting the nonssl_port' do
1045
1045
  host = hosts[0]
1046
- expect(subject).to receive(:retry_on).with(anything, /8084/, anything).once.ordered
1047
1046
  expect(subject).to receive(:curl_with_retries).with(anything, anything, /8081/, anything).once.ordered
1047
+ expect(subject).to receive(:retry_on).with(anything, /8084/, anything).once.ordered
1048
1048
 
1049
1049
  subject.sleep_until_puppetdb_started(host, 8084)
1050
1050
  end
1051
1051
 
1052
1052
  it 'allows setting the ssl_port' do
1053
1053
  host = hosts[0]
1054
- expect(subject).to receive(:retry_on).with(anything, /8080/, anything).once.ordered
1055
1054
  expect(subject).to receive(:curl_with_retries).with(anything, anything, /8085/, anything).once.ordered
1055
+ expect(subject).to receive(:retry_on).with(anything, /8080/, anything).once.ordered
1056
1056
 
1057
1057
  subject.sleep_until_puppetdb_started(host, nil, 8085)
1058
1058
  end
1059
1059
 
1060
+ context 'when the cleartext status port never responds (e.g. disabled by default)' do
1061
+ it 'swallows the failure once ssl liveness is already confirmed' do
1062
+ host = hosts[0]
1063
+ expect(subject).to receive(:curl_with_retries).with(anything, anything, /8081/, anything).once.ordered
1064
+ expect(subject).to receive(:retry_on).with(anything, anything, { max_retries: 5 }).once.ordered do |_host, command, _opts|
1065
+ raise "Command `#{command}` failed."
1066
+ end
1067
+
1068
+ expect { subject.sleep_until_puppetdb_started(host) }.not_to raise_error
1069
+ end
1070
+ end
1071
+
1072
+ context 'when the ssl check itself fails' do
1073
+ it 'raises without ever attempting the nonssl check' do
1074
+ host = hosts[0]
1075
+ expect(subject).to receive(:curl_with_retries).with(anything, anything, /8081/, anything).once
1076
+ .and_raise('Command `curl -m 1 https://.../` failed.')
1077
+ expect(subject).not_to receive(:retry_on)
1078
+
1079
+ expect { subject.sleep_until_puppetdb_started(host) }.to raise_error(/https/)
1080
+ end
1081
+ end
1082
+
1083
+ context 'when retry_on raises a RuntimeError unrelated to exhausted retries' do
1084
+ it 'propagates the error rather than treating it as a disabled port' do
1085
+ host = hosts[0]
1086
+ expect(subject).to receive(:curl_with_retries).with(anything, anything, /8081/, anything).once.ordered
1087
+ expect(subject).to receive(:retry_on).with(anything, /8080/, anything).once.ordered
1088
+ .and_raise('Host unreachable: no route to host')
1089
+
1090
+ expect { subject.sleep_until_puppetdb_started(host) }.to raise_error(/Host unreachable/)
1091
+ end
1092
+ end
1093
+
1094
+ context 'when retry_on raises a RuntimeError formatted like the templated failure but for a different command' do
1095
+ it 'propagates the error rather than treating it as a disabled port' do
1096
+ host = hosts[0]
1097
+ expect(subject).to receive(:curl_with_retries).with(anything, anything, /8081/, anything).once.ordered
1098
+ expect(subject).to receive(:retry_on).with(anything, /8080/, anything).once.ordered
1099
+ .and_raise('Command `some other command` failed.')
1100
+
1101
+ expect { subject.sleep_until_puppetdb_started(host) }.to raise_error(/some other command/)
1102
+ end
1103
+ end
1104
+
1060
1105
  context 'when pe_ver is less than 2016.1.0' do
1061
1106
  it 'uses the version endpoint' do
1062
1107
  host = hosts[0]
1063
1108
  host['pe_ver'] = '2015.3.3'
1064
- expect(subject).to receive(:retry_on).with(anything, %r{pdb/meta/v1/version}, anything).once.ordered
1065
1109
  expect(subject).to receive(:curl_with_retries).with(anything, anything, /8081/, anything).once.ordered
1110
+ expect(subject).to receive(:retry_on).with(anything, %r{pdb/meta/v1/version}, anything).once.ordered
1066
1111
 
1067
1112
  expect(subject).to receive(:version_is_less).with(host['pe_ver'], '2016.1.0').and_return(true)
1068
1113
  subject.sleep_until_puppetdb_started(host)
@@ -1073,9 +1118,9 @@ describe ClassMixedWithDSLHelpers do
1073
1118
  it 'uses the status endpoint' do
1074
1119
  host = hosts[0]
1075
1120
  host['pe_ver'] = '2016.1.0'
1121
+ expect(subject).to receive(:curl_with_retries).with(anything, anything, /8081/, anything).once.ordered
1076
1122
  expect(subject).to receive(:retry_on).with(anything, %r{status/v1/services/puppetdb-status},
1077
1123
  anything).once.ordered
1078
- expect(subject).to receive(:curl_with_retries).with(anything, anything, /8081/, anything).once.ordered
1079
1124
 
1080
1125
  expect(subject).to receive(:version_is_less).with(host['pe_ver'], '2016.1.0').and_return(false)
1081
1126
  subject.sleep_until_puppetdb_started(host)
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: 4.4.1
4
+ version: 4.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vox Pupuli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-20 00:00:00.000000000 Z
11
+ date: 2026-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fakefs