diff options
author | Tim Smith <tsmith@chef.io> | 2020-03-18 08:49:42 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-18 08:49:42 -0700 |
commit | 8459c5a06b5168e17680fce3f29a485e1c16f904 (patch) | |
tree | dbba3f839ce5b1257f2a98f637b9142c15cd8a9d | |
parent | da6c80ea71906aa73c605c03bfd8d0b0092490e3 (diff) | |
parent | 1b0f23f759da51a4b31ed761b83af73795967d50 (diff) | |
download | chef-8459c5a06b5168e17680fce3f29a485e1c16f904.tar.gz |
Merge pull request #8729 from pschaumburg/ps/windows_firewall_rule-group
add group to windows_firewall_rule resource
-rw-r--r-- | lib/chef/resource/windows_firewall_rule.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/chef/resource/windows_firewall_rule.rb b/lib/chef/resource/windows_firewall_rule.rb index a040bdb06b..42b3c031f6 100644 --- a/lib/chef/resource/windows_firewall_rule.rb +++ b/lib/chef/resource/windows_firewall_rule.rb @@ -37,6 +37,10 @@ class Chef default: "Firewall rule", description: "The description to assign to the firewall rule." + property :group, String, + description: "Specifies that only matching firewall rules of the indicated group association are copied.", + introduced: "15.9" + property :local_address, String, description: "The local address the firewall rule applies to." @@ -106,6 +110,7 @@ class Chef else state = Chef::JSONCompat.from_json(output.stdout) end + group state["group"] local_address state["local_address"] local_port Array(state["local_port"]).sort remote_address state["remote_address"] @@ -129,6 +134,11 @@ class Chef cmd = firewall_command("Set") powershell_out!(cmd) end + converge_if_changed :group do + powershell_out!("Remove-NetFirewallRule -Name '#{new_resource.rule_name}'") + cmd = firewall_command("New") + powershell_out!(cmd) + end else converge_by("create firewall rule #{new_resource.rule_name}") do cmd = firewall_command("New") @@ -155,6 +165,7 @@ class Chef def firewall_command(cmdlet_type) cmd = "#{cmdlet_type}-NetFirewallRule -Name '#{new_resource.rule_name}'" cmd << " -DisplayName '#{new_resource.rule_name}'" if cmdlet_type == "New" + cmd << " -Group '#{new_resource.group}'" if new_resource.group && cmdlet_type == "New" cmd << " -Description '#{new_resource.description}'" if new_resource.description cmd << " -LocalAddress '#{new_resource.local_address}'" if new_resource.local_address cmd << " -LocalPort '#{new_resource.local_port.join("', '")}'" if new_resource.local_port @@ -189,6 +200,7 @@ class Chef ([PSCustomObject]@{ rule_name = $rule.Name description = $rule.Description + group = $rule.Group local_address = $addressFilter.LocalAddress local_port = $portFilter.LocalPort remote_address = $addressFilter.RemoteAddress |