beaker 5.8.1 → 6.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 || :"))
|