Fix issue with multiple records in recordset

Story: #2010527
Task: #47136

Sort records in recordset so it can be compared to existing ones
and not to trigger update in case of a different order.

Change-Id: Ib5d2af56616532174c29ec2be86827ccd0a17940
This commit is contained in:
Sagi Shnaidman 2023-02-01 12:02:35 +02:00
parent 01e1742acf
commit edd4e1b2e9
3 changed files with 8 additions and 4 deletions

View File

@ -1,7 +1,7 @@
dns_zone_name: test.dns.zone.
recordset_name: testrecordset.test.dns.zone.
records: ['10.0.0.0']
updated_records: ['10.1.1.1']
records: ['10.0.0.0', '10.0.0.2']
updated_records: ['10.1.1.1', '10.0.0.2']
recordset_fields:
- action

View File

@ -29,7 +29,7 @@
- recordset is changed
- recordset["recordset"].name == recordset_name
- recordset["recordset"].zone_name == dns_zone.zone.name
- recordset["recordset"].records == records
- recordset["recordset"].records | list | sort == records | list | sort
- name: Assert recordset fields
assert:
@ -71,7 +71,7 @@
- recordset is changed
- recordset["recordset"].zone_name == dns_zone.zone.name
- recordset["recordset"].name == recordset_name
- recordset["recordset"].records == updated_records
- recordset["recordset"].records | list | sort == updated_records | list | sort
- name: Assert recordset fields
assert:

View File

@ -181,6 +181,10 @@ class DnsRecordsetModule(OpenStackModule):
module_min_sdk_version = '0.28.0'
def _needs_update(self, params, recordset):
if params['records'] is not None:
params['records'] = sorted(params['records'])
if recordset['records'] is not None:
recordset['records'] = sorted(recordset['records'])
for k in ('description', 'records', 'ttl', 'type'):
if k not in params:
continue