Skip to content

Commit 8cb301c

Browse files
authored
Merge pull request #206 from puppetlabs/upgrade-fix
Use string keys for hash, instead of Target
2 parents eb6f6d2 + 0a5ac90 commit 8cb301c

File tree

3 files changed

+22
-13
lines changed

3 files changed

+22
-13
lines changed

functions/certname.pp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
function peadm::certname(
2-
Variant[Target, Array[Target,0,1], String] $target,
2+
Variant[Target,
3+
String,
4+
Undef,
5+
Array[Target,1,1],
6+
Array[String,1,1],
7+
Array[Undef,1,1],
8+
Array[Any,0,0]] $target,
39
) >> Variant[String, Undef] {
410
case $target {
511
Target: {
@@ -14,12 +20,15 @@ function peadm::certname(
1420
undef => $target[0].name
1521
}
1622
}
17-
Array[Target,0,0]: {
18-
undef
19-
}
2023
String: {
2124
$target
2225
}
26+
Array[String,1,1]: {
27+
$target[0]
28+
}
29+
Undef, Array[Undef,1,1], Array[Any,0,0]: {
30+
undef
31+
}
2332
default: {
2433
fail('Unexpected input type to peadm::certname function')
2534
}

plans/upgrade.pp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181

8282
# Gather certificate extension information from all systems
8383
$cert_extensions = run_task('peadm::cert_data', $all_targets).reduce({}) |$memo,$result| {
84-
$memo + { $result.target => $result['extensions'] }
84+
$memo + { $result.target.peadm::certname => $result['extensions'] }
8585
}
8686

8787
$convert_targets = $cert_extensions.filter |$name,$exts| {
@@ -107,13 +107,13 @@
107107

108108
# Determine which compilers are associated with which DR group
109109
$compiler_m1_targets = $compiler_targets.filter |$target| {
110-
($cert_extensions.dig($target, peadm::oid('peadm_availability_group'))
111-
== $cert_extensions.dig($primary_target[0], peadm::oid('peadm_availability_group')))
110+
($cert_extensions.dig($target.peadm::certname, peadm::oid('peadm_availability_group'))
111+
== $cert_extensions.dig($primary_target[0].peadm::certname, peadm::oid('peadm_availability_group')))
112112
}
113113

114114
$compiler_m2_targets = $compiler_targets.filter |$target| {
115-
($cert_extensions.dig($target, peadm::oid('peadm_availability_group'))
116-
== $cert_extensions.dig($replica_target[0], peadm::oid('peadm_availability_group')))
115+
($cert_extensions.dig($target.peadm::certname, peadm::oid('peadm_availability_group'))
116+
== $cert_extensions.dig($replica_target[0].peadm::certname, peadm::oid('peadm_availability_group')))
117117
}
118118

119119
$primary_target.peadm::fail_on_transport('pcp')

spec/functions/certname_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
require 'spec_helper'
44

5-
# TODO: test the error case, however due to an issue with boltspec
6-
# and functions we cannot do this right now.
7-
# https://github.com/puppetlabs/bolt/issues/1688
85
describe 'peadm::certname' do
6+
include BoltSpec::BoltContext
7+
98
let(:target) do
109
['test-vm.puppet.vm']
1110
end
1211

13-
xit { is_expected.to run.with_params(target).and_return('some_value') }
12+
# TODO: this *should* work, but is failing in TravisCI. Not sure why. It works on my laptop...
13+
xit { in_bolt_context { is_expected.to run.with_params(target).and_return('test-vm.puppet.vm') } }
1414
end

0 commit comments

Comments
 (0)