Skip to content

Commit

Permalink
Fix nsg cannot add rule with purge_rules false (ansible#43699)
Browse files Browse the repository at this point in the history
  • Loading branch information
yuwzho authored and Zim Kalinowski committed Aug 8, 2018
1 parent 5088f7c commit 88a738b
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
6 changes: 6 additions & 0 deletions lib/ansible/modules/cloud/azure/azure_rm_securitygroup.py
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,7 @@

from ansible.module_utils.azure_rm_common import AzureRMModuleBase
from ansible.module_utils.six import integer_types
from ansible.module_utils._text import to_native


def validate_rule(self, rule, rule_type=None):
Expand Down Expand Up @@ -386,6 +387,11 @@ def compare_rules_change(old_list, new_list, purge_list):
new_list.append(old_rule)
else: # one rule is removed
changed = True
# Compare new list and old list is the same? here only compare names
if not changed:
new_names = [to_native(x['name']) for x in new_list]
old_names = [to_native(x['name']) for x in old_list]
changed = (set(new_names) != set(old_names))
return changed, new_list


Expand Down
24 changes: 24 additions & 0 deletions test/integration/targets/azure_rm_securitygroup/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,30 @@
- assert:
that: not output.changed

- name: Add a single one group
azure_rm_securitygroup:
resource_group: "{{ resource_group }}"
name: "{{ secgroupname }}"
tags:
testing: testing
delete: on-exit
foo: bar
rules:
- name: DenySSH
protocol: Tcp
source_address_prefix:
- 54.120.120.240
destination_port_range: 22
access: Deny
priority: 102
direction: Inbound
register: output

- assert:
that:
- output.changed
- "{{ output.state.rules | length }} == 2"

- name: Delete all security groups
azure_rm_securitygroup:
resource_group: "{{ resource_group }}"
Expand Down

0 comments on commit 88a738b

Please sign in to comment.