diff --git a/ci/roles/recordset/tasks/main.yml b/ci/roles/recordset/tasks/main.yml index da2cb418..f42b2126 100644 --- a/ci/roles/recordset/tasks/main.yml +++ b/ci/roles/recordset/tasks/main.yml @@ -48,7 +48,7 @@ - name: Assert recordset not changed assert: that: - - recordset is changed + - recordset is not changed - name: Assert recordset fields assert: @@ -84,13 +84,13 @@ zone: "{{ dns_zone.zone.name }}" name: "{{ recordset.recordset.name }}" state: absent - register: recordset + register: deleted_recordset - name: Verify recordset deletion assert: that: - - recordset is successful - - recordset is changed + - deleted_recordset is successful + - deleted_recordset is changed - name: Delete unexistent recordset openstack.cloud.recordset: @@ -98,12 +98,12 @@ zone: "{{ dns_zone.zone.name }}" name: "{{ recordset.recordset.name }}" state: absent - register: recordset + register: deleted_recordset - name: Verify recordset deletion assert: that: - - recordset is not changed + - deleted_recordset is not changed - name: Delete dns zone openstack.cloud.dns_zone: diff --git a/plugins/modules/recordset.py b/plugins/modules/recordset.py index cc909419..f36cee33 100644 --- a/plugins/modules/recordset.py +++ b/plugins/modules/recordset.py @@ -184,6 +184,10 @@ class DnsRecordsetModule(OpenStackModule): def _needs_update(self, params, recordset): for k in ('description', 'records', 'ttl', 'type'): + if k not in params: + continue + if k not in recordset: + return True if params[k] is not None and params[k] != recordset[k]: return True return False @@ -204,10 +208,10 @@ class DnsRecordsetModule(OpenStackModule): description = self.params['description'] ttl = self.params['ttl'] params = { - description: description, - records: records, - type: recordset_type.upper(), - ttl: ttl, + 'description': description, + 'records': records, + 'type': recordset_type.upper(), + 'ttl': ttl, } return {k: v for k, v in params.items() if v is not None}