Skip to content

Commit bc213d2

Browse files
committed
patch
1 parent 810341f commit bc213d2

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

lib/puppet_x/puppetlabs/dsc_lite/powershell_hash_formatter.rb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class PowerShellHashFormatter
1515
# @return [Object] Formatted value.
1616
def self.format(dsc_value)
1717
resolved = resolve_deferred_deep(dsc_value)
18+
1819
if resolved.instance_of?(::Hash)
1920
format_hash(resolved)
2021
elsif resolved.instance_of?(::Puppet::Pops::Types::PSensitiveType::Sensitive)
@@ -24,12 +25,13 @@ def self.format(dsc_value)
2425
end
2526
end
2627

27-
# --- NEW: Resolve any DeferredValue recursively before formatting ---
28+
# --- Resolve any DeferredValue recursively before formatting ---
2829
def self.resolve_deferred_deep(obj)
2930
case obj
3031
when Puppet::Pops::Evaluator::DeferredValue
3132
compiler = Puppet.lookup(:compiler) { nil }
3233
raise Puppet::Error, 'DSC_lite: DeferredValue encountered but no compiler is available to resolve it' unless compiler
34+
3335
Puppet::Pops::Evaluator::DeferredResolver.resolve(obj, compiler)
3436
when Puppet::Pops::Types::PSensitiveType::Sensitive
3537
inner = resolve_deferred_deep(obj.unwrap)
@@ -44,7 +46,7 @@ def self.resolve_deferred_deep(obj)
4446
obj
4547
end
4648
end
47-
# -------------------------------------------------------------------
49+
# ----------------------------------------------------------------
4850

4951
private_class_method def self.format_hash(value)
5052
if value.key?('dsc_type')
@@ -68,7 +70,7 @@ def self.resolve_deferred_deep(obj)
6870
properties = [value['dsc_properties']].flatten
6971

7072
output = properties.map do |p|
71-
'(New-C_to_string(p)})'
73+
"(New-CimInstance -ClassName '#{type}' -ClientOnly -Property #{format_hash_to_string(p)})"
7274
end
7375

7476
if value['dsc_type'].end_with?('[]')

0 commit comments

Comments
 (0)