Skip to content

Commit

Permalink
Merge pull request #666 from joshcooper/aix72_5721
Browse files Browse the repository at this point in the history
(PA-5721) Add puppet8 and drop puppet5 support from AIX
  • Loading branch information
cthorn42 authored Sep 6, 2023
2 parents e80c795 + 8081c8a commit 4d69036
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 72 deletions.
31 changes: 14 additions & 17 deletions manifests/osfamily/aix.pp
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,17 @@
# multiple version of AIX. The support sequence is as follows:
#
# puppet 5 up to 5.5.22:
# * AIX verison 6.1 < aix-6.1-power package
# * AIX verison 7.1 < aix-7.1-power package
# * AIX verison 7.2 < aix-7.1-power package
# * AIX version 6.1 < aix-6.1-power package
# * AIX version 7.1 < aix-7.1-power package
# * AIX version 7.2 < aix-7.1-power package
#
# puppet 6 up to 6.19.1 and puppet 7.0.0 (not released in PE):
# * AIX verison 6.1 < aix-7.1-power package
# * AIX verison 7.1 < aix-7.1-power package
# * AIX verison 7.2 < aix-7.1-power package
# puppet 6 up to 6.19.1 and puppet 7.0.0:
# * AIX version 6.1 < aix-7.1-power package
# * AIX version 7.1 < aix-7.1-power package
# * AIX version 7.2 < aix-7.1-power package
#
# puppet 8:
# * AIX version 7.2 < aix-7.2-power package
#
# All other versions will now _only_ use the aix-7.1-power packages (i.e. we now only ship
# one package to support all aix versions).
Expand All @@ -31,16 +34,10 @@
# on puppet collection, package version and AIX version.
$_aix_ver_number = regsubst($::platform_tag,'aix-(\d+\.\d+)-power','\1')
if $_aix_ver_number {
if $::puppet_agent::collection =~ /(PC1|puppet5)/ {
# 5.5.22 is the last puppet5 release that ships AIX 6.1 packages
if versioncmp($::puppet_agent::prepare::package_version, '5.5.22') > 0 {
$aix_ver_number = '7.1'
} else {
$aix_ver_number = $_aix_ver_number ? {
/^7\.2$/ => '7.1',
default => $_aix_ver_number,
}
}
if $::puppet_agent::collection =~ /^puppet8/ {
$aix_ver_number = '7.2'
} elsif $::puppet_agent::collection =~ /^puppet7/ {
$aix_ver_number = '7.1'
} else {
# 6.19.1 is the last puppet6 release that ships AIX 6.1 packages
$aix_ver_number = versioncmp($::puppet_agent::prepare::package_version, '6.19.1') ? {
Expand Down
83 changes: 28 additions & 55 deletions spec/classes/puppet_agent_osfamily_aix_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
allow(Puppet::FileSystem).to receive(:exist?).and_call_original
allow(Puppet::FileSystem).to receive(:read_preserve_line_endings).and_call_original
allow(Puppet::FileSystem).to receive(:exist?).with('/opt/puppetlabs/puppet/VERSION').and_return true
allow(Puppet::FileSystem).to receive(:read_preserve_line_endings).with('/opt/puppetlabs/puppet/VERSION').and_return "5.10.200\n"
end

shared_examples 'aix' do |aixver, pkg_aixver, powerver|
Expand Down Expand Up @@ -61,13 +60,13 @@
let(:facts) do
common_facts.merge({
architecture: 'PowerPC_POWER8',
platform_tag: 'aix-6.1-power',
platform_tag: 'aix-7.1-power',
})
end
let(:params) do
{
package_version: '5.10.100.1',
collection: 'puppet5',
package_version: '7.10.100.1',
collection: 'puppet7',
source: 'https://fake-pe-master.com',
}
end
Expand All @@ -77,57 +76,10 @@
end

it {
is_expected.to contain_file('/opt/puppetlabs/packages/puppet-agent-5.10.100.1-1.aix7.1.ppc.rpm').with_source('https://fake-pe-master.com/packages/2000.0.0/aix-7.1-power/puppet-agent-5.10.100.1-1.aix7.1.ppc.rpm')
is_expected.to contain_file('/opt/puppetlabs/packages/puppet-agent-7.10.100.1-1.aix7.1.ppc.rpm').with_source('https://fake-pe-master.com/packages/2000.0.0/aix-7.1-power/puppet-agent-7.10.100.1-1.aix7.1.ppc.rpm')
}
end

context 'with a PC1 collection' do
let(:params) do
{
package_version: '1.10.100',
collection: 'PC1',
}
end

[['7.2', '7.1', '8'], ['7.1', '7.1', '8'], ['7.1', '7.1', '7'], ['6.1', '6.1', '7']].each do |aixver, pkg_aixver, powerver|
context "aix #{aixver}" do
include_examples 'aix', aixver, pkg_aixver, powerver
end
end
end

context 'with a puppet5 collection' do
context 'with versions up to 5.5.22' do
let(:params) do
{
package_version: '5.4.3',
collection: 'puppet5',
}
end

[['7.2', '7.1', '8'], ['7.1', '7.1', '8'], ['7.1', '7.1', '7'], ['6.1', '6.1', '7']].each do |aixver, pkg_aixver, powerver|
context "aix #{aixver}" do
include_examples 'aix', aixver, pkg_aixver, powerver
end
end
end

context 'with versions higher than 5.5.22' do
let(:params) do
{
package_version: '5.5.23',
collection: 'puppet5',
}
end

[['7.2', '7.1', '8'], ['7.1', '7.1', '8'], ['7.1', '7.1', '7'], ['6.1', '7.1', '7']].each do |aixver, pkg_aixver, powerver|
context "aix #{aixver}" do
include_examples 'aix', aixver, pkg_aixver, powerver
end
end
end
end

context 'with a puppet6 collection' do
context 'with versions up to 6.19.1' do
let(:params) do
Expand Down Expand Up @@ -177,6 +129,23 @@
end
end

context 'with a puppet8 collection' do
context 'with versions greater than or equal to 8.0.0' do
let(:params) do
{
package_version: '8.0.0',
collection: 'puppet8',
}
end

[['7.2', '7.2', '7']].each do |aixver, pkg_aixver, powerver|
context "aix #{aixver}" do
include_examples 'aix', aixver, pkg_aixver, powerver
end
end
end
end

context 'with package_version auto' do
let(:params) do
{
Expand All @@ -185,16 +154,20 @@
end
let(:facts) do
common_facts.merge({
serverversion: '5.10.200'
serverversion: '7.10.200'
})
end
let(:rpmname) { 'puppet-agent-5.10.200-1.aix7.1.ppc.rpm' }
let(:rpmname) { 'puppet-agent-7.10.200-1.aix7.1.ppc.rpm' }

before(:each) do
allow(Puppet::FileSystem).to receive(:read_preserve_line_endings).with('/opt/puppetlabs/puppet/VERSION').and_return "7.10.200\n"
end

it {
is_expected.to contain_package('puppet-agent')
.with({
'source' => "/opt/puppetlabs/packages/#{rpmname}",
'ensure' => '5.10.200',
'ensure' => '7.10.200',
'provider' => 'rpm',
})
}
Expand Down

0 comments on commit 4d69036

Please sign in to comment.