summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Olof Gunnar Andersson <eandersson@blizzard.com>2023-04-30 17:29:38 -0700
committerErik Olof Gunnar Andersson <eandersson@blizzard.com>2023-04-30 20:32:16 -0700
commit118294ac1443507ad8ac9a18d99102f02850c2b4 (patch)
tree7921205a89ffad1a0cc96bf000a3852c8df87dd5
parentae3bb0ddf359cd0a0d7b5b4705e331d104c6fce0 (diff)
downloaddesignate-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.py6
-rw-r--r--designate/tests/test_notification_handler/test_base.py88
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))