diff options
author | Tim Smith <tsmith@chef.io> | 2021-06-06 10:10:38 -0700 |
---|---|---|
committer | Tim Smith <tsmith@chef.io> | 2021-06-06 12:43:43 -0700 |
commit | b9d61fae055ace6489c746ca1b860d87112ef71e (patch) | |
tree | 4157e8384abc821ef928e58edf838cc4e97a3a92 | |
parent | 67f88486ac155be0e02bb2081489a829a20f8961 (diff) | |
download | chef-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.rb | 37 |
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 |