diff options
author | Erik Olof Gunnar Andersson <eandersson@blizzard.com> | 2023-04-30 17:29:38 -0700 |
---|---|---|
committer | Erik Olof Gunnar Andersson <eandersson@blizzard.com> | 2023-04-30 20:32:16 -0700 |
commit | 118294ac1443507ad8ac9a18d99102f02850c2b4 (patch) | |
tree | 7921205a89ffad1a0cc96bf000a3852c8df87dd5 | |
parent | ae3bb0ddf359cd0a0d7b5b4705e331d104c6fce0 (diff) | |
download | designate-118294ac1443507ad8ac9a18d99102f02850c2b4.tar.gz |
Fix invalid fallback value for BaseAddressHandler
Domain no longer exists and this patch replaces domain
with the correct value zone.
Change-Id: I4cd88d30882d8966acc811ccb100aa1a1df89a3e
-rw-r--r-- | designate/notification_handler/base.py | 6 | ||||
-rw-r--r-- | designate/tests/test_notification_handler/test_base.py | 88 |
2 files changed, 89 insertions, 5 deletions
diff --git a/designate/notification_handler/base.py b/designate/notification_handler/base.py index 8a270eb3..159eb786 100644 --- a/designate/notification_handler/base.py +++ b/designate/notification_handler/base.py @@ -144,8 +144,8 @@ class NotificationHandler(ExtensionPlugin): class BaseAddressHandler(NotificationHandler): - default_formatv4 = ('%(hostname)s.%(domain)s',) - default_formatv6 = ('%(hostname)s.%(domain)s',) + default_formatv4 = ('%(hostname)s.%(zone)s',) + default_formatv6 = ('%(hostname)s.%(zone)s',) def _get_ip_data(self, addr_dict): ip = addr_dict['address'] @@ -193,7 +193,7 @@ class BaseAddressHandler(NotificationHandler): """ LOG.debug('Using Zone ID: %s', zone_id) zone = self.get_zone(zone_id) - LOG.debug('Domain: %r', zone) + LOG.debug('Zone: %r', zone) data = extra.copy() LOG.debug('Event data: %s', data) diff --git a/designate/tests/test_notification_handler/test_base.py b/designate/tests/test_notification_handler/test_base.py index f1a10dab..c35d4304 100644 --- a/designate/tests/test_notification_handler/test_base.py +++ b/designate/tests/test_notification_handler/test_base.py @@ -13,6 +13,8 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. +from unittest import expectedFailure + from designate.notification_handler import base from designate.tests import TestCase @@ -24,6 +26,8 @@ class InheritFormBaseAddressHandler(base.BaseAddressHandler): we need to create something to inherit from it so we have something instantiatable. """ + __plugin_name__ = 'nova_fixed' + def get_event_types(self): pass @@ -35,11 +39,91 @@ class InheritFormBaseAddressHandler(base.BaseAddressHandler): class BaseAddressHandlerTest(TestCase): + def setUp(self): + super(BaseAddressHandlerTest, self).setUp() + + self.zone = self.create_zone() + self.zone_id = self.zone['id'] + self.base = InheritFormBaseAddressHandler() + def test_get_ip_data_support_v6(self): addr_dict = {'address': '1762::B03:1:AF18', 'version': 6} - baseaddresshandler = InheritFormBaseAddressHandler() - observe = baseaddresshandler._get_ip_data(addr_dict) + observe = self.base._get_ip_data(addr_dict) expect = {'octet1': 'B03', 'octet0': '1762', 'octet3': 'AF18', 'octet2': '1', 'ip_version': 6, 'ip_address': '1762--B03-1-AF18'} self.assertEqual(observe, expect) + + def test_create_record(self): + self.base._create([ + {'address': '172.16.0.15', 'version': 4}], + {'hostname': 'test01'}, + self.zone_id, + resource_id='1fb1feba-2ea4-4925-ba2c-9a3706348a70', + resource_type='instance' + ) + + criterion = { + 'zone_id': self.zone_id, + 'type': 'A', + } + + recordsets = self.central_service.find_recordsets( + self.admin_context, criterion) + + self.assertEqual('test01.example.com.', recordsets[0].name) + self.assertEqual('A', recordsets[0].type) + + def test_delete_record(self): + self.base._create([ + {'address': '172.16.0.15', 'version': 4}], + {'hostname': 'test01'}, + self.zone_id, + resource_id='6d6deb76-e4e7-492e-8f9d-4d906653c511', + resource_type='instance' + ) + + criterion = { + 'zone_id': self.zone_id, + 'type': 'A', + } + + recordsets = self.central_service.find_recordsets( + self.admin_context, criterion) + + self.assertEqual('test01.example.com.', recordsets[0].name) + self.assertEqual('A', recordsets[0].type) + + self.base._delete(self.zone_id, '6d6deb76-e4e7-492e-8f9d-4d906653c511') + + recordsets = self.central_service.find_recordsets( + self.admin_context, criterion) + self.assertEqual(0, len(recordsets)) + + @expectedFailure + def test_delete_record_with_no_zone_id(self): + self.base._create([ + {'address': '172.16.0.15', 'version': 4}], + {'hostname': 'test01'}, + self.zone_id, + resource_id='6d6deb76-e4e7-492e-8f9d-4d906653c511', + resource_type='instance' + ) + + criterion = { + 'zone_id': self.zone_id, + 'type': 'A', + } + + recordsets = self.central_service.find_recordsets( + self.admin_context, criterion) + + self.assertEqual('test01.example.com.', recordsets[0].name) + self.assertEqual('A', recordsets[0].type) + + # NOTE(eandersson): _delete should succeed even without a zone_id. + self.base._delete(None, '6d6deb76-e4e7-492e-8f9d-4d906653c511') + + recordsets = self.central_service.find_recordsets( + self.admin_context, criterion) + self.assertEqual(0, len(recordsets)) |