beaker 5.4.0 → 5.6.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/.rubocop_todo.yml +1 -1
- data/CHANGELOG.md +19 -0
- data/beaker.gemspec +1 -1
- data/lib/beaker/cli.rb +3 -3
- data/lib/beaker/host/unix/exec.rb +2 -2
- data/lib/beaker/host/unix/file.rb +2 -2
- data/lib/beaker/host/unix/pkg.rb +8 -8
- data/lib/beaker/host.rb +1 -5
- data/lib/beaker/host_prebuilt_steps.rb +6 -3
- data/lib/beaker/options/hosts_file_parser.rb +1 -0
- data/lib/beaker/perf.rb +3 -3
- data/lib/beaker/platform.rb +5 -4
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/host/unix/file_spec.rb +2 -2
- data/spec/beaker/host/unix/pkg_spec.rb +27 -35
- data/spec/beaker/host_prebuilt_steps_spec.rb +30 -2
- data/spec/helpers.rb +2 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8f99a4862979da16eeca708167851a6cc41356ef28f5093ffaf8b486687eb8ea
|
|
4
|
+
data.tar.gz: e9ca97f27f048c0aae5bba989ab7ed23491cb9ca111ab359b1b1b791c72fbf96
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 29286dc6b82ff7f399dc24757be5a45770d1fa144d99c9287f6abadabda0bb1330acc7a67ee71b196029f68ae7ca5f526a79725ef281ff25ae64f81f110d48d5
|
|
7
|
+
data.tar.gz: 160d6a88237f9f53b6ee0b384858ab0c411eeb477f331e3262aba5f179c6f07e1c3f72cb2c3a8ad3fef2366609004198f58c1421c1e15f08c79fb3578a159251
|
data/.rubocop_todo.yml
CHANGED
|
@@ -199,7 +199,7 @@ RSpec/MultipleDescribes:
|
|
|
199
199
|
# Offense count: 134
|
|
200
200
|
# Configuration parameters: AllowSubject.
|
|
201
201
|
RSpec/MultipleMemoizedHelpers:
|
|
202
|
-
Max:
|
|
202
|
+
Max: 18
|
|
203
203
|
|
|
204
204
|
# Offense count: 500
|
|
205
205
|
# Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.6.0](https://github.com/voxpupuli/beaker/tree/5.6.0) (2023-11-23)
|
|
4
|
+
|
|
5
|
+
**Implemented enhancements:**
|
|
6
|
+
|
|
7
|
+
- Use DNF for Amazon Linux 2023 [\#1832](https://github.com/voxpupuli/beaker/pull/1832) ([mhashizume](https://github.com/mhashizume))
|
|
8
|
+
- Use DNF for Fedora, newer Enterprise Linux [\#1835](https://github.com/voxpupuli/beaker/pull/1835) ([mhashizume](https://github.com/mhashizume))
|
|
9
|
+
|
|
10
|
+
**Fixed bugs:**
|
|
11
|
+
|
|
12
|
+
- Permit PlatformTagContainer class for beaker hosts [\#1833](https://github.com/voxpupuli/beaker/pull/1833) ([tlehman](https://github.com/tlehman))
|
|
13
|
+
|
|
14
|
+
## [5.5.0](https://github.com/voxpupuli/beaker/tree/5.5.0) (2023-10-02)
|
|
15
|
+
|
|
16
|
+
[Full Changelog](https://github.com/voxpupuli/beaker/compare/5.4.0...5.5.0)
|
|
17
|
+
|
|
18
|
+
**Implemented enhancements:**
|
|
19
|
+
|
|
20
|
+
- Allow amazon as a platform [\#1824](https://github.com/voxpupuli/beaker/pull/1824) ([yachub](https://github.com/yachub))
|
|
21
|
+
|
|
3
22
|
## [5.4.0](https://github.com/voxpupuli/beaker/tree/5.4.0) (2023-09-12)
|
|
4
23
|
|
|
5
24
|
[Full Changelog](https://github.com/voxpupuli/beaker/compare/5.3.0...5.4.0)
|
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', '~>
|
|
25
|
+
s.add_development_dependency 'voxpupuli-rubocop', '~> 2.0.0'
|
|
26
26
|
|
|
27
27
|
# Run time dependencies
|
|
28
28
|
s.add_runtime_dependency 'minitar', '~> 0.6'
|
data/lib/beaker/cli.rb
CHANGED
|
@@ -106,7 +106,7 @@ module Beaker
|
|
|
106
106
|
end
|
|
107
107
|
|
|
108
108
|
# Setup perf monitoring if needed
|
|
109
|
-
@perf = Beaker::Perf.new(@hosts, @options) if /
|
|
109
|
+
@perf = Beaker::Perf.new(@hosts, @options) if /aggressive|normal/.match?(@options[:collect_perf_data].to_s)
|
|
110
110
|
|
|
111
111
|
# pre acceptance phase
|
|
112
112
|
run_suite(:pre_suite, :fast)
|
|
@@ -138,7 +138,7 @@ module Beaker
|
|
|
138
138
|
end
|
|
139
139
|
|
|
140
140
|
# cleanup on error
|
|
141
|
-
if /
|
|
141
|
+
if /never|onpass/.match?(@options[:preserve_hosts].to_s)
|
|
142
142
|
@logger.notify "Cleanup: cleaning up after failed run"
|
|
143
143
|
@network_manager.cleanup if @network_manager
|
|
144
144
|
else
|
|
@@ -159,7 +159,7 @@ module Beaker
|
|
|
159
159
|
end
|
|
160
160
|
|
|
161
161
|
# cleanup on success
|
|
162
|
-
if /
|
|
162
|
+
if /never|onfail/.match?(@options[:preserve_hosts].to_s)
|
|
163
163
|
@logger.notify "Cleanup: cleaning up after successful run"
|
|
164
164
|
@network_manager.cleanup if @network_manager
|
|
165
165
|
else
|
|
@@ -280,7 +280,7 @@ module Unix::Exec
|
|
|
280
280
|
case self['platform']
|
|
281
281
|
when /debian|ubuntu|cumulus|huaweios/
|
|
282
282
|
exec(Beaker::Command.new("service ssh restart"))
|
|
283
|
-
when /(el|centos|redhat|oracle|scientific)-[7-9]|eos-7|fedora-(1[4-9]|2[0-9]|3[0-9])|archlinux-/
|
|
283
|
+
when /amazon|(el|centos|redhat|oracle|scientific)-[7-9]|eos-7|fedora-(1[4-9]|2[0-9]|3[0-9])|archlinux-/
|
|
284
284
|
exec(Beaker::Command.new("systemctl restart sshd.service"))
|
|
285
285
|
when /el-|centos|fedora|redhat|oracle|scientific|eos/
|
|
286
286
|
exec(Beaker::Command.new("/sbin/service sshd restart"))
|
|
@@ -302,7 +302,7 @@ module Unix::Exec
|
|
|
302
302
|
# (from {#ssh_service_restart}).
|
|
303
303
|
def ssh_permit_user_environment
|
|
304
304
|
case self['platform']
|
|
305
|
-
when /debian|ubuntu|cumulus|huaweios|archlinux|el-|centos|fedora|redhat|oracle|scientific|eos|opensuse|sles|solaris/
|
|
305
|
+
when /amazon|debian|ubuntu|cumulus|huaweios|archlinux|el-|centos|fedora|redhat|oracle|scientific|eos|opensuse|sles|solaris/
|
|
306
306
|
directory = tmpdir
|
|
307
307
|
exec(Beaker::Command.new("echo 'PermitUserEnvironment yes' | cat - /etc/ssh/sshd_config > #{directory}/sshd_config.permit"))
|
|
308
308
|
exec(Beaker::Command.new("mv #{directory}/sshd_config.permit /etc/ssh/sshd_config"))
|
|
@@ -88,7 +88,7 @@ module Unix::File
|
|
|
88
88
|
# @return [String] Path to package config dir
|
|
89
89
|
def package_config_dir
|
|
90
90
|
case self['platform']
|
|
91
|
-
when /fedora|el-|redhat|centos/
|
|
91
|
+
when /amazon|fedora|el-|redhat|centos/
|
|
92
92
|
'/etc/yum.repos.d/'
|
|
93
93
|
when /opensuse|sles/
|
|
94
94
|
'/etc/zypp/repos.d/'
|
|
@@ -149,7 +149,7 @@ module Unix::File
|
|
|
149
149
|
# @return [String] Type of repo (rpm|deb)
|
|
150
150
|
def repo_type
|
|
151
151
|
case self['platform']
|
|
152
|
-
when /fedora|el-|redhat|centos|opensuse|sles/
|
|
152
|
+
when /amazon|fedora|el-|redhat|centos|opensuse|sles/
|
|
153
153
|
'rpm'
|
|
154
154
|
when /debian|ubuntu|cumulus|huaweios/
|
|
155
155
|
'deb'
|
data/lib/beaker/host/unix/pkg.rb
CHANGED
|
@@ -40,7 +40,7 @@ module Unix::Pkg
|
|
|
40
40
|
when /el-4/
|
|
41
41
|
@logger.debug("Package query not supported on rhel4")
|
|
42
42
|
return false
|
|
43
|
-
when /cisco|fedora|centos|redhat|eos|el-/
|
|
43
|
+
when /amazon|cisco|fedora|centos|redhat|eos|el-/
|
|
44
44
|
result = execute("rpm -q #{name}", opts) { |result| result }
|
|
45
45
|
when /ubuntu|debian|cumulus|huaweios/
|
|
46
46
|
result = execute("dpkg -s #{name}", opts) { |result| result }
|
|
@@ -87,10 +87,10 @@ module Unix::Pkg
|
|
|
87
87
|
execute("zypper --non-interactive --gpg-auto-import-keys in #{name}", opts)
|
|
88
88
|
when /el-4/
|
|
89
89
|
@logger.debug("Package installation not supported on rhel4")
|
|
90
|
-
when /
|
|
90
|
+
when /amazon-2023|el-(8|9|1[0-9])|fedora/
|
|
91
91
|
name = "#{name}-#{version}" if version
|
|
92
92
|
execute("dnf -y #{cmdline_args} install #{name}", opts)
|
|
93
|
-
when /cisco|
|
|
93
|
+
when /cisco|centos|redhat|eos|el-[1-7]-/
|
|
94
94
|
name = "#{name}-#{version}" if version
|
|
95
95
|
execute("yum -y #{cmdline_args} install #{name}", opts)
|
|
96
96
|
when /ubuntu|debian|cumulus|huaweios/
|
|
@@ -172,9 +172,9 @@ module Unix::Pkg
|
|
|
172
172
|
execute("zypper --non-interactive rm #{name}", opts)
|
|
173
173
|
when /el-4/
|
|
174
174
|
@logger.debug("Package uninstallation not supported on rhel4")
|
|
175
|
-
when /
|
|
175
|
+
when /amazon-2023|el-(8|9|1[0-9])|fedora/
|
|
176
176
|
execute("dnf -y #{cmdline_args} remove #{name}", opts)
|
|
177
|
-
when /cisco|
|
|
177
|
+
when /cisco|centos|redhat|eos|el-[1-7]-/
|
|
178
178
|
execute("yum -y #{cmdline_args} remove #{name}", opts)
|
|
179
179
|
when /ubuntu|debian|cumulus|huaweios/
|
|
180
180
|
execute("apt-get purge #{cmdline_args} -y #{name}", opts)
|
|
@@ -264,9 +264,9 @@ module Unix::Pkg
|
|
|
264
264
|
def install_local_package(onhost_package_file, onhost_copy_dir = nil)
|
|
265
265
|
variant, version, _arch, _codename = self['platform'].to_array
|
|
266
266
|
case variant
|
|
267
|
-
when /^(fedora|el|redhat|centos)$/
|
|
267
|
+
when /^(amazon|fedora|el|redhat|centos)$/
|
|
268
268
|
command_name = 'yum'
|
|
269
|
-
command_name = 'dnf' if variant == 'fedora' && version.to_i > 21
|
|
269
|
+
command_name = 'dnf' if (variant == 'fedora' && version.to_i > 21) || (variant == 'amazon' && version.to_i >= 2023)
|
|
270
270
|
execute("#{command_name} --nogpgcheck localinstall -y #{onhost_package_file}")
|
|
271
271
|
when /^(opensuse|sles)$/
|
|
272
272
|
execute("zypper --non-interactive --no-gpg-checks in #{onhost_package_file}")
|
|
@@ -294,7 +294,7 @@ module Unix::Pkg
|
|
|
294
294
|
def uncompress_local_tarball(onhost_tar_file, onhost_base_dir, download_file)
|
|
295
295
|
variant, version, _arch, _codename = self['platform'].to_array
|
|
296
296
|
case variant
|
|
297
|
-
when /^(fedora|el|centos|redhat|opensuse|sles|debian|ubuntu|cumulus)$/
|
|
297
|
+
when /^(amazon|fedora|el|centos|redhat|opensuse|sles|debian|ubuntu|cumulus)$/
|
|
298
298
|
execute("tar -zxvf #{onhost_tar_file} -C #{onhost_base_dir}")
|
|
299
299
|
when /^solaris$/
|
|
300
300
|
# uncompress PE puppet-agent tarball
|
data/lib/beaker/host.rb
CHANGED
|
@@ -489,11 +489,7 @@ module Beaker
|
|
|
489
489
|
# We enable achieve mode and compression
|
|
490
490
|
rsync_args << "-az"
|
|
491
491
|
|
|
492
|
-
user =
|
|
493
|
-
"root"
|
|
494
|
-
else
|
|
495
|
-
self['user']
|
|
496
|
-
end
|
|
492
|
+
user = self['user'] || 'root'
|
|
497
493
|
hostname_with_user = "#{user}@#{reachable_name}"
|
|
498
494
|
|
|
499
495
|
Rsync.host = hostname_with_user
|
|
@@ -10,6 +10,7 @@ module Beaker
|
|
|
10
10
|
NTPSERVER = 'pool.ntp.org'
|
|
11
11
|
SLEEPWAIT = 5
|
|
12
12
|
TRIES = 5
|
|
13
|
+
AMAZON2023_PACKAGES = %w[curl-minimal chrony]
|
|
13
14
|
RHEL8_PACKAGES = %w[curl chrony]
|
|
14
15
|
RHEL9_PACKAGES = ['chrony']
|
|
15
16
|
FEDORA_PACKAGES = %w[curl chrony]
|
|
@@ -49,7 +50,7 @@ module Beaker
|
|
|
49
50
|
host.exec(Command.new("w32tm /resync"))
|
|
50
51
|
logger.notify "NTP date succeeded on #{host}"
|
|
51
52
|
else
|
|
52
|
-
if /el-[89]|fedora/.match?(host['platform'])
|
|
53
|
+
if /amazon|el-[89]|fedora/.match?(host['platform'])
|
|
53
54
|
ntp_command = "chronyc add server #{ntp_server} prefer trust;chronyc makestep;chronyc burst 1/2"
|
|
54
55
|
elsif /opensuse-|sles-/.match?(host['platform'])
|
|
55
56
|
ntp_command = "sntp #{ntp_server}"
|
|
@@ -108,6 +109,8 @@ module Beaker
|
|
|
108
109
|
# @return [Array<String>] A list of packages to install
|
|
109
110
|
def host_packages(host)
|
|
110
111
|
case host['platform']
|
|
112
|
+
when /amazon/
|
|
113
|
+
AMAZON2023_PACKAGES
|
|
111
114
|
when /el-8/
|
|
112
115
|
RHEL8_PACKAGES
|
|
113
116
|
when /el-9/
|
|
@@ -387,7 +390,7 @@ module Beaker
|
|
|
387
390
|
# restart sshd
|
|
388
391
|
if /debian|ubuntu|cumulus/.match?(host['platform'])
|
|
389
392
|
host.exec(Command.new("sudo su -c \"service ssh restart\""), { :pty => true })
|
|
390
|
-
elsif /arch|(centos|el|redhat)-[789]|fedora-(1[4-9]|2[0-9]|3[0-9])/.match?(host['platform'])
|
|
393
|
+
elsif /amazon|arch|(centos|el|redhat)-[789]|fedora-(1[4-9]|2[0-9]|3[0-9])/.match?(host['platform'])
|
|
391
394
|
host.exec(Command.new("sudo -E systemctl restart sshd.service"), { :pty => true })
|
|
392
395
|
elsif /centos|el-|redhat|fedora|eos/.match?(host['platform'])
|
|
393
396
|
host.exec(Command.new("sudo -E /sbin/service sshd reload"), { :pty => true })
|
|
@@ -431,7 +434,7 @@ module Beaker
|
|
|
431
434
|
case host['platform']
|
|
432
435
|
when /ubuntu/, /debian/, /cumulus/
|
|
433
436
|
host.exec(Command.new("echo 'Acquire::http::Proxy \"#{opts[:package_proxy]}/\";' >> /etc/apt/apt.conf.d/10proxy"))
|
|
434
|
-
when /^el-/, /centos/, /fedora/, /redhat/, /eos/
|
|
437
|
+
when /amazon/, /^el-/, /centos/, /fedora/, /redhat/, /eos/
|
|
435
438
|
host.exec(Command.new("echo 'proxy=#{opts[:package_proxy]}/' >> /etc/yum.conf"))
|
|
436
439
|
when /solaris-11/
|
|
437
440
|
host.exec(Command.new("/usr/bin/pkg unset-publisher solaris || :"))
|
data/lib/beaker/perf.rb
CHANGED
|
@@ -3,8 +3,8 @@ module Beaker
|
|
|
3
3
|
class Perf
|
|
4
4
|
PERF_PACKAGES = ['sysstat']
|
|
5
5
|
# SLES does not treat sysstat as a service that can be started
|
|
6
|
-
PERF_SUPPORTED_PLATFORMS = /debian|ubuntu|redhat|centos|oracle|scientific|fedora|el|eos|cumulus|opensuse|sles/
|
|
7
|
-
PERF_START_PLATFORMS = /debian|ubuntu|redhat|centos|oracle|scientific|fedora|el|eos|cumulus/
|
|
6
|
+
PERF_SUPPORTED_PLATFORMS = /amazon|debian|ubuntu|redhat|centos|oracle|scientific|fedora|el|eos|cumulus|opensuse|sles/
|
|
7
|
+
PERF_START_PLATFORMS = /amazon|debian|ubuntu|redhat|centos|oracle|scientific|fedora|el|eos|cumulus/
|
|
8
8
|
|
|
9
9
|
# Create the Perf instance and runs setup_perf_on_host on all hosts if --collect-perf-data
|
|
10
10
|
# was used as an option on the Baker command line invocation. Instances of this class do not
|
|
@@ -47,7 +47,7 @@ module Beaker
|
|
|
47
47
|
@logger.perf_output("Enabling aggressive sysstat polling")
|
|
48
48
|
if /debian|ubuntu/.match?(host['platform'])
|
|
49
49
|
host.exec(Command.new('sed -i s/5-55\\\/10/*/ /etc/cron.d/sysstat'))
|
|
50
|
-
elsif /centos|el|fedora|oracle|redhat|scientific/.match?(host['platform'])
|
|
50
|
+
elsif /amazon|centos|el|fedora|oracle|redhat|scientific/.match?(host['platform'])
|
|
51
51
|
host.exec(Command.new('sed -i s/*\\\/10/*/ /etc/cron.d/sysstat'))
|
|
52
52
|
end
|
|
53
53
|
end
|
data/lib/beaker/platform.rb
CHANGED
|
@@ -3,7 +3,9 @@ module Beaker
|
|
|
3
3
|
# all String methods while adding several platform-specific use cases.
|
|
4
4
|
class Platform < String
|
|
5
5
|
# Supported platforms
|
|
6
|
-
|
|
6
|
+
# rubocop:disable Layout/LineLength
|
|
7
|
+
PLATFORMS = /^(alpine|amazon|huaweios|cisco_nexus|cisco_ios_xr|(free|open)bsd|osx|centos|fedora|debian|oracle|redhat|redhatfips|scientific|opensuse|sles|ubuntu|windows|solaris|aix|archlinux|el|eos|cumulus|f5|netscaler)\-.+\-.+$/
|
|
8
|
+
# rubocop:enable Layout/LineLength
|
|
7
9
|
# Platform version numbers vs. codenames conversion hash
|
|
8
10
|
PLATFORM_VERSION_CODES =
|
|
9
11
|
{ :debian => { "forky" => "14",
|
|
@@ -56,6 +58,7 @@ module Beaker
|
|
|
56
58
|
# Creates the Platform object. Checks to ensure that the platform String
|
|
57
59
|
# provided meets the platform formatting rules. Platforms name must be of
|
|
58
60
|
# the format /^OSFAMILY-VERSION-ARCH.*$/ where OSFAMILY is one of:
|
|
61
|
+
# * amazon
|
|
59
62
|
# * huaweios
|
|
60
63
|
# * cisco_nexus
|
|
61
64
|
# * cisco_ios_xr
|
|
@@ -114,9 +117,7 @@ module Beaker
|
|
|
114
117
|
# @example Platform.new('debian-7-xxx').with_version_codename == 'debian-wheezy-xxx'
|
|
115
118
|
# @return [String] the platform string with the platform version represented as a codename
|
|
116
119
|
def with_version_codename
|
|
117
|
-
|
|
118
|
-
version_array = [@variant, @codename, @arch] if @codename
|
|
119
|
-
return version_array.join('-')
|
|
120
|
+
[@variant, @codename || @version, @arch].join('-')
|
|
120
121
|
end
|
|
121
122
|
|
|
122
123
|
# Returns the platform string with the platform version as a number. If no conversion is necessary
|
data/lib/beaker/version.rb
CHANGED
|
@@ -33,7 +33,7 @@ module Beaker
|
|
|
33
33
|
let(:instance) { UnixFileTest.new(opts.merge(platform), logger) }
|
|
34
34
|
|
|
35
35
|
describe '#repo_type' do
|
|
36
|
-
%w[centos redhat].each do |platform|
|
|
36
|
+
%w[amazon centos redhat].each do |platform|
|
|
37
37
|
it "returns correctly for platform '#{platform}'" do
|
|
38
38
|
@platform = "#{platform}-5-x86_64"
|
|
39
39
|
expect(instance.repo_type).to be === 'rpm'
|
|
@@ -54,7 +54,7 @@ module Beaker
|
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
describe '#package_config_dir' do
|
|
57
|
-
%w[centos redhat].each do |platform|
|
|
57
|
+
%w[amazon centos redhat].each do |platform|
|
|
58
58
|
it "returns correctly for platform '#{platform}'" do
|
|
59
59
|
@platform = "#{platform}-5-x86_64"
|
|
60
60
|
expect(instance.package_config_dir).to be === '/etc/yum.repos.d/'
|
|
@@ -58,7 +58,7 @@ module Beaker
|
|
|
58
58
|
expect(instance.check_for_package(pkg)).to be === true
|
|
59
59
|
end
|
|
60
60
|
|
|
61
|
-
%w[centos redhat].each do |platform|
|
|
61
|
+
%w[amazon centos redhat].each do |platform|
|
|
62
62
|
it "checks correctly on #{platform}" do
|
|
63
63
|
@opts = { 'platform' => "#{platform}-is-me" }
|
|
64
64
|
pkg = "#{platform}_package"
|
|
@@ -175,24 +175,20 @@ module Beaker
|
|
|
175
175
|
end
|
|
176
176
|
end
|
|
177
177
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
expect(instance.install_package(pkg)).to be == "hello"
|
|
185
|
-
end
|
|
178
|
+
it "uses dnf on fedora" do
|
|
179
|
+
@opts = { 'platform' => "fedora-is-me" }
|
|
180
|
+
pkg = 'fedora_package'
|
|
181
|
+
expect(Beaker::Command).to receive(:new).with("dnf -y install #{pkg}", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
|
|
182
|
+
expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
|
|
183
|
+
expect(instance.install_package(pkg)).to be == "hello"
|
|
186
184
|
end
|
|
187
185
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
expect(instance.install_package(pkg)).to be == "hello"
|
|
195
|
-
end
|
|
186
|
+
it "uses dnf on amazon-2023" do
|
|
187
|
+
@opts = { 'platform' => "amazon-2023-is-me" }
|
|
188
|
+
pkg = 'amazon_package'
|
|
189
|
+
expect(Beaker::Command).to receive(:new).with("dnf -y install #{pkg}", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
|
|
190
|
+
expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
|
|
191
|
+
expect(instance.install_package(pkg)).to be == "hello"
|
|
196
192
|
end
|
|
197
193
|
|
|
198
194
|
it "uses pacman on archlinux" do
|
|
@@ -213,24 +209,12 @@ module Beaker
|
|
|
213
209
|
expect(instance.uninstall_package('pkg')).to be == "hello"
|
|
214
210
|
end
|
|
215
211
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
expect(instance.uninstall_package(pkg)).to be == "hello"
|
|
223
|
-
end
|
|
224
|
-
end
|
|
225
|
-
|
|
226
|
-
(22..39).to_a.each do |fedora_release|
|
|
227
|
-
it "uses dnf on fedora-#{fedora_release}" do
|
|
228
|
-
@opts = { 'platform' => "fedora-#{fedora_release}-is-me" }
|
|
229
|
-
pkg = 'fedora_package'
|
|
230
|
-
expect(Beaker::Command).to receive(:new).with("dnf -y remove #{pkg}", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
|
|
231
|
-
expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
|
|
232
|
-
expect(instance.uninstall_package(pkg)).to be == "hello"
|
|
233
|
-
end
|
|
212
|
+
it "uses dnf on fedora" do
|
|
213
|
+
@opts = { 'platform' => "fedora-is-me" }
|
|
214
|
+
pkg = 'fedora_package'
|
|
215
|
+
expect(Beaker::Command).to receive(:new).with("dnf -y remove #{pkg}", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
|
|
216
|
+
expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
|
|
217
|
+
expect(instance.uninstall_package(pkg)).to be == "hello"
|
|
234
218
|
end
|
|
235
219
|
end
|
|
236
220
|
end
|
|
@@ -291,6 +275,14 @@ module Beaker
|
|
|
291
275
|
allow(instance).to receive(:[]).with('platform') { Beaker::Platform.new("#{platform}-#{version}-x86_64") }
|
|
292
276
|
end
|
|
293
277
|
|
|
278
|
+
it 'amazon-2023: uses dnf' do
|
|
279
|
+
@platform = platform
|
|
280
|
+
@version = '2023'
|
|
281
|
+
package_file = 'test_123.yay'
|
|
282
|
+
expect(instance).to receive(:execute).with(/^dnf.*#{package_file}$/)
|
|
283
|
+
instance.install_local_package(package_file)
|
|
284
|
+
end
|
|
285
|
+
|
|
294
286
|
it 'Fedora 22-39: uses dnf' do
|
|
295
287
|
(22...39).each do |version|
|
|
296
288
|
@version = version
|
|
@@ -11,6 +11,7 @@ describe Beaker do
|
|
|
11
11
|
let(:sles_only_pkgs) { Beaker::HostPrebuiltSteps::SLES_PACKAGES }
|
|
12
12
|
let(:rhel8_packages) { Beaker::HostPrebuiltSteps::RHEL8_PACKAGES }
|
|
13
13
|
let(:fedora_packages) { Beaker::HostPrebuiltSteps::FEDORA_PACKAGES }
|
|
14
|
+
let(:amazon2023_packages) { Beaker::HostPrebuiltSteps::AMAZON2023_PACKAGES }
|
|
14
15
|
let(:platform) { @platform || 'unix' }
|
|
15
16
|
let(:ip) { "ip.address.0.0" }
|
|
16
17
|
let(:stdout) { @stdout || ip }
|
|
@@ -85,6 +86,11 @@ describe Beaker do
|
|
|
85
86
|
"if grep \"root::::type=role\" /etc/user_attr; then sudo rolemod -K type=normal root; else echo \"root user already type=normal\"; fi",
|
|
86
87
|
], true
|
|
87
88
|
|
|
89
|
+
it_behaves_like 'enables_root_login', 'amazon-2023', [
|
|
90
|
+
"sudo -E systemctl restart sshd.service",
|
|
91
|
+
"sudo su -c \"sed -ri 's/^#?PermitRootLogin no|^#?PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config\"",
|
|
92
|
+
]
|
|
93
|
+
|
|
88
94
|
%w[debian ubuntu cumulus].each do |deb_like|
|
|
89
95
|
it_behaves_like 'enables_root_login', deb_like, [
|
|
90
96
|
"sudo su -c \"sed -ri 's/^#?PermitRootLogin no|^#?PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config\"",
|
|
@@ -147,6 +153,15 @@ describe Beaker do
|
|
|
147
153
|
subject.timesync(hosts, options)
|
|
148
154
|
end
|
|
149
155
|
|
|
156
|
+
it "can sync time on amazon2023 hosts" do
|
|
157
|
+
hosts = make_hosts(:platform => 'amazon-2023-x86_64')
|
|
158
|
+
expect(Beaker::Command).to receive(:new)
|
|
159
|
+
.with("chronyc add server #{ntpserver} prefer trust;chronyc makestep;chronyc burst 1/2")
|
|
160
|
+
.exactly(3)
|
|
161
|
+
.times
|
|
162
|
+
subject.timesync(hosts, options)
|
|
163
|
+
end
|
|
164
|
+
|
|
150
165
|
it "can sync time on RHEL8 hosts" do
|
|
151
166
|
hosts = make_hosts(:platform => 'el-8-x86_x64')
|
|
152
167
|
expect(Beaker::Command).to receive(:new)
|
|
@@ -358,6 +373,19 @@ describe Beaker do
|
|
|
358
373
|
subject.validate_host(hosts, options)
|
|
359
374
|
end
|
|
360
375
|
|
|
376
|
+
it "can validate Amazon hosts" do
|
|
377
|
+
@platform = 'amazon-2023-x86_64'
|
|
378
|
+
|
|
379
|
+
hosts.each do |host|
|
|
380
|
+
amazon2023_packages.each do |pkg|
|
|
381
|
+
expect(host).to receive(:check_for_package).with(pkg).once.and_return(false)
|
|
382
|
+
expect(host).to receive(:install_package).with(pkg).once
|
|
383
|
+
end
|
|
384
|
+
end
|
|
385
|
+
|
|
386
|
+
subject.validate_host(hosts, options)
|
|
387
|
+
end
|
|
388
|
+
|
|
361
389
|
it 'skips validation on cisco hosts' do
|
|
362
390
|
host = make_host('cisco-7', { stdout: stdout, platform: 'cisco_nexus-7-x86_64' })
|
|
363
391
|
expect(subject).to receive(:check_and_install_packages_if_needed).with(host, []).once
|
|
@@ -404,7 +432,7 @@ describe Beaker do
|
|
|
404
432
|
end
|
|
405
433
|
end
|
|
406
434
|
|
|
407
|
-
%w[centos redhat].each do |platform|
|
|
435
|
+
%w[amazon centos redhat].each do |platform|
|
|
408
436
|
context "on platform '#{platform}'" do
|
|
409
437
|
let(:host) do
|
|
410
438
|
make_host('name', {
|
|
@@ -483,7 +511,7 @@ describe Beaker do
|
|
|
483
511
|
subject.package_proxy(host, options.merge({ 'package_proxy' => proxyurl }))
|
|
484
512
|
end
|
|
485
513
|
|
|
486
|
-
%w[centos redhat].each do |platform|
|
|
514
|
+
%w[amazon centos redhat].each do |platform|
|
|
487
515
|
it "can set proxy config on a '#{platform}' host" do
|
|
488
516
|
host = make_host('name', { :platform => platform })
|
|
489
517
|
|
data/spec/helpers.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: beaker
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.
|
|
4
|
+
version: 5.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Puppet
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-
|
|
11
|
+
date: 2023-11-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: fakefs
|
|
@@ -58,14 +58,14 @@ dependencies:
|
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
61
|
+
version: 2.0.0
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
68
|
+
version: 2.0.0
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: minitar
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|