File tree Expand file tree Collapse file tree 1 file changed +12
-1
lines changed
lib/puppet/provider/base_dsc_lite Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Original file line number Diff line number Diff line change 33require 'pathname'
44require 'json'
55require_relative '../../../puppet_x/puppetlabs/dsc_lite/powershell_hash_formatter'
6+ require 'puppet/pops/evaluator/deferred_resolver'
67
78Puppet ::Type . type ( :base_dsc_lite ) . provide ( :powershell ) do
89 confine feature : :pwshlib
3132 Puppet (including 3.x), or to a Puppet version newer than 3.x.
3233 UPGRADE
3334
35+ def self . resolve_deferred ( value )
36+ # Resolve any direct/nested Deferred values using the current compiler scope.
37+ # If not in an apply context (compiler missing), just return as-is.
38+ compiler = Puppet . lookup ( :compiler ) { nil }
39+ return value unless compiler
40+ Puppet ::Pops ::Evaluator ::DeferredResolver . resolve ( value , compiler )
41+ end
42+
3443 def self . upgrade_message
3544 Puppet . warning DSC_LITE_MODULE_PUPPET_UPGRADE_MSG unless @upgrade_warning_issued
3645 @upgrade_warning_issued = true
@@ -139,7 +148,9 @@ def notify_reboot_pending
139148 end
140149
141150 def self . format_dsc_lite ( dsc_value )
142- PuppetX ::PuppetLabs ::DscLite ::PowerShellHashFormatter . format ( dsc_value )
151+ # NEW: ensure no DeferredValue survives into the formatter/serializer
152+ resolved = resolve_deferred ( dsc_value )
153+ PuppetX ::PuppetLabs ::DscLite ::PowerShellHashFormatter . format ( resolved )
143154 end
144155
145156 def self . escape_quotes ( text )
You can’t perform that action at this time.
0 commit comments