File tree Expand file tree Collapse file tree 2 files changed +15
-5
lines changed
lib/puppet/provider/base_dsc_lite Expand file tree Collapse file tree 2 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -28,20 +28,21 @@ $response = @{
2828}
2929
3030$invokeParams = @{
31- Name = '<%= resource.dscmeta_resource_friendly_name %> '
32- Method = '<%= dsc_invoke_method %> '
31+ # Route via provider helper so last-chance Deferred resolution can run on agent
32+ Name = <%= provider.format_for_ps(resource.dscmeta_resource_friendly_name) %>
33+ Method = <%= provider.format_for_ps(dsc_invoke_method) %>
3334 Property = @{
3435<% provider.dsc_parameters.each do |p| -%>
3536 <%- name = p.name.to_s.gsub(/^dsc_/,'')
3637 if name == 'ensure' && dsc_invoke_method == 'test'
3738 value = "\'#{resource.parameters[:ensure].default.to_s}\'"
3839 elsif p.mof_type == 'MSFT_Credential'
39- # Route via provider helper so last-chance Deferred resolution can run on agent
40+ # Only the inner hash is formatted; then piped into the helper to create PSCredential
4041 value = "[PSCustomObject]#{provider.format_for_ps(p.value)} | new-pscredential"
4142 elsif p.mof_is_embedded? && p.mof_type != 'MSFT_KeyValuePair'
4243 vals = p.value.is_a?(Hash) ? [p.value] : p.value
4344 vals = vals.collect do |v|
44- # Route embedded instance Property hashtable via provider formatter (Deferred-safe)
45+ # Ensure the embedded instance property table is formatted via provider helper
4546 "(New-CimInstance -ClassName '#{p.mof_type.gsub('[]','')}' -ClientOnly -Property #{provider.format_for_ps(v)})"
4647 end
4748 # Ensure that we pass a single CimInstance or array correctly based on MOF schema definition
Original file line number Diff line number Diff line change @@ -24,7 +24,16 @@ $response = @{
2424$invokeParams = @{
2525 # Route values through provider helper so last-chance Deferred resolution can run on agent
2626 Name = <%= provider.format_for_ps(resource.parameters[:resource_name].value) %>
27- ModuleName = <%= provider.format_for_ps(resource.parameters[:module].value) %>
27+
28+ ModuleName = <% if resource.parameters[:module].value.is_a?(Hash) -%>
29+ @{
30+ ModuleName = <%= provider.format_for_ps(resource.parameters[:module].value['name']) %>
31+ ModuleVersion = <%= provider.format_for_ps(resource.parameters[:module].value['version']) %>
32+ }
33+ <% else -%>
34+ <%= provider.format_for_ps(resource.parameters[:module].value) %>
35+ <% end -%>
36+
2837 Method = <%= provider.format_for_ps(dsc_invoke_method) %>
2938 Property = <% provider.dsc_property_param.each do |p| -%>
3039<%= provider.format_for_ps(p.value) %>
You can’t perform that action at this time.
0 commit comments