Fix deleting zones after tests

these tests create zones as part of the test but do clean them up
afterward slowly. This leads to these and following tests in the thread
to fail with over quota when default zone quota is sufficiently low.

Change-Id: Iebe15ca6d0d3101237a92e011b081c38647a8de6
This commit is contained in:
Maksym Shalamov 2018-12-05 17:17:58 +02:00 committed by Pavlo Shchelokovskyy
parent 02fca4df41
commit 2da1d6e6c9
13 changed files with 104 additions and 52 deletions

View File

@ -40,11 +40,11 @@ class BaseRecordsetsTest(base.BaseDnsV2Test):
@classmethod
def resource_cleanup(cls):
super(BaseRecordsetsTest, cls).resource_cleanup()
cls.zone_client.delete_zone(
cls.zone['id'], ignore_errors=lib_exc.NotFound)
super(BaseRecordsetsTest, cls).resource_cleanup()
@ddt.ddt
class RecordsetsTest(BaseRecordsetsTest):
@ -244,7 +244,7 @@ class RecordsetsNegativeTest(BaseRecordsetsTest):
def test_get_nonexistent_recordset(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Attempt to get an invalid Recordset')
with self.assertRaisesDns(
@ -255,7 +255,7 @@ class RecordsetsNegativeTest(BaseRecordsetsTest):
def test_get_nonexistent_recordset_invalid_id(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Attempt to get an invalid Recordset')
with self.assertRaisesDns(lib_exc.BadRequest, 'invalid_uuid', 400):
@ -265,7 +265,7 @@ class RecordsetsNegativeTest(BaseRecordsetsTest):
def test_update_nonexistent_recordset(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
recordset_data = data_utils.rand_recordset_data('A', zone['name'])
@ -279,7 +279,7 @@ class RecordsetsNegativeTest(BaseRecordsetsTest):
def test_update_nonexistent_recordset_invalid_id(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
recordset_data = data_utils.rand_recordset_data('A', zone['name'])
@ -292,7 +292,7 @@ class RecordsetsNegativeTest(BaseRecordsetsTest):
def test_delete_nonexistent_recordset(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Attempt to delete an invalid Recordset')
with self.assertRaisesDns(
@ -304,7 +304,7 @@ class RecordsetsNegativeTest(BaseRecordsetsTest):
def test_delete_nonexistent_recordset_invalid_id(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Attempt to get an invalid Recordset')
with self.assertRaisesDns(lib_exc.BadRequest, 'invalid_uuid', 400):
@ -363,7 +363,7 @@ class RootRecordsetsTests(BaseRecordsetsTest):
LOG.info('Create another zone')
_, zone2 = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone2['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone2['id'])
LOG.info('Create another Recordset')
recordset_data = data_utils.rand_recordset_data(
@ -392,7 +392,7 @@ class RootRecordsetsTests(BaseRecordsetsTest):
def test_list_zones_recordsets_zone_names(self):
LOG.info('Create another zone')
_, zone2 = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone2['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone2['id'])
LOG.info('List recordsets')
_, body = self.client.list_zones_recordsets()
@ -443,7 +443,7 @@ class RecordsetOwnershipTest(BaseRecordsetsTest):
LOG.info('Create a zone as a default user')
_, zone = self.zone_client.create_zone(name='a.b.' + zone_name)
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
rrset_data = data_utils.rand_recordset_data(
record_type='A', zone_name=zone_name)
@ -458,6 +458,12 @@ class RecordsetOwnershipTest(BaseRecordsetsTest):
def test_no_create_recordset_via_alt_domain(self):
_, zone = self.zone_client.create_zone()
_, alt_zone = self.alt_zone_client.create_zone()
self.addCleanup(self.wait_zone_delete,
self.zone_client,
zone['id'])
self.addCleanup(self.wait_zone_delete,
self.alt_zone_client,
alt_zone['id'])
# alt attempts to create record with name A12345.{zone}
recordset_data = data_utils.rand_recordset_data(

View File

@ -60,7 +60,9 @@ class RecordsetValidationTest(base.BaseDnsV2Test):
zone_data = data_utils.rand_zone_data()
resp, body = self.zones_client.create_zone(**zone_data)
self._zone = body
self.addCleanup(self.zones_client.delete_zone, body['id'])
self.addCleanup(self.wait_zone_delete,
self.zones_client,
body['id'])
return self._zone
def create_recordset(self, data):

View File

@ -43,7 +43,7 @@ class TransferAcceptTest(BaseTransferAcceptTest):
def test_create_transfer_accept(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a zone transfer_request')
_, transfer_request = self.request_client.create_transfer_request(
@ -65,7 +65,7 @@ class TransferAcceptTest(BaseTransferAcceptTest):
def test_show_transfer_accept(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a zone transfer_request')
_, transfer_request = self.request_client.create_transfer_request(

View File

@ -47,7 +47,7 @@ class TransferRequestTest(BaseTransferRequestTest):
def test_create_transfer_request(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a zone transfer_request')
_, transfer_request = self.client.create_transfer_request(zone['id'])
@ -61,7 +61,7 @@ class TransferRequestTest(BaseTransferRequestTest):
def test_create_transfer_request_scoped(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
transfer_request_data = dns_data_utils.rand_transfer_request_data(
target_project_id=self.os_alt.credentials.project_id)
@ -79,7 +79,7 @@ class TransferRequestTest(BaseTransferRequestTest):
def test_create_transfer_request_empty_body(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a zone transfer_request')
_, transfer_request = self.client.create_transfer_request_empty_body(
zone['id'])
@ -93,7 +93,7 @@ class TransferRequestTest(BaseTransferRequestTest):
def test_show_transfer_request(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a zone transfer_request')
_, transfer_request = self.client.create_transfer_request(zone['id'])
@ -113,7 +113,7 @@ class TransferRequestTest(BaseTransferRequestTest):
# the request.
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
transfer_request_data = dns_data_utils.rand_transfer_request_data(
target_project_id=self.os_alt.credentials.project_id)
@ -137,7 +137,7 @@ class TransferRequestTest(BaseTransferRequestTest):
def test_delete_transfer_request(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a transfer_request')
_, transfer_request = self.client.create_transfer_request(zone['id'])
@ -154,7 +154,7 @@ class TransferRequestTest(BaseTransferRequestTest):
def test_list_transfer_requests(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a zone transfer_request')
_, transfer_request = self.client.create_transfer_request(zone['id'])
@ -170,7 +170,7 @@ class TransferRequestTest(BaseTransferRequestTest):
def test_update_transfer_request(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a zone transfer_request')
_, transfer_request = self.client.create_transfer_request(zone['id'])

View File

@ -45,7 +45,7 @@ class TsigkeyAdminTest(BaseTsigkeyTest):
def test_create_tsigkey(self):
LOG.info('Create a resource')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
tsigkey_data = {
"name": "Example tsigkey",
@ -67,7 +67,7 @@ class TsigkeyAdminTest(BaseTsigkeyTest):
def test_list_tsigkey(self):
LOG.info('Create a resource')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a tsigkey')
_, tsigkey = self.admin_client.create_tsigkey(resource_id=zone['id'])
self.addCleanup(self.admin_client.delete_tsigkey, tsigkey['id'])
@ -78,7 +78,7 @@ class TsigkeyAdminTest(BaseTsigkeyTest):
def test_show_tsigkey(self):
LOG.info('Create a resource')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a tsigkey')
_, tsigkey = self.admin_client.create_tsigkey(resource_id=zone['id'])
@ -94,7 +94,7 @@ class TsigkeyAdminTest(BaseTsigkeyTest):
def test_update_tsigkey(self):
LOG.info('Create a resource')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a tsigkey')
_, tsigkey = self.admin_client.create_tsigkey(resource_id=zone['id'])
@ -119,7 +119,7 @@ class TsigkeyAdminTest(BaseTsigkeyTest):
def test_delete_tsigkey(self):
LOG.info('Create a resource')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a tsigkey')
_, tsigkey = self.admin_client.create_tsigkey(resource_id=zone['id'])

View File

@ -44,7 +44,7 @@ class ZonesTest(BaseZonesTest):
def test_create_zone(self):
LOG.info('Create a zone')
_, zone = self.client.create_zone()
self.addCleanup(self.client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.client, zone['id'])
LOG.info('Ensure we respond with CREATE+PENDING')
self.assertEqual('CREATE', zone['action'])
@ -54,7 +54,7 @@ class ZonesTest(BaseZonesTest):
def test_show_zone(self):
LOG.info('Create a zone')
_, zone = self.client.create_zone()
self.addCleanup(self.client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.client, zone['id'])
LOG.info('Fetch the zone')
_, body = self.client.show_zone(zone['id'])
@ -67,7 +67,7 @@ class ZonesTest(BaseZonesTest):
def test_delete_zone(self):
LOG.info('Create a zone')
_, zone = self.client.create_zone()
self.addCleanup(self.client.delete_zone, zone['id'],
self.addCleanup(self.wait_zone_delete, self.client, zone['id'],
ignore_errors=lib_exc.NotFound)
LOG.info('Delete the zone')
@ -81,7 +81,7 @@ class ZonesTest(BaseZonesTest):
def test_list_zones(self):
LOG.info('Create a zone')
_, zone = self.client.create_zone()
self.addCleanup(self.client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.client, zone['id'])
LOG.info('List zones')
_, body = self.client.list_zones()
@ -94,7 +94,7 @@ class ZonesTest(BaseZonesTest):
def test_update_zone(self):
LOG.info('Create a zone')
_, zone = self.client.create_zone()
self.addCleanup(self.client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.client, zone['id'])
# Generate a random description
description = data_utils.rand_name()
@ -138,7 +138,7 @@ class ZonesAdminTest(BaseZonesTest):
def test_get_other_tenant_zone(self):
LOG.info('Create a zone as a user')
_, zone = self.client.create_zone()
self.addCleanup(self.client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.client, zone['id'])
LOG.info('Fetch the zone as an admin')
_, body = self.admin_client.show_zone(
@ -168,7 +168,7 @@ class ZoneOwnershipTest(BaseZonesTest):
def test_no_create_duplicate_domain(self):
LOG.info('Create a zone as a default user')
_, zone = self.client.create_zone()
self.addCleanup(self.client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.client, zone['id'])
LOG.info('Create a zone as an default with existing domain')
self.assertRaises(lib_exc.Conflict,
@ -182,7 +182,7 @@ class ZoneOwnershipTest(BaseZonesTest):
def test_no_create_subdomain_by_alt_user(self):
LOG.info('Create a zone as a default user')
_, zone = self.client.create_zone()
self.addCleanup(self.client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.client, zone['id'])
LOG.info('Create a zone as an alt user with existing subdomain')
self.assertRaises(lib_exc.Forbidden,
@ -196,7 +196,7 @@ class ZoneOwnershipTest(BaseZonesTest):
LOG.info('Create a zone as a default user')
_, zone = self.client.create_zone(name='a.b.' + zone_name)
self.addCleanup(self.client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.client, zone['id'])
LOG.info('Create a zone as an alt user with existing superdomain')
self.assertRaises(lib_exc.Forbidden,

View File

@ -44,10 +44,11 @@ class ZonesExportTest(BaseZoneExportsTest):
def test_create_zone_export(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a zone export')
_, zone_export = self.client.create_zone_export(zone['id'])
self.addCleanup(self.client.delete_zone_export, zone_export['id'])
LOG.info('Ensure we respond with PENDING')
self.assertEqual('PENDING', zone_export['status'])
@ -57,10 +58,11 @@ class ZonesExportTest(BaseZoneExportsTest):
def test_show_zone_export(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
LOG.info('Create a zone export')
resp, zone_export = self.client.create_zone_export(zone['id'])
self.addCleanup(self.client.delete_zone_export, zone_export['id'])
LOG.info('Re-Fetch the zone export')
_, body = self.client.show_zone_export(zone_export['id'])
@ -72,7 +74,7 @@ class ZonesExportTest(BaseZoneExportsTest):
def test_delete_zone_export(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'],
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'],
ignore_errors=lib_exc.NotFound)
LOG.info('Create a zone export')
@ -89,9 +91,10 @@ class ZonesExportTest(BaseZoneExportsTest):
def test_list_zone_exports(self):
LOG.info('Create a zone')
_, zone = self.zone_client.create_zone()
self.addCleanup(self.zone_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zone_client, zone['id'])
_, export = self.client.create_zone_export(zone['id'])
self.addCleanup(self.client.delete_zone_export, export['id'])
LOG.info('List zone exports')
_, body = self.client.list_zone_exports()

View File

@ -16,6 +16,7 @@ from oslo_log import log as logging
from tempest.lib import decorators
from tempest.lib import exceptions as lib_exc
from designate_tempest_plugin.common import waiters
from designate_tempest_plugin.tests import base
LOG = logging.getLogger(__name__)
@ -36,13 +37,22 @@ class ZonesImportTest(BaseZonesImportTest):
@classmethod
def setup_clients(cls):
super(ZonesImportTest, cls).setup_clients()
cls.client = cls.os_primary.zone_imports_client
cls.zone_client = cls.os_primary.zones_client
def clean_up_resources(self, zone_import_id):
waiters.wait_for_zone_import_status(self.client, zone_import_id,
"COMPLETE")
_, zone_import = self.client.show_zone_import(zone_import_id)
self.client.delete_zone_import(zone_import['id'])
self.wait_zone_delete(self.zone_client, zone_import['zone_id'])
@decorators.idempotent_id('2e2d907d-0609-405b-9c96-3cb2b87e3dce')
def test_create_zone_import(self):
LOG.info('Create a zone import')
_, zone_import = self.client.create_zone_import()
self.addCleanup(self.client.delete_zone_import, zone_import['id'])
self.addCleanup(self.clean_up_resources, zone_import['id'])
LOG.info('Ensure we respond with PENDING')
self.assertEqual('PENDING', zone_import['status'])
@ -52,7 +62,7 @@ class ZonesImportTest(BaseZonesImportTest):
def test_show_zone_import(self):
LOG.info('Create a zone import')
_, zone_import = self.client.create_zone_import()
self.addCleanup(self.client.delete_zone_import, zone_import['id'])
self.addCleanup(self.clean_up_resources, zone_import['id'])
LOG.info('Re-Fetch the zone import')
resp, body = self.client.show_zone_import(zone_import['id'])
@ -64,6 +74,12 @@ class ZonesImportTest(BaseZonesImportTest):
def test_delete_zone_import(self):
LOG.info('Create a zone import')
_, zone_import = self.client.create_zone_import()
waiters.wait_for_zone_import_status(self.client, zone_import['id'],
"COMPLETE")
_, zone_import = self.client.show_zone_import(zone_import['id'])
self.addCleanup(self.wait_zone_delete,
self.zone_client,
zone_import['zone_id'])
LOG.info('Delete the zone')
resp, body = self.client.delete_zone_import(zone_import['id'])
@ -75,7 +91,8 @@ class ZonesImportTest(BaseZonesImportTest):
@decorators.idempotent_id('9eab76af-1995-485f-a2ef-8290c1863aba')
def test_list_zones_imports(self):
LOG.info('Create a zone import')
_, zone = self.client.create_zone_import()
_, zone_import = self.client.create_zone_import()
self.addCleanup(self.clean_up_resources, zone_import['id'])
LOG.info('List zones imports')
_, body = self.client.list_zone_imports()

View File

@ -14,6 +14,7 @@
import six
from tempest import test
from tempest import config
from tempest.lib.common.utils import test_utils as utils
from designate_tempest_plugin import clients
@ -97,6 +98,18 @@ class BaseDnsTest(test.BaseTestCase):
with context:
callable_(*args, **kwargs)
def wait_zone_delete(self, zone_client, zone_id, **kwargs):
zone_client.delete_zone(zone_id, **kwargs)
utils.call_until_true(self._check_zone_deleted,
CONF.dns.build_timeout,
CONF.dns.build_interval,
zone_client,
zone_id)
def _check_zone_deleted(self, zone_client, zone_id):
return utils.call_and_ignore_notfound_exc(zone_client.show_zone,
zone_id) is None
class BaseDnsV1Test(BaseDnsTest):
"""Base class for DNS V1 API tests."""

View File

@ -38,7 +38,7 @@ class ZonesTest(base.BaseDnsV2Test):
def test_create_and_delete_zone(self):
LOG.info('Create a zone')
_, zone = self.client.create_zone()
self.addCleanup(self.client.delete_zone, zone['id'],
self.addCleanup(self.wait_zone_delete, self.client, zone['id'],
ignore_errors=lib_exc.NotFound)
LOG.info('Ensure we respond with CREATE+PENDING')
@ -69,7 +69,7 @@ class ZonesTest(base.BaseDnsV2Test):
def test_delete_zone_pending_create(self):
LOG.info('Create a zone')
_, zone = self.client.create_zone()
self.addCleanup(self.client.delete_zone, zone['id'],
self.addCleanup(self.wait_zone_delete, self.client, zone['id'],
ignore_errors=lib_exc.NotFound)
# NOTE(kiall): This is certainly a little racey, it's entirely
@ -94,7 +94,7 @@ class ZonesTest(base.BaseDnsV2Test):
def test_zone_create_propagates_to_nameservers(self):
LOG.info('Create a zone')
_, zone = self.client.create_zone()
self.addCleanup(self.client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.client, zone['id'])
waiters.wait_for_zone_status(self.client, zone['id'], "ACTIVE")
waiters.wait_for_query(self.query_client, zone['name'], "SOA")
@ -107,7 +107,7 @@ class ZonesTest(base.BaseDnsV2Test):
def test_zone_delete_propagates_to_nameservers(self):
LOG.info('Create a zone')
_, zone = self.client.create_zone()
self.addCleanup(self.client.delete_zone, zone['id'],
self.addCleanup(self.wait_zone_delete, self.client, zone['id'],
ignore_errors=lib_exc.NotFound)
waiters.wait_for_zone_status(self.client, zone['id'], "ACTIVE")

View File

@ -36,10 +36,12 @@ class ZonesExportTest(BaseZoneExportsTest):
def test_create_zone_export_and_show_exported_zonefile(self):
LOG.info('Create a zone to be exported')
_, zone = self.zones_client.create_zone()
self.addCleanup(self.zones_client.delete_zone, zone['id'])
self.addCleanup(self.wait_zone_delete, self.zones_client, zone['id'])
LOG.info('Create a zone export')
_, zone_export = self.client.create_zone_export(zone['id'])
self.addCleanup(self.client.delete_zone_export, zone_export['id'])
self.assertEqual('PENDING', zone_export['status'])
self.assertEqual(zone['id'], zone_export['zone_id'])
self.assertIsNone(zone_export['links'].get('export'))
@ -51,6 +53,7 @@ class ZonesExportTest(BaseZoneExportsTest):
LOG.info('Check the zone export looks good')
_, zone_export = self.client.show_zone_export(zone_export['id'])
self.assertEqual('COMPLETE', zone_export['status'])
self.assertEqual(zone['id'], zone_export['zone_id'])
self.assertIsNotNone(zone_export['links'].get('export'))

View File

@ -27,6 +27,7 @@ class ZonesImportTest(BaseZonesImportTest):
@classmethod
def setup_clients(cls):
super(ZonesImportTest, cls).setup_clients()
cls.client = cls.os_primary.zone_imports_client
cls.zones_client = cls.os_primary.zones_client
@ -46,6 +47,10 @@ class ZonesImportTest(BaseZonesImportTest):
LOG.info('Check the zone import looks good')
_, zone_import = self.client.show_zone_import(zone_import['id'])
self.addCleanup(self.wait_zone_delete,
self.zones_client,
zone_import['zone_id'])
self.assertEqual('COMPLETE', zone_import['status'])
self.assertIsNotNone(zone_import['zone_id'])
self.assertIsNotNone(zone_import['links'].get('zone'))

View File

@ -37,14 +37,14 @@ class ZonesTransferTest(base.BaseDnsV2Test):
def test_zone_transfer(self):
LOG.info('Create a zone as primary tenant')
_, zone = self.zones_client.create_zone()
self.addCleanup(self.zones_client.delete_zone, zone['id'],
ignore_errors=lib_exc.NotFound)
self.addCleanup(self.alt_zones_client.delete_zone, zone['id'],
self.addCleanup(self.wait_zone_delete, self.zones_client, zone['id'],
ignore_errors=lib_exc.NotFound)
LOG.info('Create a zone transfer_request for zone as primary tenant')
_, transfer_request = \
self.request_client.create_transfer_request_empty_body(zone['id'])
self.addCleanup(self.request_client.delete_transfer_request,
transfer_request['id'])
accept_data = {
"key": transfer_request['key'],
@ -55,7 +55,10 @@ class ZonesTransferTest(base.BaseDnsV2Test):
self.alt_accept_client.create_transfer_accept(accept_data)
LOG.info('Fetch the zone as alt tenant')
self.alt_zones_client.show_zone(zone['id'])
_, alt_zone = self.alt_zones_client.show_zone(zone['id'])
self.addCleanup(self.wait_zone_delete,
self.alt_zones_client,
alt_zone['id'])
LOG.info('Ensure 404 when fetching the zone as primary tenant')
self.assertRaises(lib_exc.NotFound,