diff --git a/.zuul.yaml b/.zuul.yaml
index 0533692..64c99f4 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -1,5 +1,4 @@
 - project:
-    name: openstack/designate-tempest-plugin
     templates:
       - designate-devstack-jobs
     check:
diff --git a/designate_tempest_plugin/config.py b/designate_tempest_plugin/config.py
index 565d5c3..fea31f2 100644
--- a/designate_tempest_plugin/config.py
+++ b/designate_tempest_plugin/config.py
@@ -49,6 +49,9 @@
     cfg.IntOpt('query_timeout',
                default=1,
                help="The timeout on a single dns query to a nameserver"),
+    cfg.StrOpt('zone_id',
+               help="The target zone to test the dns recordsets "
+                    "If it is not specified, a new zone will be created ")
 
 ]
 
diff --git a/designate_tempest_plugin/tests/api/admin/test_quotas.py b/designate_tempest_plugin/tests/api/admin/test_quotas.py
index bcf2e36..c25ad0a 100644
--- a/designate_tempest_plugin/tests/api/admin/test_quotas.py
+++ b/designate_tempest_plugin/tests/api/admin/test_quotas.py
@@ -46,7 +46,7 @@
     def setup_clients(cls):
         super(QuotasAdminTest, cls).setup_clients()
 
-        cls.admin_client = cls.os_adm.quotas_client
+        cls.admin_client = cls.os_admin.quotas_client
 
     @decorators.idempotent_id('ed42f367-e5ba-40d7-a08d-366ad787d21c')
     def test_show_quotas(self):
diff --git a/designate_tempest_plugin/tests/api/v1/test_domains.py b/designate_tempest_plugin/tests/api/v1/test_domains.py
index 487e837..31d4bbd 100644
--- a/designate_tempest_plugin/tests/api/v1/test_domains.py
+++ b/designate_tempest_plugin/tests/api/v1/test_domains.py
@@ -33,7 +33,7 @@
     def setup_clients(cls):
         super(DnsDomainsTest, cls).setup_clients()
 
-        cls.client = cls.os.domains_client
+        cls.client = cls.os_primary.domains_client
 
     @classmethod
     def resource_setup(cls):
diff --git a/designate_tempest_plugin/tests/api/v1/test_records.py b/designate_tempest_plugin/tests/api/v1/test_records.py
index 7c8522e..e678c3f 100644
--- a/designate_tempest_plugin/tests/api/v1/test_records.py
+++ b/designate_tempest_plugin/tests/api/v1/test_records.py
@@ -32,7 +32,7 @@
     def setup_clients(cls):
         super(RecordsTest, cls).setup_clients()
 
-        cls.client = cls.os.records_client
+        cls.client = cls.os_primary.records_client
 
     @classmethod
     def resource_setup(cls):
@@ -42,7 +42,8 @@
         cls.setup_records = list()
         name = data_utils.rand_name('domain') + '.com.'
         email = data_utils.rand_name('dns') + '@testmail.com'
-        _, cls.domain = cls.os.domains_client.create_domain(name, email)
+        _, cls.domain = cls.os_primary.domains_client.create_domain(
+            name, email)
         # Creates a record with type as A
         r_name = 'www.' + name
         data1 = "192.0.2.3"
@@ -61,7 +62,7 @@
     def resource_cleanup(cls):
         for record in cls.setup_records:
             cls.client.delete_record(cls.domain['id'], record['id'])
-        cls.os.domains_client.delete_domain(cls.domain['id'])
+        cls.os_primary.domains_client.delete_domain(cls.domain['id'])
         super(RecordsTest, cls).resource_cleanup()
 
     def _delete_record(self, domain_id, record_id):
diff --git a/designate_tempest_plugin/tests/api/v1/test_servers.py b/designate_tempest_plugin/tests/api/v1/test_servers.py
index 0d227e1..9092b58 100644
--- a/designate_tempest_plugin/tests/api/v1/test_servers.py
+++ b/designate_tempest_plugin/tests/api/v1/test_servers.py
@@ -42,7 +42,7 @@
     def setup_clients(cls):
         super(ServersAdminTest, cls).setup_clients()
 
-        cls.client = cls.os_adm.servers_client
+        cls.client = cls.os_admin.servers_client
 
     @classmethod
     def skip_checks(cls):
diff --git a/designate_tempest_plugin/tests/api/v2/test_blacklists.py b/designate_tempest_plugin/tests/api/v2/test_blacklists.py
index 3ad5e0b..65b6dff 100644
--- a/designate_tempest_plugin/tests/api/v2/test_blacklists.py
+++ b/designate_tempest_plugin/tests/api/v2/test_blacklists.py
@@ -39,7 +39,7 @@
     @classmethod
     def setup_clients(cls):
         super(BlacklistsAdminTest, cls).setup_clients()
-        cls.admin_client = cls.os_adm.blacklists_client
+        cls.admin_client = cls.os_admin.blacklists_client
 
     @decorators.idempotent_id('3a7f7564-6bdd-446e-addc-a3475b4c3f71')
     def test_create_blacklist(self):
@@ -123,7 +123,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestBlacklistNotFoundAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_adm.blacklists_client
+        cls.admin_client = cls.os_admin.blacklists_client
 
     @decorators.idempotent_id('9d65b638-fe98-47a8-853f-fa9244d144cc')
     def test_show_blacklist_404(self):
@@ -166,7 +166,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestBlacklistInvalidIdAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_adm.blacklists_client
+        cls.admin_client = cls.os_admin.blacklists_client
 
     @decorators.idempotent_id('c7bae53f-2edc-45d8-b254-8a81482728c1')
     def test_show_blacklist_invalid_uuid(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_pool.py b/designate_tempest_plugin/tests/api/v2/test_pool.py
index f7798c0..d127006 100644
--- a/designate_tempest_plugin/tests/api/v2/test_pool.py
+++ b/designate_tempest_plugin/tests/api/v2/test_pool.py
@@ -46,7 +46,7 @@
     def setup_clients(cls):
         super(PoolAdminTest, cls).setup_clients()
 
-        cls.admin_client = cls.os_adm.pool_client
+        cls.admin_client = cls.os_admin.pool_client
 
     @decorators.idempotent_id('69257f7c-b3d5-4e1b-998e-0677ad12f125')
     def test_create_pool(self):
@@ -136,7 +136,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestPoolNotFoundAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_adm.pool_client
+        cls.admin_client = cls.os_admin.pool_client
 
     @decorators.idempotent_id('56281b2f-dd5a-4376-8c32-aba771062fa5')
     def test_show_pool_404(self):
@@ -179,7 +179,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestPoolInvalidIdAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_adm.pool_client
+        cls.admin_client = cls.os_admin.pool_client
 
     @decorators.idempotent_id('081d0188-42a7-4953-af0e-b022960715e2')
     def test_show_pool_invalid_uuid(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_quotas.py b/designate_tempest_plugin/tests/api/v2/test_quotas.py
index 6fab60d..b32591f 100644
--- a/designate_tempest_plugin/tests/api/v2/test_quotas.py
+++ b/designate_tempest_plugin/tests/api/v2/test_quotas.py
@@ -47,8 +47,8 @@
     def setup_clients(cls):
         super(QuotasV2Test, cls).setup_clients()
 
-        cls.quotas_client = cls.os.quotas_client
-        cls.admin_client = cls.os_adm.quotas_client
+        cls.quotas_client = cls.os_primary.quotas_client
+        cls.admin_client = cls.os_admin.quotas_client
 
     @decorators.idempotent_id('1dac991a-9e2e-452c-a47a-26ac37381ec5')
     def test_show_quotas(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_recordset.py b/designate_tempest_plugin/tests/api/v2/test_recordset.py
index 3c79ebb..be06b54 100644
--- a/designate_tempest_plugin/tests/api/v2/test_recordset.py
+++ b/designate_tempest_plugin/tests/api/v2/test_recordset.py
@@ -58,8 +58,8 @@
     def setup_clients(cls):
         super(RecordsetsTest, cls).setup_clients()
 
-        cls.client = cls.os.recordset_client
-        cls.zone_client = cls.os.zones_client
+        cls.client = cls.os_primary.recordset_client
+        cls.zone_client = cls.os_primary.zones_client
 
     @decorators.attr(type='smoke')
     @decorators.idempotent_id('631d74fd-6909-4684-a61b-5c4d2f92c3e7')
@@ -217,8 +217,8 @@
     def setup_clients(cls):
         super(RecordsetsNegativeTest, cls).setup_clients()
 
-        cls.client = cls.os.recordset_client
-        cls.zone_client = cls.os.zones_client
+        cls.client = cls.os_primary.recordset_client
+        cls.zone_client = cls.os_primary.zones_client
 
     @decorators.idempotent_id('98c94f8c-217a-4056-b996-b1f856d0753e')
     @ddt.file_data("recordset_data_invalid.json")
@@ -322,8 +322,8 @@
     def setup_clients(cls):
         super(RootRecordsetsTests, cls).setup_clients()
 
-        cls.client = cls.os.recordset_client
-        cls.zone_client = cls.os.zones_client
+        cls.client = cls.os_primary.recordset_client
+        cls.zone_client = cls.os_primary.zones_client
 
     @classmethod
     def skip_checks(cls):
@@ -420,8 +420,8 @@
     def setup_clients(cls):
         super(RecordsetOwnershipTest, cls).setup_clients()
 
-        cls.client = cls.os.recordset_client
-        cls.zone_client = cls.os.zones_client
+        cls.client = cls.os_primary.recordset_client
+        cls.zone_client = cls.os_primary.zones_client
         cls.alt_zone_client = cls.os_alt.zones_client
         cls.alt_client = cls.os_alt.recordset_client
 
diff --git a/designate_tempest_plugin/tests/api/v2/test_recordset_validation.py b/designate_tempest_plugin/tests/api/v2/test_recordset_validation.py
index 1a7b5f8..e95ab4b 100644
--- a/designate_tempest_plugin/tests/api/v2/test_recordset_validation.py
+++ b/designate_tempest_plugin/tests/api/v2/test_recordset_validation.py
@@ -51,8 +51,8 @@
     def setup_clients(cls):
         super(RecordsetValidationTest, cls).setup_clients()
 
-        cls.recordset_client = cls.os.recordset_client
-        cls.zones_client = cls.os.zones_client
+        cls.recordset_client = cls.os_primary.recordset_client
+        cls.zones_client = cls.os_primary.zones_client
 
     @property
     def zone(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_tld.py b/designate_tempest_plugin/tests/api/v2/test_tld.py
index 1ee1df4..380d224 100644
--- a/designate_tempest_plugin/tests/api/v2/test_tld.py
+++ b/designate_tempest_plugin/tests/api/v2/test_tld.py
@@ -38,7 +38,7 @@
     @classmethod
     def setup_clients(cls):
         super(TldAdminTest, cls).setup_clients()
-        cls.admin_client = cls.os_adm.tld_client
+        cls.admin_client = cls.os_admin.tld_client
 
     @classmethod
     def resource_setup(cls):
@@ -134,7 +134,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestTldNotFoundAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_adm.tld_client
+        cls.admin_client = cls.os_admin.tld_client
 
     @decorators.idempotent_id('b237d5ee-0d76-4294-a3b6-c2f8bf4b0e30')
     def test_show_tld_404(self):
@@ -177,7 +177,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestTldInvalidIdAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_adm.tld_client
+        cls.admin_client = cls.os_admin.tld_client
 
     @decorators.idempotent_id('f9ec0730-57ff-4720-8d06-e11d377c7cfc')
     def test_show_tld_invalid_uuid(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_transfer_accepts.py b/designate_tempest_plugin/tests/api/v2/test_transfer_accepts.py
index 08117e3..28e687f 100644
--- a/designate_tempest_plugin/tests/api/v2/test_transfer_accepts.py
+++ b/designate_tempest_plugin/tests/api/v2/test_transfer_accepts.py
@@ -35,9 +35,9 @@
     def setup_clients(cls):
         super(TransferAcceptTest, cls).setup_clients()
 
-        cls.zone_client = cls.os.zones_client
-        cls.request_client = cls.os.transfer_request_client
-        cls.client = cls.os.transfer_accept_client
+        cls.zone_client = cls.os_primary.zones_client
+        cls.request_client = cls.os_primary.transfer_request_client
+        cls.client = cls.os_primary.transfer_accept_client
 
     @decorators.idempotent_id('1c6baf97-a83e-4d2e-a5d8-9d37fb7808f3')
     def test_create_transfer_accept(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_transfer_request.py b/designate_tempest_plugin/tests/api/v2/test_transfer_request.py
index 1a38e6d..80a0e4a 100644
--- a/designate_tempest_plugin/tests/api/v2/test_transfer_request.py
+++ b/designate_tempest_plugin/tests/api/v2/test_transfer_request.py
@@ -39,8 +39,8 @@
     def setup_clients(cls):
         super(TransferRequestTest, cls).setup_clients()
 
-        cls.zone_client = cls.os.zones_client
-        cls.client = cls.os.transfer_request_client
+        cls.zone_client = cls.os_primary.zones_client
+        cls.client = cls.os_primary.transfer_request_client
         cls.alt_client = cls.os_alt.transfer_request_client
 
     @decorators.idempotent_id('2381d489-ad84-403d-b0a2-8b77e4e966bf')
@@ -206,7 +206,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestTransferRequestNotFound, cls).setup_clients()
-        cls.client = cls.os.transfer_request_client
+        cls.client = cls.os_primary.transfer_request_client
 
     @decorators.idempotent_id('d255f72f-ba24-43df-9dba-011ed7f4625d')
     def test_show_transfer_request_404(self):
@@ -248,7 +248,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestTransferRequestInvalidId, cls).setup_clients()
-        cls.client = cls.os.transfer_request_client
+        cls.client = cls.os_primary.transfer_request_client
 
     @decorators.idempotent_id('2205dd19-ecc7-4c68-9e89-63c47d642b07')
     def test_show_transfer_request_invalid_uuid(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_tsigkey.py b/designate_tempest_plugin/tests/api/v2/test_tsigkey.py
index 5bea818..a09cabb 100644
--- a/designate_tempest_plugin/tests/api/v2/test_tsigkey.py
+++ b/designate_tempest_plugin/tests/api/v2/test_tsigkey.py
@@ -38,7 +38,7 @@
     @classmethod
     def setup_clients(cls):
         super(TsigkeyAdminTest, cls).setup_clients()
-        cls.zone_client = cls.os.zones_client
+        cls.zone_client = cls.os_primary.zones_client
         cls.admin_client = cls.os_admin.tsigkey_client
 
     @decorators.idempotent_id('e7b484e3-7ed5-4840-89d7-1e696986f8e4')
@@ -151,7 +151,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestTsigkeyNotFoundAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_adm.tsigkey_client
+        cls.admin_client = cls.os_admin.tsigkey_client
 
     @decorators.idempotent_id('824c9b49-edc5-4282-929e-467a158d23e4')
     def test_show_tsigkey_404(self):
@@ -194,7 +194,7 @@
     @classmethod
     def setup_clients(cls):
         super(TestTsigkeyInvalidIdAdmin, cls).setup_clients()
-        cls.admin_client = cls.os_adm.tsigkey_client
+        cls.admin_client = cls.os_admin.tsigkey_client
 
     @decorators.idempotent_id('2a8dfc75-9884-4b1c-8f1f-ed835d96f2fe')
     def test_show_tsigkey_invalid_uuid(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_unauthed.py b/designate_tempest_plugin/tests/api/v2/test_unauthed.py
index bf20de4..aaf8043 100644
--- a/designate_tempest_plugin/tests/api/v2/test_unauthed.py
+++ b/designate_tempest_plugin/tests/api/v2/test_unauthed.py
@@ -37,11 +37,11 @@
     @classmethod
     def setup_clients(cls):
         super(TestDnsUnauthed, cls).setup_clients()
-        cls.zones_client = cls.os.zones_client
-        cls.recordset_client = cls.os.recordset_client
-        cls.tld_client = cls.os.tld_client
-        cls.pool_client = cls.os.pool_client
-        cls.blacklists_client = cls.os.blacklists_client
+        cls.zones_client = cls.os_primary.zones_client
+        cls.recordset_client = cls.os_primary.recordset_client
+        cls.tld_client = cls.os_primary.tld_client
+        cls.pool_client = cls.os_primary.pool_client
+        cls.blacklists_client = cls.os_primary.blacklists_client
 
     @decorators.idempotent_id('0f7a6d20-f6f3-4937-8fe6-7a9851227d98')
     @ddt.file_data('unauthed_data.json')
diff --git a/designate_tempest_plugin/tests/api/v2/test_zones.py b/designate_tempest_plugin/tests/api/v2/test_zones.py
index 0d29392..74b297a 100644
--- a/designate_tempest_plugin/tests/api/v2/test_zones.py
+++ b/designate_tempest_plugin/tests/api/v2/test_zones.py
@@ -38,7 +38,7 @@
     def setup_clients(cls):
         super(ZonesTest, cls).setup_clients()
 
-        cls.client = cls.os.zones_client
+        cls.client = cls.os_primary.zones_client
 
     @decorators.idempotent_id('9d2e20fc-e56f-4a62-9c61-9752a9ec615c')
     def test_create_zone(self):
@@ -131,8 +131,8 @@
     def setup_clients(cls):
         super(ZonesAdminTest, cls).setup_clients()
 
-        cls.client = cls.os.zones_client
-        cls.admin_client = cls.os_adm.zones_client
+        cls.client = cls.os_primary.zones_client
+        cls.admin_client = cls.os_admin.zones_client
 
     @decorators.idempotent_id('6477f92d-70ba-46eb-bd6c-fc50c405e222')
     def test_get_other_tenant_zone(self):
@@ -161,7 +161,7 @@
     def setup_clients(cls):
         super(ZoneOwnershipTest, cls).setup_clients()
 
-        cls.client = cls.os.zones_client
+        cls.client = cls.os_primary.zones_client
         cls.alt_client = cls.os_alt.zones_client
 
     @decorators.idempotent_id('5d28580a-a012-4b57-b211-e077b1a01340')
diff --git a/designate_tempest_plugin/tests/api/v2/test_zones_exports.py b/designate_tempest_plugin/tests/api/v2/test_zones_exports.py
index 2499d2a..881f15c 100644
--- a/designate_tempest_plugin/tests/api/v2/test_zones_exports.py
+++ b/designate_tempest_plugin/tests/api/v2/test_zones_exports.py
@@ -37,8 +37,8 @@
     def setup_clients(cls):
         super(ZonesExportTest, cls).setup_clients()
 
-        cls.zone_client = cls.os.zones_client
-        cls.client = cls.os.zone_exports_client
+        cls.zone_client = cls.os_primary.zones_client
+        cls.client = cls.os_primary.zone_exports_client
 
     @decorators.idempotent_id('2dd8a9a0-98a2-4bf6-bb51-286583b30f40')
     def test_create_zone_export(self):
diff --git a/designate_tempest_plugin/tests/api/v2/test_zones_imports.py b/designate_tempest_plugin/tests/api/v2/test_zones_imports.py
index c2e3674..d54551e 100644
--- a/designate_tempest_plugin/tests/api/v2/test_zones_imports.py
+++ b/designate_tempest_plugin/tests/api/v2/test_zones_imports.py
@@ -36,7 +36,7 @@
     @classmethod
     def setup_clients(cls):
         super(ZonesImportTest, cls).setup_clients()
-        cls.client = cls.os.zone_imports_client
+        cls.client = cls.os_primary.zone_imports_client
 
     @decorators.idempotent_id('2e2d907d-0609-405b-9c96-3cb2b87e3dce')
     def test_create_zone_import(self):
diff --git a/designate_tempest_plugin/tests/base.py b/designate_tempest_plugin/tests/base.py
index 8f3e83d..e411597 100644
--- a/designate_tempest_plugin/tests/base.py
+++ b/designate_tempest_plugin/tests/base.py
@@ -60,8 +60,8 @@
     # at class setup time. Credential types can be 'primary', 'alt', 'admin' or
     # a list of roles - the first element of the list being a label, and the
     # rest the actual roles.
-    # NOTE(kiall) primary will result in a manager @ cls.os, alt will have
-    # cls.os_alt, and admin will have cls.os_adm.
+    # NOTE(kiall) primary will result in a manager @ cls.os_primary, alt will
+    # have cls.os_alt, and admin will have cls.os_admin.
     # NOTE(kiall) We should default to only primary, and request additional
     # credentials in the tests that require them.
     credentials = ['primary']
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_recordsets.py b/designate_tempest_plugin/tests/scenario/v2/test_recordsets.py
new file mode 100644
index 0000000..d1c90d7
--- /dev/null
+++ b/designate_tempest_plugin/tests/scenario/v2/test_recordsets.py
@@ -0,0 +1,101 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# 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 oslo_log import log as logging
+from tempest import config
+from tempest.lib.common.utils import test_utils
+from tempest.lib import decorators
+from tempest.lib import exceptions as lib_exc
+import ddt
+
+from designate_tempest_plugin.tests import base
+from designate_tempest_plugin.common import waiters
+
+
+LOG = logging.getLogger(__name__)
+
+CONF = config.CONF
+
+
+@ddt.ddt
+class RecordsetsTest(base.BaseDnsV2Test):
+    @classmethod
+    def setup_clients(cls):
+        super(RecordsetsTest, cls).setup_clients()
+
+        cls.client = cls.os_primary.zones_client
+        cls.recordset_client = cls.os_primary.recordset_client
+        cls.query_client = cls.os_primary.query_client
+
+    @classmethod
+    def resource_setup(cls):
+        super(RecordsetsTest, cls).resource_setup()
+
+        zone_id = CONF.dns.zone_id
+        if zone_id:
+            LOG.info('Retrieve info from a zone')
+            _, zone = cls.client.show_zone(zone_id)
+        else:
+            LOG.info('Create a new zone')
+            _, zone = cls.client.create_zone()
+            cls.addClassResourceCleanup(
+                test_utils.call_and_ignore_notfound_exc,
+                cls.client.delete_zone, zone['id'])
+
+        LOG.info('Ensure we respond with ACTIVE')
+        waiters.wait_for_zone_status(cls.client, zone['id'], 'ACTIVE')
+
+        cls.zone = zone
+
+    @decorators.attr(type='slow')
+    @decorators.idempotent_id('4664ed66-9ff1-45f2-9e60-d4913195c505')
+    @ddt.file_data("../../api/v2/recordset_data.json")
+    def test_create_and_delete_records_on_existing_zone(self, name,
+                                                        type, records):
+        if name is not None:
+            recordset_name = name + "." + self.zone['name']
+
+        else:
+            recordset_name = self.zone['name']
+
+        recordset_data = {
+            'name': recordset_name,
+            'type': type,
+            'records': records,
+        }
+
+        LOG.info('Create a Recordset on the existing zone')
+        _, recordset = self.recordset_client.create_recordset(
+            self.zone['id'], recordset_data)
+        self.addCleanup(test_utils.call_and_ignore_notfound_exc,
+                        self.recordset_client.delete_recordset,
+                        self.zone['id'], recordset['id'])
+
+        LOG.info('Ensure we respond with PENDING')
+        self.assertEqual('PENDING', recordset['status'])
+
+        LOG.info('Wait until the recordset is active')
+        waiters.wait_for_recordset_status(self.recordset_client,
+                                          self.zone['id'], recordset['id'],
+                                          'ACTIVE')
+
+        LOG.info('Delete the recordset')
+        _, body = self.recordset_client.delete_recordset(self.zone['id'],
+                                                         recordset['id'])
+
+        LOG.info('Ensure we respond with DELETE+PENDING')
+        self.assertEqual('DELETE', body['action'])
+        self.assertEqual('PENDING', body['status'])
+
+        LOG.info('Ensure successful deletion of Recordset')
+        self.assertRaises(lib_exc.NotFound,
+                          lambda: self.recordset_client.show_recordset(
+                              self.zone['id'], recordset['id']))
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_zones.py b/designate_tempest_plugin/tests/scenario/v2/test_zones.py
index 94665a8..ec7076c 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_zones.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_zones.py
@@ -29,8 +29,8 @@
     def setup_clients(cls):
         super(ZonesTest, cls).setup_clients()
 
-        cls.client = cls.os.zones_client
-        cls.query_client = cls.os.query_client
+        cls.client = cls.os_primary.zones_client
+        cls.query_client = cls.os_primary.query_client
 
     @decorators.attr(type='smoke')
     @decorators.attr(type='slow')
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_zones_export.py b/designate_tempest_plugin/tests/scenario/v2/test_zones_export.py
index b8002de..8b9e3c3 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_zones_export.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_zones_export.py
@@ -28,8 +28,8 @@
     def setup_clients(cls):
         super(ZonesExportTest, cls).setup_clients()
 
-        cls.zones_client = cls.os.zones_client
-        cls.client = cls.os.zone_exports_client
+        cls.zones_client = cls.os_primary.zones_client
+        cls.client = cls.os_primary.zone_exports_client
 
     @decorators.attr(type='slow')
     @decorators.idempotent_id('0484c3c4-df57-458e-a6e5-6eb63e0475e0')
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_zones_import.py b/designate_tempest_plugin/tests/scenario/v2/test_zones_import.py
index 4406059..4673048 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_zones_import.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_zones_import.py
@@ -27,8 +27,8 @@
     @classmethod
     def setup_clients(cls):
         super(ZonesImportTest, cls).setup_clients()
-        cls.client = cls.os.zone_imports_client
-        cls.zones_client = cls.os.zones_client
+        cls.client = cls.os_primary.zone_imports_client
+        cls.zones_client = cls.os_primary.zones_client
 
     @decorators.attr(type='slow')
     @decorators.idempotent_id('679f38d0-2f2f-49c5-934e-8fe0c452f56e')
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_zones_transfer.py b/designate_tempest_plugin/tests/scenario/v2/test_zones_transfer.py
index 4870307..14b7003 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_zones_transfer.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_zones_transfer.py
@@ -26,11 +26,11 @@
     @classmethod
     def setup_clients(cls):
         super(ZonesTransferTest, cls).setup_clients()
-        cls.zones_client = cls.os.zones_client
+        cls.zones_client = cls.os_primary.zones_client
         cls.alt_zones_client = cls.os_alt.zones_client
-        cls.request_client = cls.os.transfer_request_client
+        cls.request_client = cls.os_primary.transfer_request_client
         cls.alt_request_client = cls.os_alt.transfer_request_client
-        cls.accept_client = cls.os.transfer_accept_client
+        cls.accept_client = cls.os_primary.transfer_accept_client
         cls.alt_accept_client = cls.os_alt.transfer_accept_client
 
     @decorators.idempotent_id('60bd80ac-c979-4686-9a03-f2f775f272ab')
diff --git a/doc/source/index.rst b/doc/source/index.rst
index b5770f2..b7053a1 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -166,7 +166,7 @@
        def setup_clients(cls):
            super(ZonesTest, cls).setup_clients()
 
-           cls.client = cls.os.zones_client
+           cls.client = cls.os_primary.zones_client
 
        @decorators.attr(type='smoke')
        @decorators.idempotent_id('fbabd6af-238a-462e-b923-de4d736b90a7')
@@ -200,8 +200,8 @@
        def setup_clients(cls):
            super(ZonesAdminTest, cls).setup_clients()
 
-           cls.client = cls.os.zones_client
-           cls.adm_client = cls.os_adm.zones_client
+           cls.client = cls.os_primary.zones_client
+           cls.adm_client = cls.os_admin.zones_client
 
        @decorators.idempotent_id('6477f92d-70ba-46eb-bd6c-fc50c405e222')
        def test_get_other_tenant_zone(self):
diff --git a/test-requirements.txt b/test-requirements.txt
index f3e74e0..f6c0a00 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -4,5 +4,5 @@
 
 # Hacking already pins down pep8, pyflakes and flake8
 hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
-openstackdocstheme>=1.17.0 # Apache-2.0
-sphinx>=1.6.2 # BSD
+openstackdocstheme>=1.18.1 # Apache-2.0
+sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
diff --git a/tox.ini b/tox.ini
index 3163c7d..f183956 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,6 @@
 [tox]
 minversion = 2.0
-envlist = py35,py27,flake8
+envlist = py35,py27,pep8
 skipsdist = True
 
 [testenv]
