diff --git a/heat/engine/resources/openstack/designate/domain.py b/heat/engine/resources/openstack/designate/domain.py index 36244e4684..113091c6ff 100644 --- a/heat/engine/resources/openstack/designate/domain.py +++ b/heat/engine/resources/openstack/designate/domain.py @@ -25,6 +25,8 @@ class DesignateDomain(resource.Resource): support_status = support.SupportStatus( version='5.0.0') + entity = 'domains' + PROPERTIES = ( NAME, TTL, DESCRIPTION, EMAIL ) = ( @@ -117,6 +119,11 @@ class DesignateDomain(resource.Resource): domain = self.client().domains.get(self.resource_id) return domain.serial + # FIXME(kanagaraj-manickam) Remove this method once designate defect + # 1485552 is fixed. + def _show_resource(self): + return dict(self.client().domains.get(self.resource_id).items()) + def resource_mapping(): return { diff --git a/heat/engine/resources/openstack/designate/record.py b/heat/engine/resources/openstack/designate/record.py index 96a7403d01..df83790250 100644 --- a/heat/engine/resources/openstack/designate/record.py +++ b/heat/engine/resources/openstack/designate/record.py @@ -24,6 +24,8 @@ class DesignateRecord(resource.Resource): support_status = support.SupportStatus( version='5.0.0') + entity = 'records' + PROPERTIES = ( NAME, TTL, DESCRIPTION, TYPE, DATA, PRIORITY, DOMAIN ) = ( @@ -153,6 +155,11 @@ class DesignateRecord(resource.Resource): except Exception as ex: self.client_plugin().ignore_not_found(ex) + # FIXME(kanagaraj-manickam) Remove this method once designate defect + # 1485552 is fixed. + def _show_resource(self): + return dict(self.client().records.get(self.resource_id).items()) + def resource_mapping(): return { diff --git a/heat/tests/openstack/designate/test_domain.py b/heat/tests/openstack/designate/test_domain.py index 8c0147fc5b..8062dc51c8 100644 --- a/heat/tests/openstack/designate/test_domain.py +++ b/heat/tests/openstack/designate/test_domain.py @@ -14,6 +14,7 @@ import mock from designateclient import exceptions as designate_exception +from designateclient.v1 import domains from heat.engine.resources.openstack.designate import domain from heat.engine import stack @@ -162,3 +163,19 @@ class DesignateDomainTest(common.HeatTestCase): self.assertEqual(1, len(mapping)) self.assertEqual(domain.DesignateDomain, mapping[RESOURCE_TYPE]) self.assertIsInstance(self.test_resource, domain.DesignateDomain) + + def test_resource_show_resource(self): + args = dict( + name='test', + description='updated description', + ttl=4200, + email='xyz@test-domain.com' + ) + + rsc = domains.Domain(args) + mock_notification_get = self.test_client.domains.get + mock_notification_get.return_value = rsc + + self.assertEqual(args, + self.test_resource._show_resource(), + 'Failed to show resource') diff --git a/heat/tests/openstack/designate/test_record.py b/heat/tests/openstack/designate/test_record.py index 14edea446a..01feb6c34d 100644 --- a/heat/tests/openstack/designate/test_record.py +++ b/heat/tests/openstack/designate/test_record.py @@ -14,6 +14,7 @@ import mock from designateclient import exceptions as designate_exception +from designateclient.v1 import records from heat.engine.resources.openstack.designate import record from heat.engine import stack @@ -230,3 +231,20 @@ class DesignateRecordTest(common.HeatTestCase): self.assertEqual(1, len(mapping)) self.assertEqual(record.DesignateRecord, mapping[RESOURCE_TYPE]) self.assertIsInstance(self.test_resource, record.DesignateRecord) + + def test_resource_show_resource(self): + args = dict( + name='test-record.com', + description='Test record', + ttl=3600, + type='A', + priority=1, + data='1.1.1.1' + ) + rsc = records.Record(args) + mock_notification_get = self.test_client.records.get + mock_notification_get.return_value = rsc + + self.assertEqual(args, + self.test_resource._show_resource(), + 'Failed to show resource')