From edd4e1b2e944370bc22dcfd75f8e41d886811fec Mon Sep 17 00:00:00 2001 From: Sagi Shnaidman Date: Wed, 1 Feb 2023 12:02:35 +0200 Subject: [PATCH] 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 --- ci/roles/recordset/defaults/main.yml | 4 ++-- ci/roles/recordset/tasks/main.yml | 4 ++-- plugins/modules/recordset.py | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ci/roles/recordset/defaults/main.yml b/ci/roles/recordset/defaults/main.yml index d09ccaa7..cf05d412 100644 --- a/ci/roles/recordset/defaults/main.yml +++ b/ci/roles/recordset/defaults/main.yml @@ -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 diff --git a/ci/roles/recordset/tasks/main.yml b/ci/roles/recordset/tasks/main.yml index f42b2126..32925d5f 100644 --- a/ci/roles/recordset/tasks/main.yml +++ b/ci/roles/recordset/tasks/main.yml @@ -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: diff --git a/plugins/modules/recordset.py b/plugins/modules/recordset.py index 34db0e22..9f86c459 100644 --- a/plugins/modules/recordset.py +++ b/plugins/modules/recordset.py @@ -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