azure_rm_common: only remove tags from new_tags if append_tags is not… (#24040)
This commit is contained in:
parent
babfe45852
commit
ff6d4e6bf4
5 changed files with 20 additions and 14 deletions
|
@ -464,17 +464,20 @@ class AzureRMModuleBase(object):
|
|||
:return: bool, dict
|
||||
'''
|
||||
new_tags = copy.copy(tags) if isinstance(tags, dict) else dict()
|
||||
param_tags = self.module.params.get('tags') if isinstance(self.module.params.get('tags'), dict) else dict()
|
||||
append_tags = self.module.params.get('append_tags') if self.module.params.get('append_tags') is not None else True
|
||||
changed = False
|
||||
if isinstance(self.module.params.get('tags'), dict):
|
||||
for key, value in self.module.params['tags'].items():
|
||||
if not new_tags.get(key) or new_tags[key] != value:
|
||||
# check add or update
|
||||
for key, value in param_tags.items():
|
||||
if not new_tags.get(key) or new_tags[key] != value:
|
||||
changed = True
|
||||
new_tags[key] = value
|
||||
# check remove
|
||||
if not append_tags:
|
||||
for key, value in tags.items():
|
||||
if not param_tags.get(key):
|
||||
new_tags.pop(key)
|
||||
changed = True
|
||||
new_tags[key] = value
|
||||
if isinstance(tags, dict):
|
||||
for key, value in tags.items():
|
||||
if not self.module.params['tags'].get(key):
|
||||
new_tags.pop(key)
|
||||
changed = True
|
||||
return changed, new_tags
|
||||
|
||||
def has_tags(self, obj_tags, tag_list):
|
||||
|
|
|
@ -33,9 +33,6 @@
|
|||
name: "pip{{ rpfx }}"
|
||||
allocation_method: Static
|
||||
domain_name: "{{ domain_name }}"
|
||||
tags:
|
||||
testing: testing
|
||||
delete: on-exit
|
||||
register: output
|
||||
|
||||
- assert:
|
||||
|
@ -45,8 +42,8 @@
|
|||
azure_rm_publicipaddress:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "pip{{ rpfx }}"
|
||||
append_tags: yes
|
||||
tags:
|
||||
testing: testing
|
||||
delete: never
|
||||
foo: bar
|
||||
register: output
|
||||
|
@ -70,7 +67,7 @@
|
|||
azure_rm_publicipaddress:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "pip{{ rpfx }}"
|
||||
tags: {}
|
||||
append_tags: no
|
||||
register: output
|
||||
|
||||
- assert:
|
||||
|
|
|
@ -94,6 +94,7 @@
|
|||
testing: testing
|
||||
delete: never
|
||||
baz: bar
|
||||
append_tags: false
|
||||
register: output
|
||||
|
||||
- assert:
|
||||
|
@ -105,6 +106,7 @@
|
|||
azure_rm_securitygroup:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ secgroupname }}"
|
||||
append_tags: false
|
||||
tags:
|
||||
testing: testing
|
||||
delete: on-exit
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ storage_account }}"
|
||||
account_type: Standard_LRS
|
||||
append_tags: no
|
||||
tags:
|
||||
test: test
|
||||
galaxy: galaxy
|
||||
|
@ -72,6 +73,7 @@
|
|||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ storage_account }}"
|
||||
append_tags: no
|
||||
tags:
|
||||
testing: testing
|
||||
delete: never
|
||||
|
@ -87,6 +89,7 @@
|
|||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ storage_account }}"
|
||||
append_tags: no
|
||||
tags:
|
||||
testing: testing
|
||||
delete: never
|
||||
|
|
|
@ -102,6 +102,7 @@
|
|||
- name: Purge tags
|
||||
azure_rm_virtualnetwork:
|
||||
name: "{{ vnetname }}"
|
||||
append_tags: no
|
||||
tags:
|
||||
testing: 'always'
|
||||
resource_group: "{{ resource_group }}"
|
||||
|
|
Loading…
Reference in a new issue