beaker 5.8.1 → 6.1.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/.rspec +0 -1
- data/.rubocop.yml +4 -4
- data/.rubocop_todo.yml +15 -17
- data/CHANGELOG.md +31 -1
- data/Rakefile +2 -10
- data/acceptance/fixtures/module/spec/acceptance/demo_spec.rb +6 -6
- data/acceptance/tests/base/host/packages.rb +0 -2
- data/acceptance/tests/base/host_prebuilt_steps/ssh_environment_test.rb +1 -1
- data/beaker.gemspec +1 -1
- data/docs/concepts/argument_processing_and_precedence.md +1 -1
- data/lib/beaker/command.rb +1 -5
- data/lib/beaker/host/unix/exec.rb +8 -10
- data/lib/beaker/host/unix/file.rb +4 -13
- data/lib/beaker/host/unix/pkg.rb +12 -21
- data/lib/beaker/host/unix.rb +0 -12
- data/lib/beaker/host.rb +0 -6
- data/lib/beaker/host_prebuilt_steps.rb +13 -23
- data/lib/beaker/network_manager.rb +0 -1
- data/lib/beaker/options/command_line_parser.rb +1 -1
- data/lib/beaker/options/parser.rb +2 -2
- data/lib/beaker/perf.rb +3 -3
- data/lib/beaker/platform.rb +3 -31
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/host/unix/exec_spec.rb +6 -22
- data/spec/beaker/host/unix/file_spec.rb +3 -31
- data/spec/beaker/host/unix/pkg_spec.rb +26 -41
- data/spec/beaker/host/unix_spec.rb +0 -8
- data/spec/beaker/host_prebuilt_steps_spec.rb +11 -71
- data/spec/beaker/options/parser_spec.rb +0 -1
- data/spec/beaker/platform_spec.rb +20 -50
- data/spec/helpers.rb +13 -28
- metadata +4 -20
- data/acceptance/fixtures/module/spec/acceptance/nodesets/fedora-18-x64.yml +0 -10
- data/acceptance/fixtures/package/rpm/pl-puppetserver-latest-repos-pe-fedora-20-i386.repo +0 -6
- data/acceptance/fixtures/package/rpm/pl-puppetserver-latest-repos-pe-fedora-20-x86_64.repo +0 -6
- data/acceptance/fixtures/package/rpm/pl-puppetserver-latest-repos-pe-fedora-21-i386.repo +0 -6
- data/acceptance/fixtures/package/rpm/pl-puppetserver-latest-repos-pe-fedora-21-x86_64.repo +0 -6
- data/acceptance/fixtures/package/rpm/pl-puppetserver-latest-repos-pe-fedora-22-i386.repo +0 -6
- data/acceptance/fixtures/package/rpm/pl-puppetserver-latest-repos-pe-fedora-22-x86_64.repo +0 -6
- data/acceptance/fixtures/package/rpm/pl-puppetserver-latest-repos-pe-fedora-23-i386.repo +0 -6
- data/acceptance/fixtures/package/rpm/pl-puppetserver-latest-repos-pe-fedora-23-x86_64.repo +0 -6
- data/acceptance/fixtures/package/rpm/pl-puppetserver-latest-repos-pe-fedora-24-x86_64.repo +0 -6
- data/docs/how_to/hosts/cisco.md +0 -40
- data/docs/how_to/hosts/eos.md +0 -11
- data/lib/beaker/host/cisco.rb +0 -159
- data/lib/beaker/host/eos.rb +0 -33
- data/spec/beaker/host/cisco_spec.rb +0 -332
- data/spec/beaker/host/eos_spec.rb +0 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a57ed9140c38bb9b99f44eccf0f30a892213eb1e7014ded3cbb424bebc3ec26b
|
4
|
+
data.tar.gz: 25e1254d10f91d1deb9d28780cac16871b57ff570bd67978df38666a961592bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7d2bab439fbe31b20df6417453e66bb5e148489c605946c11f1f3ac2eb637c4bfe4a2d2ac81420866184c1fa491825e1918ae84c56f3b9c446aa0eae76d6d4c
|
7
|
+
data.tar.gz: 41b577a099d6441fe6c95d8fe8a6c6885ca9d8276ae09b1d98e2efa5f8a5c050f2e7e94313e10d3397c42e3fab8c792e93af1d47843812150dd5c6389afdc289
|
data/.rspec
CHANGED
data/.rubocop.yml
CHANGED
@@ -17,14 +17,11 @@ Naming/FileName:
|
|
17
17
|
- acceptance/**/acceptance-options.rb
|
18
18
|
|
19
19
|
Naming/MethodParameterName:
|
20
|
-
|
20
|
+
MinNameLength: 1
|
21
21
|
|
22
22
|
Naming/PredicateName:
|
23
23
|
Enabled: false
|
24
24
|
|
25
|
-
Naming/VariableNumber:
|
26
|
-
Enabled: false
|
27
|
-
|
28
25
|
RSpec/DescribeClass:
|
29
26
|
Exclude:
|
30
27
|
- acceptance/fixtures/module/spec/**/*.rb
|
@@ -49,3 +46,6 @@ RSpec/NestedGroups:
|
|
49
46
|
|
50
47
|
Style:
|
51
48
|
Enabled: false
|
49
|
+
|
50
|
+
Naming/VariableNumber:
|
51
|
+
AllowedPatterns: ['x86_64']
|
data/.rubocop_todo.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on 2024-
|
3
|
+
# on 2024-05-11 14:14:06 UTC using RuboCop version 1.62.1.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
@@ -92,14 +92,13 @@ Minitest/RefuteFalse:
|
|
92
92
|
- 'acceptance/tests/base/dsl/helpers/host_helpers/check_for_package_test.rb'
|
93
93
|
- 'acceptance/tests/base/host/host_test.rb'
|
94
94
|
|
95
|
-
# Offense count:
|
95
|
+
# Offense count: 19
|
96
96
|
# Configuration parameters: ForbiddenDelimiters.
|
97
97
|
# ForbiddenDelimiters: (?i-mx:(^|\s)(EO[A-Z]{1}|END)(\s|$))
|
98
98
|
Naming/HeredocDelimiterNaming:
|
99
99
|
Exclude:
|
100
100
|
- 'Rakefile'
|
101
101
|
- 'acceptance/tests/base/dsl/helpers/hocon_helpers_test.rb'
|
102
|
-
- 'lib/beaker/host/cisco.rb'
|
103
102
|
- 'spec/beaker/host/mac/group_spec.rb'
|
104
103
|
- 'spec/beaker/host/mac/user_spec.rb'
|
105
104
|
- 'spec/beaker/host/pswindows/user_spec.rb'
|
@@ -144,7 +143,7 @@ RSpec/BeEq:
|
|
144
143
|
- 'spec/beaker/subcommand/subcommand_util_spec.rb'
|
145
144
|
- 'spec/beaker/test_suite_spec.rb'
|
146
145
|
|
147
|
-
# Offense count:
|
146
|
+
# Offense count: 113
|
148
147
|
# Configuration parameters: Prefixes, AllowedPatterns.
|
149
148
|
# Prefixes: when, with, without
|
150
149
|
RSpec/ContextWording:
|
@@ -156,7 +155,7 @@ RSpec/Eq:
|
|
156
155
|
Exclude:
|
157
156
|
- 'spec/beaker/logger_spec.rb'
|
158
157
|
|
159
|
-
# Offense count:
|
158
|
+
# Offense count: 231
|
160
159
|
# Configuration parameters: CountAsOne.
|
161
160
|
RSpec/ExampleLength:
|
162
161
|
Max: 44
|
@@ -214,13 +213,13 @@ RSpec/MultipleDescribes:
|
|
214
213
|
RSpec/MultipleMemoizedHelpers:
|
215
214
|
Max: 18
|
216
215
|
|
217
|
-
# Offense count:
|
216
|
+
# Offense count: 495
|
218
217
|
# Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
|
219
218
|
# SupportedStyles: always, named_only
|
220
219
|
RSpec/NamedSubject:
|
221
220
|
Enabled: false
|
222
221
|
|
223
|
-
# Offense count:
|
222
|
+
# Offense count: 41
|
224
223
|
# Configuration parameters: AllowedPatterns.
|
225
224
|
# AllowedPatterns: ^expect_, ^assert_
|
226
225
|
RSpec/NoExpectationExample:
|
@@ -231,12 +230,6 @@ RSpec/NoExpectationExample:
|
|
231
230
|
- 'spec/beaker/logger_spec.rb'
|
232
231
|
- 'spec/beaker/options/subcommand_options_parser_spec.rb'
|
233
232
|
|
234
|
-
# Offense count: 1
|
235
|
-
# This cop supports safe autocorrection (--autocorrect).
|
236
|
-
RSpec/Rails/MinitestAssertions:
|
237
|
-
Exclude:
|
238
|
-
- 'spec/beaker/dsl/structure_spec.rb'
|
239
|
-
|
240
233
|
# Offense count: 60
|
241
234
|
# This cop supports unsafe autocorrection (--autocorrect-all).
|
242
235
|
RSpec/ReceiveMessages:
|
@@ -251,11 +244,10 @@ RSpec/ReceiveMessages:
|
|
251
244
|
- 'spec/beaker/test_suite_spec.rb'
|
252
245
|
- 'spec/helpers.rb'
|
253
246
|
|
254
|
-
# Offense count:
|
247
|
+
# Offense count: 4
|
255
248
|
RSpec/RepeatedDescription:
|
256
249
|
Exclude:
|
257
250
|
- 'spec/beaker/cli_spec.rb'
|
258
|
-
- 'spec/beaker/host/unix/exec_spec.rb'
|
259
251
|
- 'spec/beaker/host/unix/pkg_spec.rb'
|
260
252
|
|
261
253
|
# Offense count: 4
|
@@ -284,7 +276,7 @@ RSpec/SpecFilePathFormat:
|
|
284
276
|
- 'spec/beaker/host/windows/user_spec.rb'
|
285
277
|
- 'spec/beaker/host_prebuilt_steps_spec.rb'
|
286
278
|
|
287
|
-
# Offense count:
|
279
|
+
# Offense count: 175
|
288
280
|
RSpec/SubjectStub:
|
289
281
|
Exclude:
|
290
282
|
- 'spec/beaker/dsl/assertions_spec.rb'
|
@@ -314,6 +306,12 @@ RSpec/UnspecifiedException:
|
|
314
306
|
RSpec/VerifiedDoubles:
|
315
307
|
Enabled: false
|
316
308
|
|
309
|
+
# Offense count: 1
|
310
|
+
# This cop supports safe autocorrection (--autocorrect).
|
311
|
+
RSpecRails/MinitestAssertions:
|
312
|
+
Exclude:
|
313
|
+
- 'spec/beaker/dsl/structure_spec.rb'
|
314
|
+
|
317
315
|
# Offense count: 2
|
318
316
|
# This cop supports safe autocorrection (--autocorrect).
|
319
317
|
Rake/Desc:
|
@@ -336,7 +334,7 @@ Security/Open:
|
|
336
334
|
Exclude:
|
337
335
|
- 'lib/beaker/dsl/helpers/web_helpers.rb'
|
338
336
|
|
339
|
-
# Offense count:
|
337
|
+
# Offense count: 104
|
340
338
|
# This cop supports safe autocorrection (--autocorrect).
|
341
339
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
|
342
340
|
# URISchemes: http, https
|
data/CHANGELOG.md
CHANGED
@@ -1,10 +1,40 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [6.1.0](https://github.com/voxpupuli/beaker/tree/6.1.0) (2024-06-04)
|
4
|
+
|
5
|
+
**Implemented enhancements:**
|
6
|
+
|
7
|
+
- Add package logic for Amazon Linux 2 [\#1887](https://github.com/voxpupuli/beaker/pull/1884) ([mhashizume](https://github.com/joshcooper))
|
8
|
+
|
9
|
+
## [6.0.0](https://github.com/voxpupuli/beaker/tree/6.0.0) (2024-05-24)
|
10
|
+
|
11
|
+
**Breaking changes:**
|
12
|
+
|
13
|
+
- Drop EoL F5 support [\#1866](https://github.com/voxpupuli/beaker/pull/1866) ([bastelfreak](https://github.com/bastelfreak))
|
14
|
+
- Drop EoL cumulus support [\#1867](https://github.com/voxpupuli/beaker/pull/1867) ([bastelfreak](https://github.com/bastelfreak))
|
15
|
+
- drop sys-v leftovers; assume systemctl is available for unknown platforms [\#1868](https://github.com/voxpupuli/beaker/pull/1868) ([bastelfreak](https://github.com/bastelfreak))
|
16
|
+
- Drop EoL huaweios support [\#1869](https://github.com/voxpupuli/beaker/pull/1869) ([bastelfreak](https://github.com/bastelfreak))
|
17
|
+
- Drop EoL EL4 support [\#1870](https://github.com/voxpupuli/beaker/pull/1870) ([bastelfreak](https://github.com/bastelfreak))
|
18
|
+
- Drop support for EoL Debian/Ubuntu versions [\#1871](https://github.com/voxpupuli/beaker/pull/1871) ([bastelfreak](https://github.com/bastelfreak))
|
19
|
+
- Drop EoL cisco support [\#1872](https://github.com/voxpupuli/beaker/pull/1872) ([bastelfreak](https://github.com/bastelfreak))
|
20
|
+
- Drop Fedora < 22 support [\#1873](https://github.com/voxpupuli/beaker/pull/1873) ([ekohl](https://github.com/ekohl))
|
21
|
+
- Drop EoL Arista EOS support [\#1874](https://github.com/voxpupuli/beaker/pull/1874) ([bastelfreak](https://github.com/bastelfreak))
|
22
|
+
- drop validate_setup method [\#1875](https://github.com/voxpupuli/beaker/pull/1875) ([bastelfreak](https://github.com/bastelfreak))
|
23
|
+
- Drop EoL netscaler support [\#1876](https://github.com/voxpupuli/beaker/pull/1876) ([bastelfreak](https://github.com/bastelfreak))
|
24
|
+
|
25
|
+
**Implemented enhancements:**
|
26
|
+
|
27
|
+
- Add package logic for Amazon Linux 2 [\#1884](https://github.com/voxpupuli/beaker/pull/1884) ([mhashizume](https://github.com/mhashizume))
|
28
|
+
|
29
|
+
**Fixed bugs:**
|
30
|
+
|
31
|
+
- Add ssh restart for Ubuntu [\#1885](https://github.com/voxpupuli/beaker/pull/1885) ([skyamgarp](https://github.com/skyamgarp))
|
32
|
+
|
3
33
|
## [5.8.1](https://github.com/voxpupuli/beaker/tree/5.8.1) (2024-05-06)
|
4
34
|
|
5
35
|
**Fixed bugs:**
|
6
36
|
|
7
|
-
- Add extension parameter to parent tmpfile method signature [\#1863](https://github.com/voxpupuli/beaker/pull/
|
37
|
+
- Add extension parameter to parent tmpfile method signature [\#1863](https://github.com/voxpupuli/beaker/pull/1863) ([ekohl](https://github.com/ekohl))
|
8
38
|
|
9
39
|
## [5.8.0](https://github.com/voxpupuli/beaker/tree/5.8.0) (2024-03-23)
|
10
40
|
|
data/Rakefile
CHANGED
@@ -197,15 +197,7 @@ rescue LoadError
|
|
197
197
|
end
|
198
198
|
|
199
199
|
begin
|
200
|
-
require 'rubocop/
|
200
|
+
require 'voxpupuli/rubocop/rake'
|
201
201
|
rescue LoadError
|
202
|
-
#
|
203
|
-
else
|
204
|
-
RuboCop::RakeTask.new(:rubocop) do |task|
|
205
|
-
# These make the rubocop experience maybe slightly less terrible
|
206
|
-
task.options = ['--display-cop-names', '--display-style-guide', '--extra-details']
|
207
|
-
|
208
|
-
# Use Rubocop's Github Actions formatter if possible
|
209
|
-
task.formatters << 'github' if ENV['GITHUB_ACTIONS'] == 'true'
|
210
|
-
end
|
202
|
+
# the voxpupuli-rubocop gem is optional
|
211
203
|
end
|
@@ -22,15 +22,15 @@ describe "my tests" do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "is able to apply manifests" do
|
25
|
-
|
25
|
+
manifest1 = "user {'foo':
|
26
26
|
ensure => present,}"
|
27
|
-
|
27
|
+
manifest2 = "user {'foo':
|
28
28
|
ensure => absent,}"
|
29
|
-
|
29
|
+
manifest3 = "user {'root':
|
30
30
|
ensure => present,}"
|
31
|
-
apply_manifest(
|
32
|
-
apply_manifest(
|
33
|
-
apply_manifest(
|
31
|
+
apply_manifest(manifest1, :expect_changes => true)
|
32
|
+
apply_manifest(manifest2, :expect_changes => true)
|
33
|
+
apply_manifest(manifest3)
|
34
34
|
end
|
35
35
|
|
36
36
|
describe service('sshd') do
|
@@ -9,8 +9,6 @@ def get_host_pkg(host)
|
|
9
9
|
Beaker::HostPrebuiltSteps::SLES_PACKAGES
|
10
10
|
when /debian/
|
11
11
|
Beaker::HostPrebuiltSteps::DEBIAN_PACKAGES
|
12
|
-
when /cumulus/
|
13
|
-
Beaker::HostPrebuiltSteps::CUMULUS_PACKAGES
|
14
12
|
when /windows/
|
15
13
|
host.is_cygwin? ? Beaker::HostPrebuiltSteps::WINDOWS_PACKAGES : Beaker::HostPrebuiltSteps::PSWINDOWS_PACKAGES
|
16
14
|
when /freebsd/
|
@@ -1,5 +1,5 @@
|
|
1
1
|
test_name "confirm host prebuilt steps behave correctly" do
|
2
|
-
confine_block :except, :platform => /
|
2
|
+
confine_block :except, :platform => /windows/ do
|
3
3
|
step "confirm ssh environment file existence" do
|
4
4
|
hosts.each do |host|
|
5
5
|
assert(host.file_exist?(host[:ssh_env_file]))
|
data/beaker.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.add_development_dependency 'fakefs', '~> 2.4'
|
23
23
|
s.add_development_dependency 'rake', '~> 13.0'
|
24
24
|
s.add_development_dependency 'rspec', '~> 3.0'
|
25
|
-
s.add_development_dependency 'voxpupuli-rubocop', '~> 2.
|
25
|
+
s.add_development_dependency 'voxpupuli-rubocop', '~> 2.7.0'
|
26
26
|
|
27
27
|
# Run time dependencies
|
28
28
|
s.add_runtime_dependency 'minitar', '~> 0.6'
|
@@ -147,7 +147,7 @@ Usage: beaker [options...]
|
|
147
147
|
(default: slow)
|
148
148
|
--[no-]ntp Sync time on SUTs before testing
|
149
149
|
(default: false)
|
150
|
-
--repo-proxy Proxy packaging repositories on ubuntu, debian
|
150
|
+
--repo-proxy Proxy packaging repositories on ubuntu, debian and solaris-11
|
151
151
|
(default: false)
|
152
152
|
--package-proxy URL Set proxy url for package managers (yum and apt)
|
153
153
|
--[no-]validate Validate that SUTs are correctly provisioned before running tests
|
data/lib/beaker/command.rb
CHANGED
@@ -72,11 +72,7 @@ module Beaker
|
|
72
72
|
append_commands = host.append_commands(cmd, ac, :cmd_exe => @cmdexe)
|
73
73
|
|
74
74
|
# This will cause things like `puppet -t -v agent` which is maybe bad.
|
75
|
-
cmd_line_array =
|
76
|
-
[prepend_commands, env_string, cmd, options_string, args_string, append_commands]
|
77
|
-
else
|
78
|
-
[env_string, prepend_commands, cmd, options_string, args_string, append_commands]
|
79
|
-
end
|
75
|
+
cmd_line_array = [env_string, prepend_commands, cmd, options_string, args_string, append_commands]
|
80
76
|
cmd_line_array.compact.reject(&:empty?).join(' ')
|
81
77
|
end
|
82
78
|
|
@@ -278,20 +278,18 @@ module Unix::Exec
|
|
278
278
|
# @return [Result] result of restarting the SSH service
|
279
279
|
def ssh_service_restart
|
280
280
|
case self['platform']
|
281
|
-
when /debian|ubuntu
|
282
|
-
exec(Beaker::Command.new("
|
283
|
-
when /
|
284
|
-
exec(Beaker::Command.new("systemctl restart sshd.service"))
|
285
|
-
when /el-|centos|fedora|redhat|oracle|scientific|eos/
|
281
|
+
when /debian|ubuntu/
|
282
|
+
exec(Beaker::Command.new("systemctl restart ssh"))
|
283
|
+
when /(el|centos|redhat|oracle|scientific)-[0-6]/
|
286
284
|
exec(Beaker::Command.new("/sbin/service sshd restart"))
|
287
|
-
when /opensuse|sles/
|
288
|
-
exec(Beaker::Command.new("/usr/sbin/rcsshd restart"))
|
289
285
|
when /solaris/
|
290
286
|
exec(Beaker::Command.new("svcadm restart svc:/network/ssh:default"))
|
291
287
|
when /(free|open)bsd/
|
292
288
|
exec(Beaker::Command.new("sudo /etc/rc.d/sshd restart"))
|
289
|
+
when /opensuse|sles/
|
290
|
+
exec(Beaker::Command.new("/usr/sbin/rcsshd restart"))
|
293
291
|
else
|
294
|
-
|
292
|
+
exec(Beaker::Command.new("systemctl restart sshd.service"))
|
295
293
|
end
|
296
294
|
end
|
297
295
|
|
@@ -302,11 +300,11 @@ module Unix::Exec
|
|
302
300
|
# (from {#ssh_service_restart}).
|
303
301
|
def ssh_permit_user_environment
|
304
302
|
case self['platform']
|
305
|
-
when /amazon|debian|ubuntu|
|
303
|
+
when /amazon|debian|ubuntu|archlinux|el-|centos|fedora|redhat|oracle|scientific|opensuse|sles|solaris/
|
306
304
|
directory = tmpdir
|
307
305
|
exec(Beaker::Command.new("echo 'PermitUserEnvironment yes' | cat - /etc/ssh/sshd_config > #{directory}/sshd_config.permit"))
|
308
306
|
exec(Beaker::Command.new("mv #{directory}/sshd_config.permit /etc/ssh/sshd_config"))
|
309
|
-
exec(Beaker::Command.new("echo '' >/etc/environment")) if
|
307
|
+
exec(Beaker::Command.new("echo '' >/etc/environment")) if self['platform'].include?('ubuntu-')
|
310
308
|
when /(free|open)bsd/
|
311
309
|
exec(Beaker::Command.new("sudo perl -pi -e 's/^#?PermitUserEnvironment no/PermitUserEnvironment yes/' /etc/ssh/sshd_config"), { :pty => true })
|
312
310
|
else
|
@@ -92,7 +92,7 @@ module Unix::File
|
|
92
92
|
'/etc/yum.repos.d/'
|
93
93
|
when /opensuse|sles/
|
94
94
|
'/etc/zypp/repos.d/'
|
95
|
-
when /debian|ubuntu
|
95
|
+
when /debian|ubuntu/
|
96
96
|
'/etc/apt/sources.list.d'
|
97
97
|
else
|
98
98
|
msg = "package config dir unknown for platform '#{self['platform']}'"
|
@@ -113,26 +113,17 @@ module Unix::File
|
|
113
113
|
repo_filename = format("pl-%s-%s-", package_name, build_version)
|
114
114
|
|
115
115
|
case variant
|
116
|
-
when /amazon|fedora|el|redhat|centos|
|
116
|
+
when /amazon|fedora|el|redhat|centos|opensuse|sles/
|
117
117
|
variant = 'el' if %w[centos redhat].include?(variant)
|
118
118
|
|
119
119
|
variant = 'redhatfips' if self['packaging_platform']&.include?('redhatfips')
|
120
120
|
|
121
|
-
if variant == 'cisco_nexus'
|
122
|
-
variant = 'cisco-wrlinux'
|
123
|
-
version = '5'
|
124
|
-
end
|
125
|
-
if variant == 'cisco_ios_xr'
|
126
|
-
variant = 'cisco-wrlinux'
|
127
|
-
version = '7'
|
128
|
-
end
|
129
121
|
fedora_prefix = (variant == 'fedora' ? 'f' : '')
|
130
122
|
|
131
123
|
pattern = "%s-%s%s-%s.repo"
|
132
124
|
|
133
125
|
repo_filename << (format(pattern, variant, fedora_prefix, version, arch))
|
134
|
-
when /debian|ubuntu
|
135
|
-
codename = variant if variant == 'cumulus' || variant == 'huaweios'
|
126
|
+
when /debian|ubuntu/
|
136
127
|
repo_filename << (format("%s.list", codename))
|
137
128
|
else
|
138
129
|
msg = "#repo_filename: repo filename pattern not known for platform '#{self['platform']}'"
|
@@ -151,7 +142,7 @@ module Unix::File
|
|
151
142
|
case self['platform']
|
152
143
|
when /amazon|fedora|el-|redhat|centos|opensuse|sles/
|
153
144
|
'rpm'
|
154
|
-
when /debian|ubuntu
|
145
|
+
when /debian|ubuntu/
|
155
146
|
'deb'
|
156
147
|
else
|
157
148
|
msg = "#repo_type: repo type not known for platform '#{self['platform']}'"
|
data/lib/beaker/host/unix/pkg.rb
CHANGED
@@ -37,12 +37,9 @@ module Unix::Pkg
|
|
37
37
|
self[:sles_rpmkeys_nightly_pl_imported] = true
|
38
38
|
end
|
39
39
|
result = execute("zypper --gpg-auto-import-keys se -i --match-exact #{name}", opts) { |result| result }
|
40
|
-
when /el
|
41
|
-
@logger.debug("Package query not supported on rhel4")
|
42
|
-
return false
|
43
|
-
when /amazon|cisco|fedora|centos|redhat|eos|el-/
|
40
|
+
when /amazon|fedora|centos|redhat|el-/
|
44
41
|
result = execute("rpm -q #{name}", opts) { |result| result }
|
45
|
-
when /ubuntu|debian
|
42
|
+
when /ubuntu|debian/
|
46
43
|
result = execute("dpkg -s #{name}", opts) { |result| result }
|
47
44
|
when /solaris-11/
|
48
45
|
result = execute("pkg info #{name}", opts) { |result| result }
|
@@ -62,7 +59,7 @@ module Unix::Pkg
|
|
62
59
|
# If apt has not been updated since the last repo deployment it is
|
63
60
|
# updated. Otherwise this is a noop
|
64
61
|
def update_apt_if_needed
|
65
|
-
return unless /debian|ubuntu
|
62
|
+
return unless /debian|ubuntu/.match?(self['platform'])
|
66
63
|
return unless @apt_needs_update
|
67
64
|
|
68
65
|
execute("apt-get update")
|
@@ -85,15 +82,13 @@ module Unix::Pkg
|
|
85
82
|
case self['platform']
|
86
83
|
when /opensuse|sles-/
|
87
84
|
execute("zypper --non-interactive --gpg-auto-import-keys in #{name}", opts)
|
88
|
-
when /el-4/
|
89
|
-
@logger.debug("Package installation not supported on rhel4")
|
90
85
|
when /amazon-2023|el-(8|9|1[0-9])|fedora/
|
91
86
|
name = "#{name}-#{version}" if version
|
92
87
|
execute("dnf -y #{cmdline_args} install #{name}", opts)
|
93
|
-
when /
|
88
|
+
when /amazon-(2|7)|centos|redhat|el-[1-7]-/
|
94
89
|
name = "#{name}-#{version}" if version
|
95
90
|
execute("yum -y #{cmdline_args} install #{name}", opts)
|
96
|
-
when /ubuntu|debian
|
91
|
+
when /ubuntu|debian/
|
97
92
|
name = "#{name}=#{version}" if version
|
98
93
|
update_apt_if_needed
|
99
94
|
execute("apt-get install --force-yes #{cmdline_args} -y #{name}", opts)
|
@@ -170,13 +165,11 @@ module Unix::Pkg
|
|
170
165
|
case self['platform']
|
171
166
|
when /opensuse|sles-/
|
172
167
|
execute("zypper --non-interactive rm #{name}", opts)
|
173
|
-
when /el-4/
|
174
|
-
@logger.debug("Package uninstallation not supported on rhel4")
|
175
168
|
when /amazon-2023|el-(8|9|1[0-9])|fedora/
|
176
169
|
execute("dnf -y #{cmdline_args} remove #{name}", opts)
|
177
|
-
when /
|
170
|
+
when /amazon-(2|7)|centos|redhat|el-[1-7]-/
|
178
171
|
execute("yum -y #{cmdline_args} remove #{name}", opts)
|
179
|
-
when /ubuntu|debian
|
172
|
+
when /ubuntu|debian/
|
180
173
|
execute("apt-get purge #{cmdline_args} -y #{name}", opts)
|
181
174
|
when /solaris-11/
|
182
175
|
execute("pkg #{cmdline_args} uninstall #{name}", opts)
|
@@ -200,13 +193,11 @@ module Unix::Pkg
|
|
200
193
|
case self['platform']
|
201
194
|
when /opensuse|sles-/
|
202
195
|
execute("zypper --non-interactive --no-gpg-checks up #{name}", opts)
|
203
|
-
when /
|
204
|
-
@logger.debug("Package upgrade is not supported on rhel4")
|
205
|
-
when /fedora-(2[2-9]|3[0-9])/
|
196
|
+
when /fedora/
|
206
197
|
execute("dnf -y #{cmdline_args} update #{name}", opts)
|
207
|
-
when /
|
198
|
+
when /centos|redhat|el-/
|
208
199
|
execute("yum -y #{cmdline_args} update #{name}", opts)
|
209
|
-
when /ubuntu|debian
|
200
|
+
when /ubuntu|debian/
|
210
201
|
update_apt_if_needed
|
211
202
|
execute("apt-get install -o Dpkg::Options::='--force-confold' #{cmdline_args} -y --force-yes #{name}", opts)
|
212
203
|
when /solaris-11/
|
@@ -270,7 +261,7 @@ module Unix::Pkg
|
|
270
261
|
execute("#{command_name} --nogpgcheck localinstall -y #{onhost_package_file}")
|
271
262
|
when /^(opensuse|sles)$/
|
272
263
|
execute("zypper --non-interactive --no-gpg-checks in #{onhost_package_file}")
|
273
|
-
when /^(debian|ubuntu
|
264
|
+
when /^(debian|ubuntu)$/
|
274
265
|
execute("dpkg -i --force-all #{onhost_package_file}")
|
275
266
|
execute("apt-get update")
|
276
267
|
when /^solaris$/
|
@@ -294,7 +285,7 @@ module Unix::Pkg
|
|
294
285
|
def uncompress_local_tarball(onhost_tar_file, onhost_base_dir, download_file)
|
295
286
|
variant, version, _arch, _codename = self['platform'].to_array
|
296
287
|
case variant
|
297
|
-
when /^(amazon|fedora|el|centos|redhat|opensuse|sles|debian|ubuntu
|
288
|
+
when /^(amazon|fedora|el|centos|redhat|opensuse|sles|debian|ubuntu)$/
|
298
289
|
execute("tar -zxvf #{onhost_tar_file} -C #{onhost_base_dir}")
|
299
290
|
when /^solaris$/
|
300
291
|
# uncompress PE puppet-agent tarball
|
data/lib/beaker/host/unix.rb
CHANGED
@@ -51,18 +51,6 @@ module Unix
|
|
51
51
|
# @return [String,nil] Reason message if set_env should be skipped,
|
52
52
|
# nil if it should run.
|
53
53
|
def skip_set_env?
|
54
|
-
case self['platform'].variant
|
55
|
-
when /^(f5|netscaler)$/
|
56
|
-
"no puppet-agent package for network device platform '#{self['platform'].variant}'"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
# Validates that the host was setup correctly
|
61
|
-
#
|
62
|
-
# @return nil
|
63
|
-
# @raise [ArgumentError] If the host is setup incorrectly,
|
64
|
-
# this will be raised with the appropriate message
|
65
|
-
def validate_setup
|
66
54
|
nil
|
67
55
|
end
|
68
56
|
|
data/lib/beaker/host.rb
CHANGED
@@ -57,10 +57,6 @@ module Beaker
|
|
57
57
|
Mac::Host.new name, host_hash, options
|
58
58
|
when /freebsd/
|
59
59
|
FreeBSD::Host.new name, host_hash, options
|
60
|
-
when /eos/
|
61
|
-
Eos::Host.new name, host_hash, options
|
62
|
-
when /cisco/
|
63
|
-
Cisco::Host.new name, host_hash, options
|
64
60
|
else
|
65
61
|
Unix::Host.new name, host_hash, options
|
66
62
|
end
|
@@ -576,8 +572,6 @@ module Beaker
|
|
576
572
|
freebsd
|
577
573
|
windows
|
578
574
|
pswindows
|
579
|
-
eos
|
580
|
-
cisco
|
581
575
|
].each do |lib|
|
582
576
|
require "beaker/host/#{lib}"
|
583
577
|
end
|
@@ -22,7 +22,6 @@ module Beaker
|
|
22
22
|
SLES10_PACKAGES = ['curl']
|
23
23
|
SLES_PACKAGES = %w[curl ntp]
|
24
24
|
DEBIAN_PACKAGES = %w[curl ntpdate lsb-release apt-transport-https]
|
25
|
-
CUMULUS_PACKAGES = %w[curl ntpdate]
|
26
25
|
SOLARIS10_PACKAGES = %w[CSWcurl CSWntp wget]
|
27
26
|
SOLARIS11_PACKAGES = %w[curl ntp]
|
28
27
|
ETC_HOSTS_PATH = "/etc/hosts"
|
@@ -53,9 +52,6 @@ module Beaker
|
|
53
52
|
ntp_command = "chronyc add server #{ntp_server} prefer trust;chronyc makestep;chronyc burst 1/2"
|
54
53
|
elsif /opensuse-|sles-/.match?(host['platform'])
|
55
54
|
ntp_command = "sntp #{ntp_server}"
|
56
|
-
elsif host['platform'].include?('cisco_nexus')
|
57
|
-
ntp_server = host.exec(Command.new("getent hosts #{NTPSERVER} | head -n1 |cut -d \" \" -f1"), :acceptable_exit_codes => [0]).stdout
|
58
|
-
ntp_command = "sudo -E sh -c 'export DCOS_CONTEXT=2;/isan/bin/ntpdate -u -t 20 #{ntp_server}'"
|
59
55
|
else
|
60
56
|
ntp_command = "ntpdate -u -t 20 #{ntp_server}"
|
61
57
|
end
|
@@ -86,7 +82,6 @@ module Beaker
|
|
86
82
|
# Verifies the presence of #{HostPrebuiltSteps::UNIX_PACKAGES} on unix platform hosts,
|
87
83
|
# {HostPrebuiltSteps::SLES_PACKAGES} on SUSE platform hosts,
|
88
84
|
# {HostPrebuiltSteps::DEBIAN_PACKAGES} on debian platform hosts,
|
89
|
-
# {HostPrebuiltSteps::CUMULUS_PACKAGES} on cumulus platform hosts,
|
90
85
|
# {HostPrebuiltSteps::WINDOWS_PACKAGES} on cygwin-installed windows platform hosts,
|
91
86
|
# and {HostPrebuiltSteps::PSWINDOWS_PACKAGES} on non-cygwin windows platform hosts.
|
92
87
|
#
|
@@ -118,8 +113,6 @@ module Beaker
|
|
118
113
|
SLES_PACKAGES
|
119
114
|
when /debian/
|
120
115
|
DEBIAN_PACKAGES
|
121
|
-
when /cumulus/
|
122
|
-
CUMULUS_PACKAGES
|
123
116
|
when /windows/
|
124
117
|
if host.is_cygwin?
|
125
118
|
raise RuntimeError, "cygwin is not installed on #{host}" if !host.cygwin_installed?
|
@@ -141,7 +134,7 @@ module Beaker
|
|
141
134
|
when /fedora/
|
142
135
|
FEDORA_PACKAGES
|
143
136
|
else
|
144
|
-
if !/aix|solaris|osx
|
137
|
+
if !/aix|solaris|osx-/.match?(host['platform'])
|
145
138
|
UNIX_PACKAGES
|
146
139
|
else
|
147
140
|
[]
|
@@ -193,7 +186,7 @@ module Beaker
|
|
193
186
|
block_on host do |host|
|
194
187
|
logger.notify "Sync root authorized_keys from github on #{host.name}"
|
195
188
|
# Allow all exit code, as this operation is unlikely to cause problems if it fails.
|
196
|
-
if
|
189
|
+
if host['platform'].include?('solaris')
|
197
190
|
host.exec(Command.new(ROOT_KEYS_SYNC_CMD % "bash"), :accept_all_exit_codes => true)
|
198
191
|
elsif host['platform'].include?('aix')
|
199
192
|
host.exec(Command.new(ROOT_KEYS_SYNC_CMD_AIX % "env PATH=/usr/gnu/bin:$PATH bash"), :accept_all_exit_codes => true)
|
@@ -206,12 +199,12 @@ module Beaker
|
|
206
199
|
end
|
207
200
|
|
208
201
|
# Run 'apt-get update' on the provided host or hosts.
|
209
|
-
# If the platform of the provided host is not ubuntu
|
202
|
+
# If the platform of the provided host is not ubuntu or debian: do nothing.
|
210
203
|
#
|
211
204
|
# @param [Host, Array<Host>] hosts One or more hosts to act upon
|
212
205
|
def apt_get_update hosts
|
213
206
|
block_on hosts do |host|
|
214
|
-
host.exec(Command.new("apt-get update")) if /ubuntu|debian
|
207
|
+
host.exec(Command.new("apt-get update")) if /ubuntu|debian/.match?(host[:platform])
|
215
208
|
end
|
216
209
|
end
|
217
210
|
|
@@ -342,14 +335,12 @@ module Beaker
|
|
342
335
|
def disable_updates hosts, opts
|
343
336
|
logger = opts[:logger]
|
344
337
|
hosts.each do |host|
|
345
|
-
next if host['platform'].include?('netscaler')
|
346
|
-
|
347
338
|
logger.notify "Disabling updates.puppetlabs.com by modifying hosts file to resolve updates to 127.0.0.1 on #{host}"
|
348
339
|
set_etc_hosts(host, "127.0.0.1\tupdates.puppetlabs.com\n")
|
349
340
|
end
|
350
341
|
end
|
351
342
|
|
352
|
-
# Update sshd_config on debian, ubuntu, centos, el, redhat
|
343
|
+
# Update sshd_config on debian, ubuntu, centos, el, redhat and fedora boxes to allow for root login
|
353
344
|
#
|
354
345
|
# Does nothing on other platfoms.
|
355
346
|
#
|
@@ -376,8 +367,7 @@ module Beaker
|
|
376
367
|
elsif host['platform'].include?('solaris-11')
|
377
368
|
host.exec(Command.new("if grep \"root::::type=role\" /etc/user_attr; then sudo rolemod -K type=normal root; else echo \"root user already type=normal\"; fi"), { :pty => true })
|
378
369
|
host.exec(Command.new("sudo gsed -i -e 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config"), { :pty => true })
|
379
|
-
elsif host
|
380
|
-
# interacting with f5 should using tmsh
|
370
|
+
elsif host.is_powershell?
|
381
371
|
logger.warn("Attempting to enable root login non-supported platform: #{host.name}: #{host['platform']}")
|
382
372
|
elsif host.is_cygwin?
|
383
373
|
host.exec(Command.new("sed -ri 's/^#?PermitRootLogin /PermitRootLogin yes/' /etc/sshd_config"), { :pty => true })
|
@@ -385,11 +375,11 @@ module Beaker
|
|
385
375
|
host.exec(Command.new("sudo su -c \"sed -ri 's/^#?PermitRootLogin no|^#?PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config\""), { :pty => true })
|
386
376
|
end
|
387
377
|
# restart sshd
|
388
|
-
if /debian|ubuntu
|
378
|
+
if /debian|ubuntu/.match?(host['platform'])
|
389
379
|
host.exec(Command.new("sudo su -c \"service ssh restart\""), { :pty => true })
|
390
|
-
elsif /amazon|arch|(centos|el|redhat)-[789]|fedora
|
380
|
+
elsif /amazon|arch|(centos|el|redhat)-[789]|fedora/.match?(host['platform'])
|
391
381
|
host.exec(Command.new("sudo -E systemctl restart sshd.service"), { :pty => true })
|
392
|
-
elsif /centos|el-|redhat
|
382
|
+
elsif /centos|el-|redhat/.match?(host['platform'])
|
393
383
|
host.exec(Command.new("sudo -E /sbin/service sshd reload"), { :pty => true })
|
394
384
|
elsif /(free|open)bsd/.match?(host['platform'])
|
395
385
|
host.exec(Command.new("sudo /etc/rc.d/sshd restart"))
|
@@ -408,7 +398,7 @@ module Beaker
|
|
408
398
|
def disable_se_linux host, opts
|
409
399
|
logger = opts[:logger]
|
410
400
|
block_on host do |host|
|
411
|
-
if /centos|el-|redhat|fedora
|
401
|
+
if /centos|el-|redhat|fedora/.match?(host['platform'])
|
412
402
|
logger.debug("Disabling se_linux on #{host.name}")
|
413
403
|
host.exec(Command.new("sudo su -c \"setenforce 0\""), { :pty => true })
|
414
404
|
else
|
@@ -418,7 +408,7 @@ module Beaker
|
|
418
408
|
end
|
419
409
|
|
420
410
|
# Setup files for enabling requests to pass to a proxy server
|
421
|
-
# This works for the APT package manager on debian
|
411
|
+
# This works for the APT package manager on debian and ubuntu
|
422
412
|
# and YUM package manager on el, centos, fedora and redhat.
|
423
413
|
# @param [Host, Array<Host>, String, Symbol] host One or more hosts to act upon
|
424
414
|
# @param [Hash{Symbol=>String}] opts Options to alter execution.
|
@@ -429,9 +419,9 @@ module Beaker
|
|
429
419
|
block_on host do |host|
|
430
420
|
logger.debug("enabling proxy support on #{host.name}")
|
431
421
|
case host['platform']
|
432
|
-
when /ubuntu/, /debian
|
422
|
+
when /ubuntu/, /debian/
|
433
423
|
host.exec(Command.new("echo 'Acquire::http::Proxy \"#{opts[:package_proxy]}/\";' >> /etc/apt/apt.conf.d/10proxy"))
|
434
|
-
when /amazon/, /^el-/, /centos/, /fedora/, /redhat
|
424
|
+
when /amazon/, /^el-/, /centos/, /fedora/, /redhat/
|
435
425
|
host.exec(Command.new("echo 'proxy=#{opts[:package_proxy]}/' >> /etc/yum.conf"))
|
436
426
|
when /solaris-11/
|
437
427
|
host.exec(Command.new("/usr/bin/pkg unset-publisher solaris || :"))
|