beaker 5.4.0 → 5.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|