Skip to content

Commit 19d3779

Browse files
committed
adjust type to account for deferred
1 parent 506e29e commit 19d3779

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

lib/puppet/type/dsc.rb

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# frozen_string_literal: true
22

33
require 'pathname'
4+
require 'puppet/pops/evaluator/deferred_resolver' # ← add: resolver API
45

56
Puppet::Type.newtype(:dsc) do
67
desc <<-DOC
@@ -17,6 +18,7 @@ module => 'PSDesiredStateConfiguration',
1718
}
1819
}
1920
DOC
21+
2022
require Pathname.new(__FILE__).dirname + '../../' + 'puppet/type/base_dsc_lite'
2123
require Pathname.new(__FILE__).dirname + '../../puppet_x/puppetlabs/dsc_lite/dsc_type_helpers'
2224

@@ -105,7 +107,16 @@ def change_to_s(currentvalue, newvalue)
105107
end
106108

107109
munge do |value|
108-
PuppetX::DscLite::TypeHelpers.munge_sensitive_hash(value)
110+
# If the compiler is present (compile-time), resolve any direct/nested Deferred values.
111+
compiler = Puppet.lookup(:compiler) { nil }
112+
resolved = if compiler
113+
Puppet::Pops::Evaluator::DeferredResolver.resolve(value, compiler)
114+
else
115+
value
116+
end
117+
118+
# Preserve your existing sensitive handling on the resolved hash
119+
PuppetX::DscLite::TypeHelpers.munge_sensitive_hash(resolved)
109120
end
110121
end
111122

0 commit comments

Comments
 (0)