blob: a4d84c8b9976edb9b9736442de12dd20c4b6081e [file] [log] [blame]
Kiall Mac Innes25fb29e2016-04-07 08:07:04 +01001# Copyright 2016 Hewlett Packard Enterprise Development Company, L.P.
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations
13# under the License.
14from tempest import clients
15from tempest import config
Cao Xuan Hoanga585e942016-08-29 14:52:30 +070016from tempest.lib import auth
Kiall Mac Innes25fb29e2016-04-07 08:07:04 +010017
18from designate_tempest_plugin.services.dns.v2.json.zones_client import \
19 ZonesClient
sonu.kumaraec952a2016-04-20 10:08:46 +090020from designate_tempest_plugin.services.dns.v2.json.zone_imports_client import \
21 ZoneImportsClient
Paul Glass8abae332016-04-21 15:34:09 +000022from designate_tempest_plugin.services.dns.v2.json.blacklists_client import \
23 BlacklistsClient
Graham Hayesc8114982016-07-04 17:46:08 +010024from designate_tempest_plugin.services.dns.v2.json.quotas_client import \
Paul Glass89edc112016-04-21 17:06:33 +000025 QuotasClient
sonu.kumarc8f7a702016-04-29 21:07:16 +090026from designate_tempest_plugin.services.dns.v2.json.zone_exports_client import \
27 ZoneExportsClient
sonu.kumarde24d962016-05-05 00:28:00 +090028from designate_tempest_plugin.services.dns.v2.json.recordset_client import \
29 RecordsetClient
sonu.kumar4beb93c2016-05-05 01:12:43 +090030from designate_tempest_plugin.services.dns.v2.json.pool_client import \
31 PoolClient
sonu.kumar2de01be2016-05-05 10:07:28 +090032from designate_tempest_plugin.services.dns.v2.json.tld_client import \
33 TldClient
Graham Hayesc8114982016-07-04 17:46:08 +010034from designate_tempest_plugin.services.dns.admin.json.quotas_client import \
35 QuotasClient as AdminQuotaClient
Paul Glasscf98c262016-05-13 19:34:37 +000036from designate_tempest_plugin.services.dns.query.query_client import \
37 QueryClient
sonu.kumare9785c92016-05-17 10:56:47 +090038from designate_tempest_plugin.services.dns.v2.json.transfer_request_client \
39 import TransferRequestClient
sonu.kumarea0ba082016-05-16 14:13:47 +090040from designate_tempest_plugin.services.dns.v2.json.transfer_accepts_client \
41 import TransferAcceptClient
sonu.kumarc3110862016-05-27 14:48:04 +090042from designate_tempest_plugin.services.dns.v2.json.tsigkey_client \
43 import TsigkeyClient
Arkady Shtempler5e9466d2021-03-15 12:56:30 +020044from designate_tempest_plugin.services.dns.v2.json.service_client \
45 import SevriceClient
Arkady Shtempler868a8402021-03-16 13:28:19 +020046from designate_tempest_plugin.services.dns.v2.json.designate_limit_client \
47 import DesignateLimitClient
Arkady Shtempler7986b462021-03-18 14:38:00 +020048from designate_tempest_plugin.services.dns.v2.json.ptr_client import PtrClient
Kiall Mac Innes25fb29e2016-04-07 08:07:04 +010049
50CONF = config.CONF
51
52
Kiall Mac Innes8ae796c2016-04-21 13:47:25 +010053class ManagerV2(clients.Manager):
Paul Glassd56330a2016-06-13 21:03:33 +000054
Graham Hayesc1978262017-01-11 17:17:32 +000055 def __init__(self, credentials=None):
56 super(ManagerV2, self).__init__(credentials)
Paul Glassd56330a2016-06-13 21:03:33 +000057 self._init_clients(self._get_params())
Kiall Mac Innes25fb29e2016-04-07 08:07:04 +010058
Paul Glassd56330a2016-06-13 21:03:33 +000059 def _init_clients(self, params):
60 self.zones_client = ZonesClient(**params)
61 self.zone_imports_client = ZoneImportsClient(**params)
62 self.blacklists_client = BlacklistsClient(**params)
63 self.quotas_client = QuotasClient(**params)
64 self.zone_exports_client = ZoneExportsClient(**params)
65 self.recordset_client = RecordsetClient(**params)
66 self.pool_client = PoolClient(**params)
67 self.tld_client = TldClient(**params)
68 self.transfer_request_client = TransferRequestClient(**params)
69 self.transfer_accept_client = TransferAcceptClient(**params)
70 self.tsigkey_client = TsigkeyClient(**params)
Arkady Shtempler5e9466d2021-03-15 12:56:30 +020071 self.service_client = SevriceClient(**params)
Arkady Shtempler868a8402021-03-16 13:28:19 +020072 self.designate_limit_client = DesignateLimitClient(**params)
Arkady Shtempler7986b462021-03-18 14:38:00 +020073 self.ptr_client = PtrClient(**params)
Kiall Mac Innes25fb29e2016-04-07 08:07:04 +010074
Paul Glasscf98c262016-05-13 19:34:37 +000075 self.query_client = QueryClient(
76 nameservers=CONF.dns.nameservers,
77 query_timeout=CONF.dns.query_timeout,
78 build_interval=CONF.dns.build_interval,
79 build_timeout=CONF.dns.build_timeout,
80 )
Paul Glassd56330a2016-06-13 21:03:33 +000081
82 def _get_params(self):
83 params = dict(self.default_params)
84 params.update({
85 'auth_provider': self.auth_provider,
86 'service': CONF.dns.catalog_type,
87 'region': CONF.identity.region,
88 'endpoint_type': CONF.dns.endpoint_type,
89 'build_interval': CONF.dns.build_interval,
90 'build_timeout': CONF.dns.build_timeout
91 })
92 return params
93
94
Graham Hayesc8114982016-07-04 17:46:08 +010095class ManagerAdmin(clients.Manager):
96
Graham Hayesc1978262017-01-11 17:17:32 +000097 def __init__(self, credentials=None):
98 super(ManagerAdmin, self).__init__(credentials)
Graham Hayesc8114982016-07-04 17:46:08 +010099 self._init_clients(self._get_params())
100
101 def _init_clients(self, params):
102 self.quotas_client = AdminQuotaClient(**params)
103
104 def _get_params(self):
105 params = dict(self.default_params)
106 params.update({
107 'auth_provider': self.auth_provider,
108 'service': CONF.dns.catalog_type,
109 'region': CONF.identity.region,
110 'endpoint_type': CONF.dns.endpoint_type,
111 'build_interval': CONF.dns.build_interval,
112 'build_timeout': CONF.dns.build_timeout
113 })
114 return params
115
116
Paul Glassd56330a2016-06-13 21:03:33 +0000117class ManagerV2Unauthed(ManagerV2):
118
Graham Hayesc1978262017-01-11 17:17:32 +0000119 def __init__(self, credentials=None):
120 super(ManagerV2Unauthed, self).__init__(credentials)
Paul Glass4b07b382016-07-13 19:14:02 +0000121 self.auth_provider = self._auth_provider_class()(
Paul Glassd56330a2016-06-13 21:03:33 +0000122 credentials=self.auth_provider.credentials,
123 auth_url=self.auth_provider.auth_client.auth_url,
124 disable_ssl_certificate_validation=self.auth_provider.dscv,
125 ca_certs=self.auth_provider.ca_certs,
126 trace_requests=self.auth_provider.trace_requests,
127 )
128 self._init_clients(self._get_params())
129
Paul Glass4b07b382016-07-13 19:14:02 +0000130 def _auth_provider_class(self):
131 if CONF.identity.auth_version == 'v3':
132 return KeystoneV3UnauthedProvider
133 else:
134 return KeystoneV2UnauthedProvider
Paul Glassd56330a2016-06-13 21:03:33 +0000135
Paul Glass4b07b382016-07-13 19:14:02 +0000136
Cao Xuan Hoanga585e942016-08-29 14:52:30 +0700137class BaseUnauthedProvider(auth.KeystoneAuthProvider):
Paul Glassd56330a2016-06-13 21:03:33 +0000138
139 def _decorate_request(self, filters, method, url, headers=None, body=None,
140 auth_data=None):
Paul Glass4b07b382016-07-13 19:14:02 +0000141 result = super(BaseUnauthedProvider, self)._decorate_request(
Paul Glassd56330a2016-06-13 21:03:33 +0000142 filters, method, url, headers=headers, body=body,
143 auth_data=auth_data)
144 url, headers, body = result
145 try:
146 del headers['X-Auth-Token']
147 except KeyError:
148 pass
149 return url, headers, body
Paul Glass4b07b382016-07-13 19:14:02 +0000150
151
Cao Xuan Hoanga585e942016-08-29 14:52:30 +0700152class KeystoneV2UnauthedProvider(auth.KeystoneV2AuthProvider,
153 BaseUnauthedProvider):
Paul Glass4b07b382016-07-13 19:14:02 +0000154
155 def _decorate_request(self, *args, **kwargs):
156 return BaseUnauthedProvider._decorate_request(self, *args, **kwargs)
157
158
Cao Xuan Hoanga585e942016-08-29 14:52:30 +0700159class KeystoneV3UnauthedProvider(auth.KeystoneV3AuthProvider,
160 BaseUnauthedProvider):
Paul Glass4b07b382016-07-13 19:14:02 +0000161
162 def _decorate_request(self, *args, **kwargs):
163 return BaseUnauthedProvider._decorate_request(self, *args, **kwargs)