beaker-puppet 3.0.0 → 4.0.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/.github/workflows/release.yml +1 -1
- data/CHANGELOG.md +399 -335
- data/Rakefile +1 -1
- data/beaker-puppet.gemspec +1 -1
- data/lib/beaker-puppet/install_utils/foss_utils.rb +19 -39
- data/lib/beaker-puppet/version.rb +1 -1
- data/spec/beaker-puppet/install_utils/foss_utils_spec.rb +6 -46
- data/spec/helpers.rb +1 -3
- metadata +10 -4
data/Rakefile
CHANGED
@@ -189,7 +189,7 @@ else
|
|
189
189
|
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
190
190
|
config.header = "# Changelog\n\nAll notable changes to this project will be documented in this file."
|
191
191
|
config.exclude_labels = %w[duplicate question invalid wontfix wont-fix skip-changelog]
|
192
|
-
config.user = '
|
192
|
+
config.user = 'puppetlabs'
|
193
193
|
config.project = 'beaker-puppet'
|
194
194
|
config.future_release = "#{Gem::Specification.load("#{config.project}.gemspec").version}"
|
195
195
|
end
|
data/beaker-puppet.gemspec
CHANGED
@@ -29,6 +29,6 @@ Gem::Specification.new do |s|
|
|
29
29
|
s.add_development_dependency 'beaker-vmpooler', '~> 1.4'
|
30
30
|
|
31
31
|
# Run time dependencies
|
32
|
-
s.add_runtime_dependency 'beaker', '
|
32
|
+
s.add_runtime_dependency 'beaker', '>= 5.0', '< 7'
|
33
33
|
s.add_runtime_dependency 'oga', '~> 3.4'
|
34
34
|
end
|
@@ -303,7 +303,7 @@ module Beaker
|
|
303
303
|
family = ::Regexp.last_match(1)
|
304
304
|
relver = ::Regexp.last_match(2)
|
305
305
|
install_puppet_from_rpm_on(host, opts.merge(release: relver, family: family))
|
306
|
-
elsif host['platform'] =~ /(ubuntu|debian
|
306
|
+
elsif host['platform'] =~ /(ubuntu|debian)/
|
307
307
|
install_puppet_from_deb_on(host, opts)
|
308
308
|
elsif host['platform'] =~ /windows/
|
309
309
|
relver = opts[:version]
|
@@ -406,10 +406,10 @@ module Beaker
|
|
406
406
|
end
|
407
407
|
|
408
408
|
case host['platform']
|
409
|
-
when /amazon|el-|redhat|fedora|sles|centos
|
409
|
+
when /amazon|el-|redhat|fedora|sles|centos/
|
410
410
|
package_name = 'puppet-agent'
|
411
411
|
package_name << "-#{opts[:puppet_agent_version]}" if opts[:puppet_agent_version]
|
412
|
-
when /debian|ubuntu
|
412
|
+
when /debian|ubuntu/
|
413
413
|
package_name = 'puppet-agent'
|
414
414
|
if opts[:puppet_agent_version]
|
415
415
|
package_name << "=#{opts[:puppet_agent_version]}-1#{host['platform'].codename}"
|
@@ -921,9 +921,9 @@ module Beaker
|
|
921
921
|
|
922
922
|
unless host.check_for_command('gem')
|
923
923
|
gempkg = case host['platform']
|
924
|
-
when /solaris-11/
|
925
|
-
when /ubuntu-14/
|
926
|
-
when /solaris-10|ubuntu|debian|el
|
924
|
+
when /solaris-11/ then 'ruby-18'
|
925
|
+
when /ubuntu-14/ then 'ruby'
|
926
|
+
when /solaris-10|ubuntu|debian|el-/ then 'rubygems'
|
927
927
|
when /openbsd/ then 'ruby'
|
928
928
|
else
|
929
929
|
raise 'install_puppet() called with default_action ' +
|
@@ -937,7 +937,7 @@ module Beaker
|
|
937
937
|
# Link 'gem' to /usr/bin instead of adding /opt/csw/bin to PATH.
|
938
938
|
on host, 'ln -s /opt/csw/bin/gem /usr/bin/gem' if is_solaris10
|
939
939
|
|
940
|
-
if host['platform'] =~ /debian|ubuntu|solaris
|
940
|
+
if host['platform'] =~ /debian|ubuntu|solaris/
|
941
941
|
gem_env = YAML.load(on(host, 'gem environment').stdout)
|
942
942
|
gem_paths_array = gem_env['RubyGems Environment'].find { |h| h['GEM PATHS'] != nil }['GEM PATHS']
|
943
943
|
path_with_gem = 'export PATH=' + gem_paths_array.join(':') + ':${PATH}'
|
@@ -993,16 +993,8 @@ module Beaker
|
|
993
993
|
opts = sanitize_opts(opts)
|
994
994
|
|
995
995
|
case variant
|
996
|
-
when /^(amazon|fedora|el|redhat|centos|sles
|
996
|
+
when /^(amazon|fedora|el|redhat|centos|sles)$/
|
997
997
|
variant_url_value = (%w[redhat centos].include?(::Regexp.last_match(1)) ? 'el' : ::Regexp.last_match(1))
|
998
|
-
if variant == 'cisco_nexus'
|
999
|
-
variant_url_value = 'cisco-wrlinux'
|
1000
|
-
version = '5'
|
1001
|
-
end
|
1002
|
-
if variant == 'cisco_ios_xr'
|
1003
|
-
variant_url_value = 'cisco-wrlinux'
|
1004
|
-
version = '7'
|
1005
|
-
end
|
1006
998
|
if repo_name.match(/puppet\d*/)
|
1007
999
|
url = if repo_name.match(/-nightly$/)
|
1008
1000
|
opts[:nightly_yum_repo_url]
|
@@ -1028,19 +1020,11 @@ module Beaker
|
|
1028
1020
|
end
|
1029
1021
|
end
|
1030
1022
|
|
1031
|
-
|
1032
|
-
|
1033
|
-
|
1034
|
-
elsif variant == 'cisco_ios_xr'
|
1035
|
-
# cisco ios xr requires using yum to localinstall the repo
|
1036
|
-
on host, "yum -y localinstall #{remote}"
|
1037
|
-
else
|
1038
|
-
opts[:package_proxy] ||= false
|
1039
|
-
host.install_package_with_rpm(remote, '--replacepkgs',
|
1040
|
-
{ package_proxy: opts[:package_proxy] })
|
1041
|
-
end
|
1023
|
+
opts[:package_proxy] ||= false
|
1024
|
+
host.install_package_with_rpm(remote, '--replacepkgs',
|
1025
|
+
{ package_proxy: opts[:package_proxy] })
|
1042
1026
|
|
1043
|
-
when /^(debian|ubuntu
|
1027
|
+
when /^(debian|ubuntu)$/
|
1044
1028
|
if repo_name.match(/puppet\d*/)
|
1045
1029
|
url = if repo_name.match(/-nightly$/)
|
1046
1030
|
opts[:nightly_apt_repo_url]
|
@@ -1111,14 +1095,10 @@ module Beaker
|
|
1111
1095
|
File.write(repo, contents)
|
1112
1096
|
end
|
1113
1097
|
|
1114
|
-
to_path =
|
1115
|
-
"#{host.package_config_dir}/#{File.basename(repo)}"
|
1116
|
-
else
|
1117
|
-
host.package_config_dir
|
1118
|
-
end
|
1098
|
+
to_path = host.package_config_dir
|
1119
1099
|
scp_to(host, repo, to_path)
|
1120
1100
|
|
1121
|
-
on(host, 'apt-get update') if host['platform'] =~ /ubuntu-|debian
|
1101
|
+
on(host, 'apt-get update') if host['platform'] =~ /ubuntu-|debian-/
|
1122
1102
|
nil
|
1123
1103
|
end
|
1124
1104
|
|
@@ -1148,7 +1128,7 @@ module Beaker
|
|
1148
1128
|
repo_configs_dir = nil,
|
1149
1129
|
opts = options)
|
1150
1130
|
variant, version, arch, codename = host['platform'].to_array
|
1151
|
-
if variant !~ /^(fedora|el|redhat|centos|debian|ubuntu|
|
1131
|
+
if variant !~ /^(amazon|fedora|el|redhat|centos|debian|ubuntu|sles)$/
|
1152
1132
|
raise "No repository installation step for #{variant} yet..."
|
1153
1133
|
end
|
1154
1134
|
|
@@ -1162,7 +1142,7 @@ module Beaker
|
|
1162
1142
|
# url type
|
1163
1143
|
_, protocol, hostname = opts[:dev_builds_url].partition %r{.*://}
|
1164
1144
|
dev_builds_url = protocol + hostname
|
1165
|
-
dev_builds_url = opts[:dev_builds_url] if variant =~ /^(fedora|el|redhat|centos)$/
|
1145
|
+
dev_builds_url = opts[:dev_builds_url] if variant =~ /^(amazon|fedora|el|redhat|centos)$/
|
1166
1146
|
|
1167
1147
|
install_repo_configs(host, dev_builds_url, package_name,
|
1168
1148
|
build_version, platform_configs_dir)
|
@@ -1181,7 +1161,7 @@ module Beaker
|
|
1181
1161
|
# @note This method is paired to be run directly after {#install_puppetlabs_dev_repo}
|
1182
1162
|
#
|
1183
1163
|
def install_packages_from_local_dev_repo(host, package_name)
|
1184
|
-
if host['platform'] =~ /debian|ubuntu
|
1164
|
+
if host['platform'] =~ /debian|ubuntu/
|
1185
1165
|
find_filename = '*.deb'
|
1186
1166
|
find_command = 'dpkg -i'
|
1187
1167
|
elsif host['platform'] =~ /fedora|el|redhat|centos/
|
@@ -1269,7 +1249,7 @@ module Beaker
|
|
1269
1249
|
|
1270
1250
|
# We have to do some silly version munging if we're on a deb-based platform
|
1271
1251
|
case host['platform']
|
1272
|
-
when /debian|ubuntu
|
1252
|
+
when /debian|ubuntu/
|
1273
1253
|
opts[:version] = "#{opts[:version]}-1#{host['platform'].codename}" if opts[:version]
|
1274
1254
|
end
|
1275
1255
|
|
@@ -1291,7 +1271,7 @@ module Beaker
|
|
1291
1271
|
cmdline_args = ''
|
1292
1272
|
# query packages
|
1293
1273
|
case host[:platform]
|
1294
|
-
when /
|
1274
|
+
when /ubuntu/
|
1295
1275
|
pkgs = on(host, "dpkg-query -l | awk '{print $2}' | grep -E '(^pe-|puppet)'",
|
1296
1276
|
acceptable_exit_codes: [0, 1]).stdout.chomp.split(/\n+/)
|
1297
1277
|
when /aix|sles|el|redhat|centos|oracle|scientific/
|
@@ -818,48 +818,6 @@ describe ClassMixedWithDSLInstallUtils do
|
|
818
818
|
subject.install_puppetlabs_release_repo_on(host)
|
819
819
|
end
|
820
820
|
end
|
821
|
-
|
822
|
-
context 'on debian 8' do
|
823
|
-
let(:platform) { Beaker::Platform.new('debian-8-i386') }
|
824
|
-
it 'returns the correct url when repo is set to puppet4' do
|
825
|
-
expect(subject).to receive(:on).with(host, /puppet4-release-jessie\.deb$/).once
|
826
|
-
expect(subject).to receive(:on).with(host, 'dpkg -i --force-all /tmp/puppet.deb').once
|
827
|
-
expect(subject).to receive(:on).with(host, 'apt-get update').once
|
828
|
-
subject.install_puppetlabs_release_repo_on(host, 'puppet4')
|
829
|
-
end
|
830
|
-
it 'returns the correct url when opts[:puppet_collection] is set to puppet7' do
|
831
|
-
expect(subject).to receive(:on).with(host, /puppet7-release-jessie\.deb$/).once
|
832
|
-
expect(subject).to receive(:on).with(host, 'dpkg -i --force-all /tmp/puppet.deb').once
|
833
|
-
expect(subject).to receive(:on).with(host, 'apt-get update').once
|
834
|
-
subject.install_puppetlabs_release_repo_on(host, nil, { puppet_collection: 'puppet7' })
|
835
|
-
end
|
836
|
-
it 'returns the correct url when both repo and opts[:puppet_collection] are nil' do
|
837
|
-
expect(subject).to receive(:on).with(host, /puppet-release-jessie\.deb$/).once
|
838
|
-
expect(subject).to receive(:on).with(host, 'dpkg -i --force-all /tmp/puppet.deb').once
|
839
|
-
expect(subject).to receive(:on).with(host, 'apt-get update').once
|
840
|
-
subject.install_puppetlabs_release_repo_on(host)
|
841
|
-
end
|
842
|
-
end
|
843
|
-
|
844
|
-
context 'on cisco platforms' do
|
845
|
-
context 'version 5' do
|
846
|
-
let(:platform) { Beaker::Platform.new('cisco_nexus-7-x86_64') }
|
847
|
-
|
848
|
-
it 'calls host.install_package' do
|
849
|
-
expect(host).to receive(:install_package).with(/\.rpm$/)
|
850
|
-
subject.install_puppetlabs_release_repo_on(host)
|
851
|
-
end
|
852
|
-
end
|
853
|
-
|
854
|
-
context 'version 7' do
|
855
|
-
let(:platform) { Beaker::Platform.new('cisco_ios_xr-6-x86_64') }
|
856
|
-
|
857
|
-
it 'uses yum localinstall to install the package' do
|
858
|
-
expect(subject).to receive(:on).with(host, /^yum.*localinstall.*\.rpm$/)
|
859
|
-
subject.install_puppetlabs_release_repo_on(host)
|
860
|
-
end
|
861
|
-
end
|
862
|
-
end
|
863
821
|
end
|
864
822
|
|
865
823
|
describe '#install_puppetlabs_dev_repo' do
|
@@ -884,6 +842,8 @@ describe ClassMixedWithDSLInstallUtils do
|
|
884
842
|
allow(rez).to receive(:exit_code) { 0 }
|
885
843
|
allow(subject).to receive(:link_exists?).and_return(true)
|
886
844
|
expect(subject).to receive(:scp_to).with(host, repo_config, /.*/).ordered
|
845
|
+
allow(File).to receive(:read).and_call_original
|
846
|
+
allow(File).to receive(:read).with('repoconfig').and_return('')
|
887
847
|
subject.install_puppetlabs_dev_repo host, package_name, package_version
|
888
848
|
end
|
889
849
|
end
|
@@ -960,7 +920,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
960
920
|
end
|
961
921
|
|
962
922
|
it 'fails correctly for systems not accounted for' do
|
963
|
-
@platform = '
|
923
|
+
@platform = 'freebsd-1-3'
|
964
924
|
expect { subject.install_packages_from_local_dev_repo(host, package_name) }.to raise_error RuntimeError
|
965
925
|
end
|
966
926
|
end
|
@@ -1108,10 +1068,10 @@ describe ClassMixedWithDSLInstallUtils do
|
|
1108
1068
|
version = '6.6.6'
|
1109
1069
|
|
1110
1070
|
context 'on deb-based platform' do
|
1111
|
-
let(:host) { make_host('master', platform: Beaker::Platform.new('ubuntu-
|
1112
|
-
it 'munges the version on ubuntu
|
1071
|
+
let(:host) { make_host('master', platform: Beaker::Platform.new('ubuntu-24.04-amd64')) }
|
1072
|
+
it 'munges the version on ubuntu 24.04' do
|
1113
1073
|
expect(subject).to receive(:install_puppetlabs_release_repo_on).with(host, 'puppet', anything)
|
1114
|
-
expect(subject).to receive(:install_package).with(host, 'puppetserver', "#{version}-
|
1074
|
+
expect(subject).to receive(:install_package).with(host, 'puppetserver', "#{version}-1noble")
|
1115
1075
|
allow(subject).to receive(:dev_builds_accessible_on?).with(host, anything).and_return false
|
1116
1076
|
subject.install_puppetserver_on(host, version: version)
|
1117
1077
|
end
|
data/spec/helpers.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaker-puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vox Pupuli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fakefs
|
@@ -104,16 +104,22 @@ dependencies:
|
|
104
104
|
name: beaker
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- - "
|
107
|
+
- - ">="
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '5.0'
|
110
|
+
- - "<"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '7'
|
110
113
|
type: :runtime
|
111
114
|
prerelease: false
|
112
115
|
version_requirements: !ruby/object:Gem::Requirement
|
113
116
|
requirements:
|
114
|
-
- - "
|
117
|
+
- - ">="
|
115
118
|
- !ruby/object:Gem::Version
|
116
119
|
version: '5.0'
|
120
|
+
- - "<"
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '7'
|
117
123
|
- !ruby/object:Gem::Dependency
|
118
124
|
name: oga
|
119
125
|
requirement: !ruby/object:Gem::Requirement
|