diff --git a/lib/ansible/modules/cloud/azure/azure_rm_subnet.py b/lib/ansible/modules/cloud/azure/azure_rm_subnet.py index 6b8a407923a..d7e375b6092 100644 --- a/lib/ansible/modules/cloud/azure/azure_rm_subnet.py +++ b/lib/ansible/modules/cloud/azure/azure_rm_subnet.py @@ -254,7 +254,7 @@ class AzureRMSubnet(AzureRMModuleBase): resource_guid=nsg.resource_guid) self.results['state'] = self.create_or_update_subnet(subnet) - elif self.state == 'absent': + elif self.state == 'absent' and changed: # delete subnet self.delete_subnet() # the delete does not actually return anything. if no exception, then we'll assume diff --git a/test/integration/targets/azure_rm_subnet/tasks/main.yml b/test/integration/targets/azure_rm_subnet/tasks/main.yml index 9a32ee37661..a29df1fdd86 100644 --- a/test/integration/targets/azure_rm_subnet/tasks/main.yml +++ b/test/integration/targets/azure_rm_subnet/tasks/main.yml @@ -82,6 +82,17 @@ virtual_network_name: My_Virtual_Network resource_group: "{{ resource_group }}" +- name: Remove subnet (idempotent) + azure_rm_subnet: + state: absent + name: foobar + virtual_network_name: My_Virtual_Network + resource_group: "{{ resource_group }}" + register: output + +- assert: + that: not output.changed + - name: Remove security group azure_rm_securitygroup: resource_group: "{{ resource_group }}"