summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2021-06-06 10:10:38 -0700
committerTim Smith <tsmith@chef.io>2021-06-06 12:43:43 -0700
commitb9d61fae055ace6489c746ca1b860d87112ef71e (patch)
tree4157e8384abc821ef928e58edf838cc4e97a3a92
parent67f88486ac155be0e02bb2081489a829a20f8961 (diff)
downloadchef-b9d61fae055ace6489c746ca1b860d87112ef71e.tar.gz
Try handing the update action
Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r--lib/chef/resource/windows_printer_port.rb37
1 files changed, 26 insertions, 11 deletions
diff --git a/lib/chef/resource/windows_printer_port.rb b/lib/chef/resource/windows_printer_port.rb
index 5db1924629..b109528b5d 100644
--- a/lib/chef/resource/windows_printer_port.rb
+++ b/lib/chef/resource/windows_printer_port.rb
@@ -106,17 +106,32 @@ class Chef
action :create, description: "Create or update the printer port." do
converge_if_changed do
- # create the printer port using PowerShell
- powershell_exec! <<-EOH
- Set-WmiInstance -class Win32_TCPIPPrinterPort `
- -EnableAllPrivileges `
- -Argument @{ HostAddress = "#{new_resource.ipv4_address}";
- Name = "#{new_resource.port_name}";
- PortNumber = "#{new_resource.port_number}";
- Protocol = "#{new_resource.port_protocol}";
- SNMPEnabled = "$#{new_resource.snmp_enabled}";
- }
- EOH
+ if current_resource
+ # update the printer port using PowerShell
+ powershell_exec! <<-EOH
+ Get-WmiObject Win32_TCPIPPrinterPort -EnableAllPrivileges -filter "Name='#{new_resource.port_name}'" |
+ ForEach-Object{
+ $_.HostAddress='#{new_resource.ipv4_address}'
+ $_.PortNumber='#{new_resource.port_number}'
+ $_.Protocol='#{new_resource.port_protocol}'
+ $_.SNMPEnabled='$#{new_resource.snmp_enabled}'
+ $_.Put()
+ }
+ EOH
+ else
+ # create the printer port using PowerShell
+ powershell_exec! <<-EOH
+ Set-WmiInstance -class Win32_TCPIPPrinterPort `
+ -EnableAllPrivileges `
+ -Argument @{ HostAddress = "#{new_resource.ipv4_address}";
+ Name = "#{new_resource.port_name}";
+ PortNumber = "#{new_resource.port_number}";
+ Protocol = "#{new_resource.port_protocol}";
+ SNMPEnabled = "$#{new_resource.snmp_enabled}";
+ }
+ EOH
+ end
+
end
end