Update service client access in tempest tests

All the Designate service clients are registered via the plugin interface[1],
that way Tempest register and create the lazy initialization of registered
clients so that they can be access from there in consistent way.

But designate-tempest-client create a separate instance of those and access
instead of accessing the registered service client in Tempest. This commit
makes all the service clients access from Tempest registry and remove the
separate objects.

[1] https://github.com/openstack/designate-tempest-plugin/blob/master/designate_tempest_plugin/plugin.py#L78

Change-Id: I4b65ca16cd53ff4c6bece642764a4abe2a469c01
This commit is contained in:
Michael Johnson 2021-07-09 16:39:08 +00:00
parent dcfa7c0372
commit df9fda1c88
27 changed files with 169 additions and 193 deletions

View File

@ -15,41 +15,28 @@ from tempest import clients
from tempest import config
from tempest.lib import auth
from designate_tempest_plugin.services.dns.v2.json.zones_client import \
ZonesClient
from designate_tempest_plugin.services.dns.v2.json.zone_imports_client import \
ZoneImportsClient
from designate_tempest_plugin.services.dns.v2.json.blacklists_client import \
BlacklistsClient
from designate_tempest_plugin.services.dns.v2.json.quotas_client import \
QuotasClient
from designate_tempest_plugin.services.dns.v2.json.zone_exports_client import \
ZoneExportsClient
from designate_tempest_plugin.services.dns.v2.json.recordset_client import \
RecordsetClient
from designate_tempest_plugin.services.dns.v2.json.pool_client import \
PoolClient
from designate_tempest_plugin.services.dns.v2.json.recordset_client import \
RecordsetClient
from designate_tempest_plugin.services.dns.v2.json.tld_client import \
TldClient
from designate_tempest_plugin.services.dns.admin.json.quotas_client import \
QuotasClient as AdminQuotaClient
from designate_tempest_plugin.services.dns.v2.json.zones_client import \
ZonesClient
# TODO(johnsom) remove once neutron-tempest-plugin test_dns_integration
# has been updated
# https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/800291
from designate_tempest_plugin.services.dns.query.query_client import \
QueryClient
from designate_tempest_plugin.services.dns.v2.json.transfer_request_client \
import TransferRequestClient
from designate_tempest_plugin.services.dns.v2.json.transfer_accepts_client \
import TransferAcceptClient
from designate_tempest_plugin.services.dns.v2.json.tsigkey_client \
import TsigkeyClient
from designate_tempest_plugin.services.dns.v2.json.service_client \
import SevriceClient
from designate_tempest_plugin.services.dns.v2.json.designate_limit_client \
import DesignateLimitClient
from designate_tempest_plugin.services.dns.v2.json.ptr_client import PtrClient
CONF = config.CONF
# TODO(johnsom) remove once neutron-tempest-plugin test_dns_integration
# has been updated
# https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/800291
class ManagerV2(clients.Manager):
def __init__(self, credentials=None):
@ -58,19 +45,6 @@ class ManagerV2(clients.Manager):
def _init_clients(self, params):
self.zones_client = ZonesClient(**params)
self.zone_imports_client = ZoneImportsClient(**params)
self.blacklists_client = BlacklistsClient(**params)
self.quotas_client = QuotasClient(**params)
self.zone_exports_client = ZoneExportsClient(**params)
self.recordset_client = RecordsetClient(**params)
self.pool_client = PoolClient(**params)
self.tld_client = TldClient(**params)
self.transfer_request_client = TransferRequestClient(**params)
self.transfer_accept_client = TransferAcceptClient(**params)
self.tsigkey_client = TsigkeyClient(**params)
self.service_client = SevriceClient(**params)
self.designate_limit_client = DesignateLimitClient(**params)
self.ptr_client = PtrClient(**params)
self.query_client = QueryClient(
nameservers=CONF.dns.nameservers,
@ -92,29 +66,7 @@ class ManagerV2(clients.Manager):
return params
class ManagerAdmin(clients.Manager):
def __init__(self, credentials=None):
super(ManagerAdmin, self).__init__(credentials)
self._init_clients(self._get_params())
def _init_clients(self, params):
self.quotas_client = AdminQuotaClient(**params)
def _get_params(self):
params = dict(self.default_params)
params.update({
'auth_provider': self.auth_provider,
'service': CONF.dns.catalog_type,
'region': CONF.identity.region,
'endpoint_type': CONF.dns.endpoint_type,
'build_interval': CONF.dns.build_interval,
'build_timeout': CONF.dns.build_timeout
})
return params
class ManagerV2Unauthed(ManagerV2):
class ManagerV2Unauthed(clients.Manager):
def __init__(self, credentials=None):
super(ManagerV2Unauthed, self).__init__(credentials)
@ -127,12 +79,31 @@ class ManagerV2Unauthed(ManagerV2):
)
self._init_clients(self._get_params())
def _init_clients(self, params):
self.zones_client = ZonesClient(**params)
self.blacklists_client = BlacklistsClient(**params)
self.recordset_client = RecordsetClient(**params)
self.pool_client = PoolClient(**params)
self.tld_client = TldClient(**params)
def _auth_provider_class(self):
if CONF.identity.auth_version == 'v3':
return KeystoneV3UnauthedProvider
else:
return KeystoneV2UnauthedProvider
def _get_params(self):
params = dict(self.default_params)
params.update({
'auth_provider': self.auth_provider,
'service': CONF.dns.catalog_type,
'region': CONF.identity.region,
'endpoint_type': CONF.dns.endpoint_type,
'build_interval': CONF.dns.build_interval,
'build_timeout': CONF.dns.build_timeout
})
return params
class BaseUnauthedProvider(auth.KeystoneAuthProvider):

View File

@ -18,6 +18,7 @@ from tempest import config
from tempest.test_discover import plugins
from designate_tempest_plugin import config as project_config
from designate_tempest_plugin.services.dns import v2 as dns_v2_services
class DesignateTempestPlugin(plugins.TempestPlugin):
@ -87,11 +88,7 @@ class DesignateTempestPlugin(plugins.TempestPlugin):
'name': 'dns_v2',
'service_version': 'dns.v2',
'module_path': 'designate_tempest_plugin.services.dns.v2',
'client_names': ['BlacklistsClient', 'PoolClient', 'QuotasClient',
'RecordsetClient', 'TldClient',
'TransferAcceptClient', 'TransferRequestClient',
'TsigkeyClient', 'ZoneExportsClient',
'ZoneImportsClient', 'ZonesClient']
'client_names': dns_v2_services.__all__
}
admin_params.update(dns_config)
v2_params.update(dns_config)

View File

@ -14,12 +14,18 @@
from designate_tempest_plugin.services.dns.v2.json.blacklists_client import \
BlacklistsClient
from designate_tempest_plugin.services.dns.v2.json.designate_limit_client \
import DesignateLimitClient
from designate_tempest_plugin.services.dns.v2.json.pool_client import \
PoolClient
from designate_tempest_plugin.services.dns.v2.json.ptr_client \
import PtrClient
from designate_tempest_plugin.services.dns.v2.json.quotas_client import \
QuotasClient
from designate_tempest_plugin.services.dns.v2.json.recordset_client import \
RecordsetClient
from designate_tempest_plugin.services.dns.v2.json.service_client import \
ServiceClient
from designate_tempest_plugin.services.dns.v2.json.tld_client import TldClient
from designate_tempest_plugin.services.dns.v2.json.transfer_accepts_client \
import TransferAcceptClient
@ -27,14 +33,15 @@ from designate_tempest_plugin.services.dns.v2.json.transfer_request_client \
import TransferRequestClient
from designate_tempest_plugin.services.dns.v2.json.tsigkey_client import \
TsigkeyClient
from designate_tempest_plugin.services.dns.v2.json.zones_client import \
ZonesClient
from designate_tempest_plugin.services.dns.v2.json.zone_exports_client import \
ZoneExportsClient
from designate_tempest_plugin.services.dns.v2.json.zone_imports_client import \
ZoneImportsClient
from designate_tempest_plugin.services.dns.v2.json.zones_client import \
ZonesClient
__all__ = ['BlacklistsClient', 'PoolClient', 'QuotasClient', 'RecordsetClient',
__all__ = ['BlacklistsClient', 'DesignateLimitClient', 'PoolClient',
'PtrClient', 'QuotasClient', 'RecordsetClient', 'ServiceClient',
'TldClient', 'TransferAcceptClient', 'TransferRequestClient',
'TsigkeyClient', 'ZoneExportsClient', 'ZoneImportsClient',
'ZonesClient']
'TsigkeyClient', 'ZonesClient', 'ZoneExportsClient',
'ZoneImportsClient']

View File

@ -14,7 +14,7 @@
from designate_tempest_plugin.services.dns.v2.json import base
class SevriceClient(base.DnsClientV2Base):
class ServiceClient(base.DnsClientV2Base):
@base.handle_errors
def list_statuses(self, headers=None):

View File

@ -52,7 +52,7 @@ class QuotasAdminTest(BaseQuotasTest):
def setup_clients(cls):
super(QuotasAdminTest, cls).setup_clients()
cls.admin_client = cls.os_admin.quotas_client
cls.admin_client = cls.os_admin.dns_admin.QuotasClient()
@decorators.idempotent_id('ed42f367-e5ba-40d7-a08d-366ad787d21c')
def test_show_quotas(self):

View File

@ -39,7 +39,7 @@ class BlacklistsAdminTest(BaseBlacklistsTest):
@classmethod
def setup_clients(cls):
super(BlacklistsAdminTest, cls).setup_clients()
cls.admin_client = cls.os_admin.blacklists_client
cls.admin_client = cls.os_admin.dns_v2.BlacklistsClient()
@decorators.idempotent_id('3a7f7564-6bdd-446e-addc-a3475b4c3f71')
def test_create_blacklist(self):
@ -123,7 +123,7 @@ class TestBlacklistNotFoundAdmin(BaseBlacklistsTest):
@classmethod
def setup_clients(cls):
super(TestBlacklistNotFoundAdmin, cls).setup_clients()
cls.admin_client = cls.os_admin.blacklists_client
cls.admin_client = cls.os_admin.dns_v2.BlacklistsClient()
@decorators.idempotent_id('9d65b638-fe98-47a8-853f-fa9244d144cc')
def test_show_blacklist_404(self):
@ -166,7 +166,7 @@ class TestBlacklistInvalidIdAdmin(BaseBlacklistsTest):
@classmethod
def setup_clients(cls):
super(TestBlacklistInvalidIdAdmin, cls).setup_clients()
cls.admin_client = cls.os_admin.blacklists_client
cls.admin_client = cls.os_admin.dns_v2.BlacklistsClient()
@decorators.idempotent_id('c7bae53f-2edc-45d8-b254-8a81482728c1')
def test_show_blacklist_invalid_uuid(self):

View File

@ -31,8 +31,7 @@ class DesignateLimit(base.BaseDnsV2Test):
@classmethod
def setup_clients(cls):
super(DesignateLimit, cls).setup_clients()
cls.admin_client = cls.os_admin.designate_limit_client
cls.admin_client = cls.os_admin.dns_v2.DesignateLimitClient()
@decorators.idempotent_id('828572be-8662-11eb-8ff2-74e5f9e2a801')
def test_list_designate_limits(self):

View File

@ -45,8 +45,7 @@ class PoolAdminTest(BasePoolTest):
@classmethod
def setup_clients(cls):
super(PoolAdminTest, cls).setup_clients()
cls.admin_client = cls.os_admin.pool_client
cls.admin_client = cls.os_admin.dns_v2.PoolClient()
@decorators.idempotent_id('69257f7c-b3d5-4e1b-998e-0677ad12f125')
def test_create_pool(self):
@ -136,7 +135,7 @@ class TestPoolNotFoundAdmin(BasePoolTest):
@classmethod
def setup_clients(cls):
super(TestPoolNotFoundAdmin, cls).setup_clients()
cls.admin_client = cls.os_admin.pool_client
cls.admin_client = cls.os_admin.dns_v2.PoolClient()
@decorators.idempotent_id('56281b2f-dd5a-4376-8c32-aba771062fa5')
def test_show_pool_404(self):
@ -179,7 +178,7 @@ class TestPoolInvalidIdAdmin(BasePoolTest):
@classmethod
def setup_clients(cls):
super(TestPoolInvalidIdAdmin, cls).setup_clients()
cls.admin_client = cls.os_admin.pool_client
cls.admin_client = cls.os_admin.dns_v2.PoolClient()
@decorators.idempotent_id('081d0188-42a7-4953-af0e-b022960715e2')
def test_show_pool_invalid_uuid(self):
@ -223,7 +222,7 @@ class TestPoolAdminNegative(BasePoolTest):
@classmethod
def setup_clients(cls):
super(TestPoolAdminNegative, cls).setup_clients()
cls.admin_client = cls.os_admin.pool_client
cls.admin_client = cls.os_admin.dns_v2.PoolClient()
@decorators.idempotent_id('0a8cdc1e-ac02-11eb-ae06-74e5f9e2a801')
def test_create_pool_invalid_name(self):

View File

@ -41,7 +41,7 @@ class DesignatePtrRecord(BasePtrTest, tempest.test.BaseTestCase):
@classmethod
def setup_clients(cls):
super(DesignatePtrRecord, cls).setup_clients()
cls.primary_ptr_client = cls.os_primary.ptr_client
cls.primary_ptr_client = cls.os_primary.dns_v2.PtrClient()
cls.primary_floating_ip_client = cls.os_primary.floating_ips_client
def _set_ptr(self):
@ -100,7 +100,7 @@ class DesignatePtrRecordNegative(BasePtrTest, tempest.test.BaseTestCase):
@classmethod
def setup_clients(cls):
super(DesignatePtrRecordNegative, cls).setup_clients()
cls.primary_ptr_client = cls.os_primary.ptr_client
cls.primary_ptr_client = cls.os_primary.dns_v2.PtrClient()
cls.primary_floating_ip_client = cls.os_primary.floating_ips_client
def _set_ptr(self, ptr_name=None, ttl=None, description=None,

View File

@ -48,9 +48,9 @@ class QuotasV2Test(base.BaseDnsV2Test):
def setup_clients(cls):
super(QuotasV2Test, cls).setup_clients()
cls.quotas_client = cls.os_primary.quotas_client
cls.admin_client = cls.os_admin.quotas_client
cls.alt_client = cls.os_alt.quotas_client
cls.quotas_client = cls.os_primary.dns_v2.QuotasClient()
cls.admin_client = cls.os_admin.dns_v2.QuotasClient()
cls.alt_client = cls.os_alt.dns_v2.QuotasClient()
def _store_quotas(self, project_id=None, cleanup=True):
"""Remember current quotas and reset them after the test"""

View File

@ -61,13 +61,12 @@ class RecordsetsTest(BaseRecordsetsTest):
@classmethod
def setup_clients(cls):
super(RecordsetsTest, cls).setup_clients()
cls.client = cls.os_primary.recordset_client
cls.alt_client = cls.os_alt.recordset_client
cls.admin_client = cls.os_admin.recordset_client
cls.zone_client = cls.os_primary.zones_client
cls.alt_zone_client = cls.os_alt.zones_client
cls.admin_zone_client = cls.os_admin.zones_client
cls.client = cls.os_primary.dns_v2.RecordsetClient()
cls.alt_client = cls.os_alt.dns_v2.RecordsetClient()
cls.admin_client = cls.os_admin.dns_v2.RecordsetClient()
cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
cls.alt_zone_client = cls.os_alt.dns_v2.ZonesClient()
cls.admin_zone_client = cls.os_admin.dns_v2.ZonesClient()
@decorators.attr(type='smoke')
@decorators.idempotent_id('631d74fd-6909-4684-a61b-5c4d2f92c3e7')
@ -311,10 +310,9 @@ class RecordsetsNegativeTest(BaseRecordsetsTest):
@classmethod
def setup_clients(cls):
super(RecordsetsNegativeTest, cls).setup_clients()
cls.client = cls.os_primary.recordset_client
cls.alt_client = cls.os_alt.recordset_client
cls.zone_client = cls.os_primary.zones_client
cls.client = cls.os_primary.dns_v2.RecordsetClient()
cls.alt_client = cls.os_alt.dns_v2.RecordsetClient()
cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
@decorators.idempotent_id('98c94f8c-217a-4056-b996-b1f856d0753e')
@ddt.file_data("recordset_data_invalid.json")
@ -457,9 +455,8 @@ class RootRecordsetsTests(BaseRecordsetsTest):
@classmethod
def setup_clients(cls):
super(RootRecordsetsTests, cls).setup_clients()
cls.client = cls.os_primary.recordset_client
cls.zone_client = cls.os_primary.zones_client
cls.client = cls.os_primary.dns_v2.RecordsetClient()
cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
@classmethod
def skip_checks(cls):
@ -554,12 +551,11 @@ class RecordsetOwnershipTest(BaseRecordsetsTest):
@classmethod
def setup_clients(cls):
super(RecordsetOwnershipTest, cls).setup_clients()
cls.client = cls.os_primary.recordset_client
cls.zone_client = cls.os_primary.zones_client
cls.alt_client = cls.os_alt.recordset_client
cls.alt_zone_client = cls.os_alt.zones_client
cls.admin_client = cls.os_admin.recordset_client
cls.client = cls.os_primary.dns_v2.RecordsetClient()
cls.alt_client = cls.os_alt.dns_v2.RecordsetClient()
cls.admin_client = cls.os_admin.dns_v2.RecordsetClient()
cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
cls.alt_zone_client = cls.os_alt.dns_v2.ZonesClient()
def _create_client_recordset(self, clients_list):
"""Create a zone and asoociated recordset using given credentials

View File

@ -51,8 +51,8 @@ class RecordsetValidationTest(base.BaseDnsV2Test):
def setup_clients(cls):
super(RecordsetValidationTest, cls).setup_clients()
cls.recordset_client = cls.os_primary.recordset_client
cls.zones_client = cls.os_primary.zones_client
cls.recordset_client = cls.os_primary.dns_v2.RecordsetClient()
cls.zones_client = cls.os_primary.dns_v2.ZonesClient()
@property
def zone(self):

View File

@ -38,8 +38,8 @@ class ServiceStatus(base.BaseDnsV2Test):
def setup_clients(cls):
super(ServiceStatus, cls).setup_clients()
cls.client = cls.os_primary.service_client
cls.admin_client = cls.os_admin.service_client
cls.client = cls.os_primary.dns_v2.ServiceClient()
cls.admin_client = cls.os_admin.dns_v2.ServiceClient()
@decorators.idempotent_id('bf277a76-8583-11eb-a557-74e5f9e2a801')
def test_list_service_statuses(self):

View File

@ -38,7 +38,7 @@ class TldAdminTest(BaseTldTest):
@classmethod
def setup_clients(cls):
super(TldAdminTest, cls).setup_clients()
cls.admin_client = cls.os_admin.tld_client
cls.admin_client = cls.os_admin.dns_v2.TldClient()
@classmethod
def resource_setup(cls):
@ -140,7 +140,7 @@ class TestTldNotFoundAdmin(BaseTldTest):
@classmethod
def setup_clients(cls):
super(TestTldNotFoundAdmin, cls).setup_clients()
cls.admin_client = cls.os_admin.tld_client
cls.admin_client = cls.os_admin.dns_v2.TldClient()
@decorators.idempotent_id('b237d5ee-0d76-4294-a3b6-c2f8bf4b0e30')
def test_show_tld_404(self):
@ -183,7 +183,7 @@ class TestTldInvalidIdAdmin(BaseTldTest):
@classmethod
def setup_clients(cls):
super(TestTldInvalidIdAdmin, cls).setup_clients()
cls.admin_client = cls.os_admin.tld_client
cls.admin_client = cls.os_admin.dns_v2.TldClient()
@decorators.idempotent_id('f9ec0730-57ff-4720-8d06-e11d377c7cfc')
def test_show_tld_invalid_uuid(self):

View File

@ -40,19 +40,19 @@ class TransferAcceptTest(BaseTransferAcceptTest):
super(TransferAcceptTest, cls).setup_clients()
# Primary clients
cls.prm_zone_client = cls.os_primary.zones_client
cls.prm_request_client = cls.os_primary.transfer_request_client
cls.prm_accept_client = cls.os_primary.transfer_accept_client
cls.prm_zone_client = cls.os_primary.dns_v2.ZonesClient()
cls.prm_request_client = cls.os_primary.dns_v2.TransferRequestClient()
cls.prm_accept_client = cls.os_primary.dns_v2.TransferAcceptClient()
# Alt clients
cls.alt_zone_client = cls.os_alt.zones_client
cls.alt_request_client = cls.os_alt.transfer_request_client
cls.alt_accept_client = cls.os_alt.transfer_accept_client
cls.alt_zone_client = cls.os_alt.dns_v2.ZonesClient()
cls.alt_request_client = cls.os_alt.dns_v2.TransferRequestClient()
cls.alt_accept_client = cls.os_alt.dns_v2.TransferAcceptClient()
# Admin clients
cls.admin_zone_client = cls.os_admin.zones_client
cls.admin_request_client = cls.os_admin.transfer_request_client
cls.admin_accept_client = cls.os_admin.transfer_accept_client
cls.admin_zone_client = cls.os_admin.dns_v2.ZonesClient()
cls.admin_request_client = cls.os_admin.dns_v2.TransferRequestClient()
cls.admin_accept_client = cls.os_admin.dns_v2.TransferAcceptClient()
@decorators.idempotent_id('1c6baf97-a83e-4d2e-a5d8-9d37fb7808f3')
def test_create_transfer_accept(self):
@ -305,9 +305,9 @@ class TransferAcceptTestNegative(BaseTransferAcceptTest):
@classmethod
def setup_clients(cls):
super(TransferAcceptTestNegative, cls).setup_clients()
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
cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
cls.request_client = cls.os_primary.dns_v2.TransferRequestClient()
cls.client = cls.os_primary.dns_v2.TransferAcceptClient()
@decorators.idempotent_id('324a3e80-a1cc-11eb-b534-74e5f9e2a801')
def test_create_transfer_accept_using_invalid_key(self):

View File

@ -39,11 +39,11 @@ class TransferRequestTest(BaseTransferRequestTest):
def setup_clients(cls):
super(TransferRequestTest, cls).setup_clients()
cls.zone_client = cls.os_primary.zones_client
cls.alt_zone_client = cls.os_alt.zones_client
cls.client = cls.os_primary.transfer_request_client
cls.alt_client = cls.os_alt.transfer_request_client
cls.admin_client = cls.os_admin.transfer_request_client
cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
cls.alt_zone_client = cls.os_alt.dns_v2.ZonesClient()
cls.client = cls.os_primary.dns_v2.TransferRequestClient()
cls.alt_client = cls.os_alt.dns_v2.TransferRequestClient()
cls.admin_client = cls.os_admin.dns_v2.TransferRequestClient()
@decorators.idempotent_id('2381d489-ad84-403d-b0a2-8b77e4e966bf')
def test_create_transfer_request(self):
@ -282,7 +282,7 @@ class TestTransferRequestNotFound(BaseTransferRequestTest):
@classmethod
def setup_clients(cls):
super(TestTransferRequestNotFound, cls).setup_clients()
cls.client = cls.os_primary.transfer_request_client
cls.client = cls.os_primary.dns_v2.TransferRequestClient()
@decorators.idempotent_id('d255f72f-ba24-43df-9dba-011ed7f4625d')
def test_show_transfer_request_404(self):
@ -324,7 +324,7 @@ class TestTransferRequestInvalidId(BaseTransferRequestTest):
@classmethod
def setup_clients(cls):
super(TestTransferRequestInvalidId, cls).setup_clients()
cls.client = cls.os_primary.transfer_request_client
cls.client = cls.os_primary.dns_v2.TransferRequestClient()
@decorators.idempotent_id('2205dd19-ecc7-4c68-9e89-63c47d642b07')
def test_show_transfer_request_invalid_uuid(self):

View File

@ -38,8 +38,8 @@ class TsigkeyAdminTest(BaseTsigkeyTest):
@classmethod
def setup_clients(cls):
super(TsigkeyAdminTest, cls).setup_clients()
cls.zone_client = cls.os_primary.zones_client
cls.admin_client = cls.os_admin.tsigkey_client
cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
cls.admin_client = cls.os_admin.dns_v2.TsigkeyClient()
@decorators.idempotent_id('e7b484e3-7ed5-4840-89d7-1e696986f8e4')
def test_create_tsigkey(self):
@ -151,7 +151,7 @@ class TestTsigkeyNotFoundAdmin(BaseTsigkeyTest):
@classmethod
def setup_clients(cls):
super(TestTsigkeyNotFoundAdmin, cls).setup_clients()
cls.admin_client = cls.os_admin.tsigkey_client
cls.admin_client = cls.os_admin.dns_v2.TsigkeyClient()
@decorators.idempotent_id('824c9b49-edc5-4282-929e-467a158d23e4')
def test_show_tsigkey_404(self):
@ -194,7 +194,7 @@ class TestTsigkeyInvalidIdAdmin(BaseTsigkeyTest):
@classmethod
def setup_clients(cls):
super(TestTsigkeyInvalidIdAdmin, cls).setup_clients()
cls.admin_client = cls.os_admin.tsigkey_client
cls.admin_client = cls.os_admin.dns_v2.TsigkeyClient()
@decorators.idempotent_id('2a8dfc75-9884-4b1c-8f1f-ed835d96f2fe')
def test_show_tsigkey_invalid_uuid(self):

View File

@ -45,11 +45,9 @@ class ZoneTasks(BaseZonesTest):
@classmethod
def setup_clients(cls):
super(ZoneTasks, cls).setup_clients()
cls.client = cls.os_primary.zones_client
cls.alt_client = cls.os_alt.zones_client
cls.admin_client = cls.os_admin.zones_client
cls.query_client = cls.os_primary.query_client
cls.client = cls.os_primary.dns_v2.ZonesClient()
cls.admin_client = cls.os_admin.dns_v2.ZonesClient()
cls.alt_client = cls.os_alt.dns_v2.ZonesClient()
@decorators.idempotent_id('287e2cd0-a0e7-11eb-b962-74e5f9e2a801')
def test_zone_abandon(self):
@ -117,11 +115,9 @@ class ZoneTasksNegative(BaseZonesTest):
@classmethod
def setup_clients(cls):
super(ZoneTasksNegative, cls).setup_clients()
cls.client = cls.os_primary.zones_client
cls.alt_client = cls.os_alt.zones_client
cls.admin_client = cls.os_admin.zones_client
cls.query_client = cls.os_primary.query_client
cls.client = cls.os_primary.dns_v2.ZonesClient()
cls.admin_client = cls.os_admin.dns_v2.ZonesClient()
cls.alt_client = cls.os_alt.dns_v2.ZonesClient()
def _query_nameserver(self, nameserver, query_timeout,
zone_name, zone_type='SOA'):

View File

@ -34,6 +34,7 @@ class BaseZonesTest(base.BaseDnsV2Test):
class ZonesTest(BaseZonesTest):
credentials = ['admin', 'primary']
@classmethod
def setup_credentials(cls):
# Do not create network resources for these test.
@ -43,9 +44,8 @@ class ZonesTest(BaseZonesTest):
@classmethod
def setup_clients(cls):
super(ZonesTest, cls).setup_clients()
cls.client = cls.os_primary.zones_client
cls.pool_client = cls.os_admin.pool_client
cls.client = cls.os_primary.dns_v2.ZonesClient()
cls.pool_client = cls.os_admin.dns_v2.PoolClient()
@decorators.idempotent_id('9d2e20fc-e56f-4a62-9c61-9752a9ec615c')
def test_create_zones(self):
@ -203,10 +203,9 @@ class ZonesAdminTest(BaseZonesTest):
@classmethod
def setup_clients(cls):
super(ZonesAdminTest, cls).setup_clients()
cls.client = cls.os_primary.zones_client
cls.admin_client = cls.os_admin.zones_client
cls.alt_client = cls.os_alt.zones_client
cls.client = cls.os_primary.dns_v2.ZonesClient()
cls.admin_client = cls.os_admin.dns_v2.ZonesClient()
cls.alt_client = cls.os_alt.dns_v2.ZonesClient()
@decorators.idempotent_id('f6fe8cce-8b04-11eb-a861-74e5f9e2a801')
def test_show_zone_impersonate_another_project(self):
@ -300,9 +299,8 @@ class ZoneOwnershipTest(BaseZonesTest):
@classmethod
def setup_clients(cls):
super(ZoneOwnershipTest, cls).setup_clients()
cls.client = cls.os_primary.zones_client
cls.alt_client = cls.os_alt.zones_client
cls.client = cls.os_primary.dns_v2.ZonesClient()
cls.alt_client = cls.os_alt.dns_v2.ZonesClient()
@decorators.idempotent_id('5d28580a-a012-4b57-b211-e077b1a01340')
def test_no_create_duplicate_domain(self):
@ -353,7 +351,7 @@ class ZonesNegativeTest(BaseZonesTest):
@classmethod
def setup_clients(cls):
super(ZonesNegativeTest, cls).setup_clients()
cls.client = cls.os_primary.zones_client
cls.client = cls.os_primary.dns_v2.ZonesClient()
@decorators.idempotent_id('551853c0-8593-11eb-8c8a-74e5f9e2a801')
def test_no_valid_zone_name(self):

View File

@ -38,12 +38,11 @@ class ZonesExportTest(BaseZoneExportsTest):
@classmethod
def setup_clients(cls):
super(ZonesExportTest, cls).setup_clients()
cls.zone_client = cls.os_primary.zones_client
cls.alt_zone_client = cls.os_alt.zones_client
cls.client = cls.os_primary.zone_exports_client
cls.alt_client = cls.os_alt.zone_exports_client
cls.admin_client = cls.os_admin.zone_exports_client
cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
cls.alt_zone_client = cls.os_alt.dns_v2.ZonesClient()
cls.client = cls.os_primary.dns_v2.ZoneExportsClient()
cls.alt_client = cls.os_alt.dns_v2.ZoneExportsClient()
cls.admin_client = cls.os_admin.dns_v2.ZoneExportsClient()
@decorators.idempotent_id('2dd8a9a0-98a2-4bf6-bb51-286583b30f40')
def test_create_zone_export(self):
@ -228,10 +227,9 @@ class ZonesExportTestNegative(BaseZoneExportsTest):
@classmethod
def setup_clients(cls):
super(ZonesExportTestNegative, cls).setup_clients()
cls.zone_client = cls.os_primary.zones_client
cls.client = cls.os_primary.zone_exports_client
cls.alt_client = cls.os_alt.zone_exports_client
cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
cls.client = cls.os_primary.dns_v2.ZoneExportsClient()
cls.alt_client = cls.os_alt.dns_v2.ZoneExportsClient()
@decorators.idempotent_id('76ab8ec4-95fd-11eb-b1cd-74e5f9e2a801')
def test_create_zone_export_using_invalid_zone_id(self):

View File

@ -41,11 +41,10 @@ class ZonesImportTest(BaseZonesImportTest):
@classmethod
def setup_clients(cls):
super(ZonesImportTest, cls).setup_clients()
cls.client = cls.os_primary.zone_imports_client
cls.alt_client = cls.os_alt.zone_imports_client
cls.admin_client = cls.os_admin.zone_imports_client
cls.zone_client = cls.os_primary.zones_client
cls.zone_client = cls.os_primary.dns_v2.ZonesClient()
cls.client = cls.os_primary.dns_v2.ZoneImportsClient()
cls.alt_client = cls.os_alt.dns_v2.ZoneImportsClient()
cls.admin_client = cls.os_admin.dns_v2.ZoneImportsClient()
def clean_up_resources(self, zone_import_id):
zone_import = self.client.show_zone_import(zone_import_id)[1]

View File

@ -16,8 +16,14 @@ from tempest import test
from tempest import config
from tempest.lib.common.utils import test_utils as utils
# TODO(johnsom) remove once neutron-tempest-plugin test_dns_integration
# has been updated
# https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/800291
from designate_tempest_plugin import clients
from designate_tempest_plugin.services.dns.query.query_client import \
QueryClient
CONF = config.CONF
@ -76,6 +82,19 @@ class BaseDnsTest(test.BaseTestCase):
% cls.__name__)
raise cls.skipException(skip_msg)
@classmethod
def setup_clients(cls):
super(BaseDnsTest, cls).setup_clients()
# The Query Client is not an OpenStack client which means
# we should not set it up through the tempest client manager.
# Set it up here so all tests have access to it.
cls.query_client = QueryClient(
nameservers=CONF.dns.nameservers,
query_timeout=CONF.dns.query_timeout,
build_interval=CONF.dns.build_interval,
build_timeout=CONF.dns.build_timeout,
)
def assertExpected(self, expected, actual, excluded_keys):
for key, value in six.iteritems(expected):
if key not in excluded_keys:
@ -122,7 +141,9 @@ class BaseDnsTest(test.BaseTestCase):
class BaseDnsV2Test(BaseDnsTest):
"""Base class for DNS V2 API tests."""
# Use the Designate V2 Client Manager
# TODO(johnsom) remove once neutron-tempest-plugin test_dns_integration
# has been updated
# https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/800291
client_manager = clients.ManagerV2
@classmethod
@ -138,9 +159,6 @@ class BaseDnsV2Test(BaseDnsTest):
class BaseDnsAdminTest(BaseDnsTest):
"""Base class for DNS Admin API tests."""
# Use the Designate Admin Client Manager
client_manager = clients.ManagerAdmin
@classmethod
def skip_checks(cls):
super(BaseDnsAdminTest, cls).skip_checks()

View File

@ -31,9 +31,8 @@ class RecordsetsTest(base.BaseDnsV2Test):
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
cls.client = cls.os_primary.dns_v2.ZonesClient()
cls.recordset_client = cls.os_primary.dns_v2.RecordsetClient()
@classmethod
def resource_setup(cls):

View File

@ -29,8 +29,7 @@ class ZonesTest(base.BaseDnsV2Test):
def setup_clients(cls):
super(ZonesTest, cls).setup_clients()
cls.client = cls.os_primary.zones_client
cls.query_client = cls.os_primary.query_client
cls.client = cls.os_primary.dns_v2.ZonesClient()
@decorators.attr(type='smoke')
@decorators.attr(type='slow')

View File

@ -28,8 +28,8 @@ class ZonesExportTest(BaseZoneExportsTest):
def setup_clients(cls):
super(ZonesExportTest, cls).setup_clients()
cls.zones_client = cls.os_primary.zones_client
cls.client = cls.os_primary.zone_exports_client
cls.client = cls.os_primary.dns_v2.ZoneExportsClient()
cls.zones_client = cls.os_primary.dns_v2.ZonesClient()
@decorators.attr(type='slow')
@decorators.idempotent_id('0484c3c4-df57-458e-a6e5-6eb63e0475e0')

View File

@ -28,8 +28,8 @@ class ZonesImportTest(BaseZonesImportTest):
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
cls.client = cls.os_primary.dns_v2.ZoneImportsClient()
cls.zones_client = cls.os_primary.dns_v2.ZonesClient()
@decorators.attr(type='slow')
@decorators.idempotent_id('679f38d0-2f2f-49c5-934e-8fe0c452f56e')

View File

@ -27,14 +27,14 @@ class ZonesTransferTest(base.BaseDnsV2Test):
@classmethod
def setup_clients(cls):
super(ZonesTransferTest, cls).setup_clients()
cls.zones_client = cls.os_primary.zones_client
cls.alt_zones_client = cls.os_alt.zones_client
cls.admin_zones_client = cls.os_admin.zones_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_primary.transfer_accept_client
cls.alt_accept_client = cls.os_alt.transfer_accept_client
cls.admin_accept_client = cls.os_admin.transfer_accept_client
cls.zones_client = cls.os_primary.dns_v2.ZonesClient()
cls.alt_zones_client = cls.os_alt.dns_v2.ZonesClient()
cls.admin_zones_client = cls.os_admin.dns_v2.ZonesClient()
cls.request_client = cls.os_primary.dns_v2.TransferRequestClient()
cls.alt_request_client = cls.os_alt.dns_v2.TransferRequestClient()
cls.accept_client = cls.os_primary.dns_v2.TransferAcceptClient()
cls.alt_accept_client = cls.os_alt.dns_v2.TransferAcceptClient()
cls.admin_accept_client = cls.os_admin.dns_v2.TransferAcceptClient()
@decorators.idempotent_id('60bd80ac-c979-4686-9a03-f2f775f272ab')
def test_zone_transfer(self):