diff --git a/_modules/runtest/tempest_sections/base_section.py b/_modules/runtest/tempest_sections/base_section.py
index b2c12ca..cf92b1c 100644
--- a/_modules/runtest/tempest_sections/base_section.py
+++ b/_modules/runtest/tempest_sections/base_section.py
@@ -56,7 +56,9 @@
     def authenticated_openstack_module_call(self, target, module, *args, **kwargs):
         """Calls specified openstack module from admin keystone user.
         """
-        if 'profile' not in kwargs:
+        credentials = ['profile', 'cloud_name']
+
+        if all([x not in kwargs for x in credentials]):
             auth_profile = {}
             ks = conditions.BaseRule(field='keystone.server.enabled', op='eq', val=True)
             auth_profile['connection_password'] = self.get_item_when_condition_match(
diff --git a/_modules/runtest/tempest_sections/dns.py b/_modules/runtest/tempest_sections/dns.py
index 9b18b6a..7411df0 100644
--- a/_modules/runtest/tempest_sections/dns.py
+++ b/_modules/runtest/tempest_sections/dns.py
@@ -1,5 +1,6 @@
 
 import base_section
+from runtest import conditions
 
 class Dns(base_section.BaseSection):
 
@@ -12,6 +13,7 @@
         'min_ttl',
         'nameservers',
         'query_timeout',
+        'zone_id',
     ]
 
 
@@ -42,3 +44,21 @@
     @property
     def query_timeout(self):
         pass
+
+    @property
+    def zone_id(self):
+        c = conditions.BaseRule(field='keystone.client.enabled', op='eq',
+                                val=True)
+        nodes = self.get_nodes_where_condition_match(c)
+        zone_name = self.runtest_opts.get('convert_to_uuid', {}).get(
+            'dns', {}).get('zone_id')
+
+        keystone_profile_admin = self.runtest_opts.get('keystone_profile_admin', {})
+        res = self.authenticated_openstack_module_call(
+             nodes[0], 'designatev2.zone_list', cloud_name=keystone_profile_admin)[nodes[0]]
+        zones = [n['id'] for n in res['zones'] if n['name'] == zone_name]
+
+        if len(zones) != 1:
+             raise Exception("Error getting zones: {}".format(images))
+
+        return zones[0]
diff --git a/_modules/runtest/tempest_sections/dns_feature_enabled.py b/_modules/runtest/tempest_sections/dns_feature_enabled.py
index 89b83f4..be3560b 100644
--- a/_modules/runtest/tempest_sections/dns_feature_enabled.py
+++ b/_modules/runtest/tempest_sections/dns_feature_enabled.py
@@ -59,6 +59,8 @@
         'api_v2_quotas_verify_project',
         'api_v2_root_recordsets',
         'bug_1573141_fixed',
+        'notification_nova_fixed',
+        'notification_neutron_floatingip',
     ]
 
     @property
@@ -113,3 +115,12 @@
         if verify_project is None:
             verify_project = False
         return verify_project
+
+
+    @property
+    def notification_nova_fixed(self):
+        return True
+
+    @property
+    def notification_neutron_floatingip(self):
+        return True
diff --git a/metadata/service/tempest/designate.yml b/metadata/service/tempest/designate.yml
index 1f2c733..8541f3c 100644
--- a/metadata/service/tempest/designate.yml
+++ b/metadata/service/tempest/designate.yml
@@ -15,4 +15,7 @@
               email: ${_param:runtest_tempest_designate_zone_email}
   runtest:
     tempest:
+      convert_to_uuid:
+        dns:
+          zone_id: ${_param:runtest_tempest_designate_zone_name}
       designate_zone_name: ${_param:runtest_tempest_designate_zone_name}
