Skip to content

Commit 60fee39

Browse files
authored
Merge pull request #394 from McdonaldSeanp/MODULES8720
(MODULES-8720) Update source calculation to prefer source user param
2 parents c974707 + 9121032 commit 60fee39

15 files changed

+237
-36
lines changed

manifests/osfamily/aix.pp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,11 @@
4444
$aix_ver_number = '6.1'
4545
}
4646
}
47-
$source = "puppet:///pe_packages/${pe_server_version}/aix-${aix_ver_number}-power/${::puppet_agent::package_name}-${::puppet_agent::package_version}-1.aix${aix_ver_number}.ppc.rpm"
47+
if $::puppet_agent::source {
48+
$source = $::puppet_agent::source
49+
} else {
50+
$source = "puppet:///pe_packages/${pe_server_version}/aix-${aix_ver_number}-power/${::puppet_agent::package_name}-${::puppet_agent::package_version}-1.aix${aix_ver_number}.ppc.rpm"
51+
}
4852

4953
class { '::puppet_agent::prepare::package':
5054
source => $source,

manifests/osfamily/darwin.pp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
class puppet_agent::osfamily::darwin{
22
assert_private()
33

4-
if $::puppet_agent::is_pe {
4+
if $::puppet_agent::source {
5+
$source = $::puppet_agent::source
6+
} elsif $::puppet_agent::is_pe {
57
$pe_server_version = pe_build_version()
68
$source = "puppet:///pe_packages/${pe_server_version}/${::platform_tag}/${puppet_agent::package_name}-${puppet_agent::package_version}-1.osx${$::macosx_productversion_major}.dmg"
79
} else {

manifests/osfamily/debian.pp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77

88
if getvar('::puppet_agent::is_pe') == true {
99
$pe_server_version = pe_build_version()
10-
$source = "https://${::servername}:8140/packages/${pe_server_version}/${::platform_tag}"
10+
if $::puppet_agent::source {
11+
$source = $::puppet_agent::source
12+
} else {
13+
$source = "https://${::servername}:8140/packages/${pe_server_version}/${::platform_tag}"
14+
}
1115
# In Puppet Enterprise, agent packages are served by the same server
1216
# as the master, which can be using either a self signed CA, or an external CA.
1317
# In order for apt to authenticate to the repo on the PE Master, it will need
@@ -55,7 +59,11 @@
5559
content => '',
5660
}
5761
} else {
58-
$source = 'https://apt.puppet.com'
62+
if $::puppet_agent::source {
63+
$source = $::puppet_agent::source
64+
} else {
65+
$source = 'https://apt.puppet.com'
66+
}
5967
}
6068

6169
$legacy_keyname = 'GPG-KEY-puppetlabs'

manifests/osfamily/redhat.pp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@
88
true => "el-6-${::architecture}",
99
default => $::platform_tag,
1010
}
11-
$source = "https://${::servername}:8140/packages/${pe_server_version}/${pe_repo_dir}"
11+
if $::puppet_agent::source {
12+
$source = $::puppet_agent::source
13+
} else {
14+
$source = "https://${::servername}:8140/packages/${pe_server_version}/${pe_repo_dir}"
15+
}
1216
# In Puppet Enterprise, agent packages are served by the same server
1317
# as the master, which can be using either a self signed CA, or an external CA.
1418
# In order for yum to authenticate to the yumrepo on the PE Master, it will need
@@ -39,7 +43,11 @@
3943
$platform_and_version = "el/${::operatingsystemmajrelease}"
4044
}
4145
}
42-
$source = "http://yum.puppet.com/${::puppet_agent::collection}/${platform_and_version}/${::puppet_agent::arch}"
46+
if $::puppet_agent::source {
47+
$source = $::puppet_agent::source
48+
} else {
49+
$source = "http://yum.puppet.com/${::puppet_agent::collection}/${platform_and_version}/${::puppet_agent::arch}"
50+
}
4351
$_sslcacert_path = undef
4452
$_sslclientcert_path = undef
4553
$_sslclientkey_path = undef

manifests/osfamily/solaris.pp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@
1818
case $::operatingsystemmajrelease {
1919
'10': {
2020
$package_file_name = "${::puppet_agent::package_name}-${::puppet_agent::prepare::package_version}-1.${pkg_arch}.pkg.gz"
21-
$source = "puppet:///pe_packages/${pe_server_version}/${::platform_tag}/${package_file_name}"
21+
if $::puppet_agent::source {
22+
$source = $::puppet_agent::source
23+
} else {
24+
$source = "puppet:///pe_packages/${pe_server_version}/${::platform_tag}/${package_file_name}"
25+
}
2226
class { '::puppet_agent::prepare::package':
2327
source => $source,
2428
}
@@ -44,7 +48,11 @@
4448
'11': {
4549
if $::puppet_agent::manage_repo {
4650
$package_file_name = "${::puppet_agent::package_name}@${::puppet_agent::prepare::package_version},5.11-1.${pkg_arch}.p5p"
47-
$source = "puppet:///pe_packages/${pe_server_version}/${::platform_tag}/${package_file_name}"
51+
if $::puppet_agent::source {
52+
$source = $::puppet_agent::source
53+
} else {
54+
$source = "puppet:///pe_packages/${pe_server_version}/${::platform_tag}/${package_file_name}"
55+
}
4856
class { '::puppet_agent::prepare::package':
4957
source => $source,
5058
}

manifests/osfamily/suse.pp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
fail("${::operatingsystem} not supported")
66
}
77

8-
if $::puppet_agent::is_pe {
8+
if $::puppet_agent::source {
9+
$source = $::puppet_agent::source
10+
} elsif $::puppet_agent::is_pe {
911
$pe_server_version = pe_build_version()
1012
$source = "https://${::servername}:8140/packages/${pe_server_version}/${::platform_tag}"
1113
} else {

manifests/osfamily/windows.pp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
class puppet_agent::osfamily::windows{
22
assert_private()
3-
if $::puppet_agent::is_pe {
3+
if $::puppet_agent::source {
4+
$source = $::puppet_agent::source
5+
} elsif $::puppet_agent::is_pe {
46
$pe_server_version = pe_build_version()
57
$tag = $::puppet_agent::arch ? {
68
'x64' => 'windows-x86_64',

manifests/prepare/package.pp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@
1616
ensure => directory,
1717
}
1818

19-
$package_file_name = basename($source)
19+
# In order for the 'basename' function to work correctly we need to change
20+
# any \s to /s (even for windows UNC paths) so that it will correctly pull off
21+
# the filename. Since this operation is only grabbing the base filename and not
22+
# any part of the path this should be safe, since the source will simply remain
23+
# what it was before and we can still pull off the filename.
24+
$package_file_name = basename(regsubst($source, "\\\\", '/', 'G'))
2025
if $::osfamily =~ /windows/ {
2126
$local_package_file_path = windows_native_path("${::puppet_agent::params::local_packages_dir}/${package_file_name}")
2227
$mode = undef

spec/classes/puppet_agent_osfamily_aix_spec.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,30 @@
4747
}
4848
end
4949

50+
context 'with a user specified source' do
51+
let(:facts) {
52+
common_facts.merge({
53+
architecture: "PowerPC_POWER8",
54+
platform_tag: "aix-7.2-power",
55+
})
56+
}
57+
let(:params) {
58+
{
59+
package_version: '5.10.100.1',
60+
collection: 'puppet5',
61+
source: 'https://fake-source.com/aix/packages/puppet-agent-5.10.100.1-1.aix6.1.ppc.rpm',
62+
}
63+
}
64+
before(:each) do
65+
Puppet::Parser::Functions.newfunction(:pe_build_version, type: :rvalue) { |_args| '2000.0.0' }
66+
Puppet::Parser::Functions.newfunction(:pe_compiling_server_aio_build, type: :rvalue) { |_args| '1.10.100' }
67+
end
68+
69+
it {
70+
is_expected.to contain_file('/opt/puppetlabs/packages/puppet-agent-5.10.100.1-1.aix6.1.ppc.rpm').with_source('https://fake-source.com/aix/packages/puppet-agent-5.10.100.1-1.aix6.1.ppc.rpm')
71+
}
72+
end
73+
5074
context 'with a PC1 collection' do
5175
let(:params) {
5276
{

spec/classes/puppet_agent_osfamily_darwin_spec.rb

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
end
1515

1616
package_version = '1.10.100'
17-
let(:params) {{ package_version: package_version }}
1817

1918
facts = {
2019
:is_pe => true,
@@ -29,6 +28,7 @@
2928
}
3029

3130
describe 'supported environment' do
31+
let(:params) {{ package_version: package_version }}
3232
context "when running a supported OSX" do
3333
["osx-10.12-x86_64", "osx-10.13-x86_64", "osx-10.14-x86_64"].each do |tag|
3434
context "on #{tag} with no aio_version" do
@@ -66,4 +66,23 @@
6666
end
6767
end
6868
end
69+
70+
describe 'when using a user defined source' do
71+
let(:params) {
72+
{
73+
package_version: '5.10.100.1',
74+
collection: 'puppet5',
75+
source: 'https://fake-source.com/aix/packages/puppet-agent-5.10.100.1-1.osx10.13.dmg',
76+
}
77+
}
78+
let(:facts) do
79+
facts.merge({
80+
:is_pe => true,
81+
:aio_agent_version => '1.10.99',
82+
:platform_tag => 'osx-10.13-x86_64',
83+
:macosx_productversion_major => '10.13'
84+
})
85+
end
86+
it { is_expected.to contain_file("/opt/puppetlabs/packages/puppet-agent-5.10.100.1-1.osx10.13.dmg").with_source('https://fake-source.com/aix/packages/puppet-agent-5.10.100.1-1.osx10.13.dmg') }
87+
end
6988
end

0 commit comments

Comments
 (0)