Skip to content

Commit 775c5da

Browse files
committed
fix
1 parent b5508e9 commit 775c5da

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

lib/puppet/provider/base_dsc_lite/invoke_dsc_resource.ps1.erb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff 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

lib/puppet/provider/base_dsc_lite/invoke_generic_dsc_resource.ps1.erb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff 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) %>

0 commit comments

Comments
 (0)