Removes "DDT" module from Designate-Tempest-Plugin

This patch removes DDT module from the code as well as
all *.json files related to it.

Change-Id: I2203d52c4a816dee0960339a8ea3e0ea023b131d
This commit is contained in:
Arkady Shtempler 2023-06-14 17:06:53 +03:00
parent 25c93a50ec
commit 462e39d73f
11 changed files with 252 additions and 253 deletions

View File

@ -1,5 +0,0 @@
{
"empty_preference": {"pref": ""},
"minus_zero_preference": {"pref": "-0"},
"minus_one_preference": {"pref": "-1"}
}

View File

@ -1,6 +0,0 @@
{
"minus_zero_algorithm": {"algo": "-0", "finger": null},
"minus_zero_fingerprint": {"algo": null, "finger": "-0"},
"minus_one_algorithm": {"algo": "-1", "finger": null},
"minus_one_fingerprint": {"algo": null, "finger": "-1"}
}

View File

@ -1,5 +0,0 @@
{
"trailing_slash": {"data": "\\"},
"trailing_double_slash": {"data": "\\\\"},
"trailing_slash_after_text": {"data": "testtext\\"}
}

View File

@ -1,12 +0,0 @@
{
"CNAME multiple": {
"name": "www",
"type": "CNAME",
"records": ["target1.example.org.", "target2.example.org."]
},
"CNAME at Apex": {
"name": null,
"type": "CNAME",
"records": ["target1.example.org."]
}
}

View File

@ -1,53 +0,0 @@
{
"A at APEX": {
"name": "*",
"type": "A",
"records": ["192.0.2.1", "192.0.2.2", "192.0.2.3"]
},
"A under APEX": {
"name": "*.sub",
"type": "A",
"records": ["192.0.2.1", "192.0.2.2", "192.0.2.3"]
},
"AAAA at APEX": {
"name": "*",
"type": "AAAA",
"records": ["2001:db8::1", "2001:db8::1", "2001:db8::"]
},
"AAAA under APEX": {
"name": "*.sub",
"type": "AAAA",
"records": ["2001:db8::1", "2001:db8::1", "2001:db8::"]
},
"MX at APEX": {
"name": "*",
"type": "MX",
"records": ["10 mail1.example.org.",
"20 mail2.example.org."]
},
"MX under APEX": {
"name": "*.sub",
"type": "MX",
"records": ["10 mail.example.org."]
},
"SPF at APEX": {
"name": "*",
"type": "SPF",
"records": ["\"v=spf1; a -all\""]
},
"SPF under APEX": {
"name": "*.sub",
"type": "SPF",
"records": ["\"v=spf1; a -all\""]
},
"TXT at APEX": {
"name": "*",
"type": "TXT",
"records": ["\"Can you read me?\""]
},
"TXT under APEX": {
"name": "*.sub",
"type": "TXT",
"records": ["\"Can you read me?\""]
}
}

View File

@ -16,7 +16,6 @@ from tempest import config
from tempest.lib import decorators from tempest.lib import decorators
from tempest.lib import exceptions as lib_exc from tempest.lib import exceptions as lib_exc
from tempest.lib.common.utils import data_utils from tempest.lib.common.utils import data_utils
import ddt
from designate_tempest_plugin.tests import base from designate_tempest_plugin.tests import base
from designate_tempest_plugin.common import constants as const from designate_tempest_plugin.common import constants as const
@ -63,7 +62,6 @@ class BaseRecordsetsTest(base.BaseDnsV2Test):
super(BaseRecordsetsTest, cls).resource_cleanup() super(BaseRecordsetsTest, cls).resource_cleanup()
@ddt.ddt
class RecordsetsTest(BaseRecordsetsTest): class RecordsetsTest(BaseRecordsetsTest):
credentials = ["admin", "system_admin", "system_reader", "primary", "alt", credentials = ["admin", "system_admin", "system_reader", "primary", "alt",
@ -190,9 +188,7 @@ class RecordsetsTest(BaseRecordsetsTest):
self._test_create_recordset_type( self._test_create_recordset_type(
"www", "TXT", ["\"Any Old Text Goes Here\""]) "www", "TXT", ["\"Any Old Text Goes Here\""])
@decorators.idempotent_id('69f002e5-6511-43d3-abae-7abdd45ae03e') def _test_create_wildcard_recordset(self, name, type, records):
@ddt.file_data("recordset_wildcard_data.json")
def test_create_wildcard_recordset(self, name, type, records):
if name is not None: if name is not None:
recordset_name = name + "." + self.zone['name'] recordset_name = name + "." + self.zone['name']
@ -215,6 +211,56 @@ class RecordsetsTest(BaseRecordsetsTest):
LOG.info('Ensure we respond with PENDING') LOG.info('Ensure we respond with PENDING')
self.assertEqual(const.PENDING, body['status']) self.assertEqual(const.PENDING, body['status'])
@decorators.idempotent_id('69f002e5-6511-43d3-abae-7abdd45ae03e')
def test_create_wildcard_recordset_A_at_APEX(self):
self._test_create_wildcard_recordset(
"*", "A", ["192.0.2.1", "192.0.2.2", "192.0.2.3"])
@decorators.idempotent_id('d97ee452-0dc3-11ee-8b75-201e8823901f')
def test_create_wildcard_recordset_A_under_APEX(self):
self._test_create_wildcard_recordset(
"*.sub", "A", ["192.0.2.1", "192.0.2.2", "192.0.2.3"])
@decorators.idempotent_id('1b3c1cc0-0dc4-11ee-8b75-201e8823901f')
def test_create_wildcard_recordset_AAAA_at_APEX(self):
self._test_create_wildcard_recordset(
"*", "AAAA", ["2001:db8::1", "2001:db8::1", "2001:db8::"])
@decorators.idempotent_id('928e735e-0dc4-11ee-8b75-201e8823901f')
def test_create_wildcard_recordset_AAAA_under_APEX(self):
self._test_create_wildcard_recordset(
"*.sub", "AAAA", ["2001:db8::1", "2001:db8::1", "2001:db8::"])
@decorators.idempotent_id('d96138f2-0dc4-11ee-8b75-201e8823901f')
def test_create_wildcard_recordset_MX_at_APEX(self):
self._test_create_wildcard_recordset(
"*", "MX", ["10 mail1.example.org.", "20 mail2.example.org."])
@decorators.idempotent_id('ff273c94-0dc4-11ee-8b75-201e8823901f')
def test_create_wildcard_recordset_MX_under_APEX(self):
self._test_create_wildcard_recordset(
"*.sub", "MX", ["10 mail.example.org."])
@decorators.idempotent_id('3097f16a-0dc5-11ee-8b75-201e8823901f')
def test_create_wildcard_recordset_SPF_at_APEX(self):
self._test_create_wildcard_recordset(
"*", "SPF", ["\"v=spf1; a -all\""])
@decorators.idempotent_id('50b3f390-0dc5-11ee-8b75-201e8823901f')
def test_create_wildcard_recordset_SPF_under_APEX(self):
self._test_create_wildcard_recordset(
"*.sub", "SPF", ["\"v=spf1; a -all\""])
@decorators.idempotent_id('5b73981c-0dc5-11ee-8b75-201e8823901f')
def test_create_wildcard_recordset_TXT_at_APEX(self):
self._test_create_wildcard_recordset(
"*", "TXT", ["\"Can you read me?\""])
@decorators.idempotent_id('5b73981c-0dc5-11ee-8b75-201e8823901f')
def test_create_wildcard_recordset_TXT_under_APEX(self):
self._test_create_wildcard_recordset(
"*.sub", "TXT", ["\"Can you read me?\""])
@decorators.idempotent_id('5964f730-5546-46e6-9105-5030e9c492b2') @decorators.idempotent_id('5964f730-5546-46e6-9105-5030e9c492b2')
def test_list_recordsets(self): def test_list_recordsets(self):
recordset_data = dns_data_utils.rand_recordset_data( recordset_data = dns_data_utils.rand_recordset_data(
@ -565,7 +611,6 @@ class RecordsetsTest(BaseRecordsetsTest):
lambda: self.client.show_recordset(zone['id'], record['id'])) lambda: self.client.show_recordset(zone['id'], record['id']))
@ddt.ddt
class RecordsetsNegativeTest(BaseRecordsetsTest): class RecordsetsNegativeTest(BaseRecordsetsTest):
credentials = ["admin", "system_admin", "primary", "alt"] credentials = ["admin", "system_admin", "primary", "alt"]
@ -582,9 +627,7 @@ class RecordsetsNegativeTest(BaseRecordsetsTest):
cls.client = cls.os_primary.dns_v2.RecordsetClient() cls.client = cls.os_primary.dns_v2.RecordsetClient()
cls.alt_client = cls.os_alt.dns_v2.RecordsetClient() cls.alt_client = cls.os_alt.dns_v2.RecordsetClient()
@decorators.idempotent_id('98c94f8c-217a-4056-b996-b1f856d0753e') def _test_create_recordset_invalid(self, name, type, records):
@ddt.file_data("recordset_data_invalid.json")
def test_create_recordset_invalid(self, name, type, records):
if name is not None: if name is not None:
recordset_name = name + "." + self.zone['name'] recordset_name = name + "." + self.zone['name']
@ -602,6 +645,16 @@ class RecordsetsNegativeTest(BaseRecordsetsTest):
lambda: self.client.create_recordset( lambda: self.client.create_recordset(
self.zone['id'], recordset_data)) self.zone['id'], recordset_data))
@decorators.idempotent_id('98c94f8c-217a-4056-b996-b1f856d0753e')
def test_create_recordset_invalid_CNAME_multiple(self):
self._test_create_recordset_invalid(
'www', 'CNAME', ["target1.example.org.", "target2.example.org."])
@decorators.idempotent_id('43385ce8-0dd3-11ee-8b75-201e8823901f')
def test_create_recordset_invalid_CNAME_at_Apex(self):
self._test_create_recordset_invalid(
None, 'CNAME', ["target1.example.org."])
@decorators.idempotent_id('b6dad57e-5ce9-4fa5-8d66-aebbcd23b4ad') @decorators.idempotent_id('b6dad57e-5ce9-4fa5-8d66-aebbcd23b4ad')
def test_get_nonexistent_recordset(self): def test_get_nonexistent_recordset(self):
LOG.info('Attempt to get an invalid Recordset') LOG.info('Attempt to get an invalid Recordset')

View File

@ -13,7 +13,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
""" """
import ddt from oslo_log import log as logging
from tempest import config from tempest import config
from tempest.lib import decorators from tempest.lib import decorators
@ -25,6 +25,7 @@ from designate_tempest_plugin import data_utils as dns_data_utils
CONF = config.CONF CONF = config.CONF
LOG = logging.getLogger(__name__)
RECORDSETS_DATASET = [ RECORDSETS_DATASET = [
'A', 'A',
'AAAA', 'AAAA',
@ -35,9 +36,25 @@ RECORDSETS_DATASET = [
'SSHFP', 'SSHFP',
'TXT', 'TXT',
] ]
INVALID_TXT_DATASET = {
"trailing_slash": {"data": "\\"},
"trailing_double_slash": {"data": "\\\\"},
"trailing_slash_after_text": {"data": "testtext\\"}}
VALID_TXT_DATASET = {
"slash_with_one_trailing_space": {"data": "\"\\ \""},
"slash_with_many_trailing_space": {"data": "\"\\ \""},
"text_with_slash_and_trailing_space": {"data": "\"the txts \""}}
INVALID_MX_DATASET = {
"empty_preference": {"pref": ""},
"minus_zero_preference": {"pref": "-0"},
"minus_one_preference": {"pref": "-1"}}
INVALID_SSHFP_DATASET = {
"minus_zero_algorithm": {"algo": "-0", "finger": None},
"minus_zero_fingerprint": {"algo": None, "finger": "-0"},
"minus_one_algorithm": {"algo": "-1", "finger": None},
"minus_one_fingerprint": {"algo": None, "finger": "-1"}}
@ddt.ddt
class RecordsetValidationTest(base.BaseDnsV2Test): class RecordsetValidationTest(base.BaseDnsV2Test):
credentials = ["admin", "primary", "system_admin"] credentials = ["admin", "primary", "system_admin"]
@ -88,39 +105,35 @@ class RecordsetValidationTest(base.BaseDnsV2Test):
return body return body
@decorators.idempotent_id('c5ef87e2-cb79-4758-b968-18eef2c251df') @decorators.idempotent_id('c5ef87e2-cb79-4758-b968-18eef2c251df')
@ddt.data(*RECORDSETS_DATASET) def test_create_invalid(self):
def test_create_invalid(self, rtype): for rtype in RECORDSETS_DATASET:
data = ["b0rk"] data = ["b0rk"]
for i in data:
for i in data: model = dns_data_utils.make_rand_recordset(
model = dns_data_utils.make_rand_recordset( self.zone['name'], rtype)
self.zone['name'], rtype) model['data'] = i
model['data'] = i self.assertRaisesDns(
exceptions.BadRequest, 'invalid_object', 400,
self.assertRaisesDns( self.recordset_client.create_recordset,
exceptions.BadRequest, 'invalid_object', 400, self.zone['id'], model
self.recordset_client.create_recordset, )
self.zone['id'], model
)
@decorators.idempotent_id('1164c826-dceb-4557-9a22-7d65c4a4f5f4') @decorators.idempotent_id('1164c826-dceb-4557-9a22-7d65c4a4f5f4')
@ddt.data(*RECORDSETS_DATASET) def test_update_invalid(self):
def test_update_invalid(self, rtype): for rtype in RECORDSETS_DATASET:
data = ["b0rk"] data = ["b0rk"]
post_model = dns_data_utils.make_rand_recordset(
post_model = dns_data_utils.make_rand_recordset(
self.zone['name'], rtype)
recordset = self.create_recordset(post_model)
for i in data:
model = dns_data_utils.make_rand_recordset(
self.zone['name'], rtype) self.zone['name'], rtype)
model['data'] = i recordset = self.create_recordset(post_model)
self.assertRaisesDns( for i in data:
exceptions.BadRequest, 'invalid_object', 400, model = dns_data_utils.make_rand_recordset(
self.recordset_client.update_recordset, self.zone['name'], rtype)
self.zone['id'], recordset['id'], model model['data'] = i
) self.assertRaisesDns(
exceptions.BadRequest, 'invalid_object', 400,
self.recordset_client.update_recordset,
self.zone['id'], recordset['id'], model
)
@decorators.idempotent_id('61da1015-291f-43d1-a1a8-345cff12d201') @decorators.idempotent_id('61da1015-291f-43d1-a1a8-345cff12d201')
def test_cannot_create_wildcard_NS_recordset(self): def test_cannot_create_wildcard_NS_recordset(self):
@ -147,57 +160,68 @@ class RecordsetValidationTest(base.BaseDnsV2Test):
) )
@decorators.idempotent_id('22a9544b-2382-4ed2-ba12-4dbaedb8e880') @decorators.idempotent_id('22a9544b-2382-4ed2-ba12-4dbaedb8e880')
@ddt.file_data("invalid_txt_dataset.json") def test_cannot_create_TXT_with(self):
def test_cannot_create_TXT_with(self, data): for key, data in INVALID_TXT_DATASET.items():
post_model = dns_data_utils.rand_txt_recordset(self.zone['name'], data) LOG.info('Tested INVALID_TXT_DATASET: {}'.format(key))
self.assertRaisesDns( post_model = dns_data_utils.rand_txt_recordset(
exceptions.BadRequest, 'invalid_object', 400, self.zone['name'], data['data'])
self.recordset_client.create_recordset, self.assertRaisesDns(
self.zone['id'], post_model exceptions.BadRequest, 'invalid_object', 400,
) self.recordset_client.create_recordset,
self.zone['id'], post_model
)
@decorators.idempotent_id('03e4f811-0c37-4ce2-8b16-662c824f8f18') @decorators.idempotent_id('03e4f811-0c37-4ce2-8b16-662c824f8f18')
@ddt.file_data("valid_txt_dataset.json") def test_create_TXT_with(self):
def test_create_TXT_with(self, data): for key, data in VALID_TXT_DATASET.items():
post_model = dns_data_utils.rand_txt_recordset(self.zone['name'], data) LOG.info('Tested VALID_TXT_DATASET: {}'.format(key))
post_model = dns_data_utils.rand_txt_recordset(
self.zone['name'], data['data'])
recordset = self.create_recordset(post_model) recordset = self.create_recordset(post_model)
waiters.wait_for_recordset_status( waiters.wait_for_recordset_status(
self.recordset_client, self.zone['id'], recordset['id'], 'ACTIVE') self.recordset_client, self.zone['id'], recordset['id'], 'ACTIVE')
@decorators.idempotent_id('775b3db5-ec60-4dd7-85d2-f05a9c544978') @decorators.idempotent_id('775b3db5-ec60-4dd7-85d2-f05a9c544978')
@ddt.file_data("valid_txt_dataset.json") def test_create_SPF_with(self):
def test_create_SPF_with(self, data): for key, data in VALID_TXT_DATASET.items():
post_model = dns_data_utils.rand_spf_recordset(self.zone['name'], data) LOG.info('Tested VALID_TXT_DATASET: {}'.format(key))
recordset = self.create_recordset(post_model) post_model = dns_data_utils.rand_spf_recordset(
self.zone['name'], data['data'])
recordset = self.create_recordset(post_model)
waiters.wait_for_recordset_status( waiters.wait_for_recordset_status(
self.recordset_client, self.zone['id'], recordset['id'], 'ACTIVE') self.recordset_client, self.zone['id'],
recordset['id'], 'ACTIVE')
@decorators.idempotent_id('7fa7783f-1624-4122-bfb2-6cfbf7a5b49b') @decorators.idempotent_id('7fa7783f-1624-4122-bfb2-6cfbf7a5b49b')
@ddt.file_data("invalid_mx_dataset.json") def test_cannot_create_MX_with(self):
def test_cannot_create_MX_with(self, pref): for key, pref in INVALID_MX_DATASET.items():
post_model = dns_data_utils.rand_mx_recordset( LOG.info('Tested INVALID_MX_DATASET: {}'.format(key))
self.zone['name'], pref=pref
)
self.assertRaisesDns( post_model = dns_data_utils.rand_mx_recordset(
exceptions.BadRequest, 'invalid_object', 400, self.zone['name'], pref=pref['pref']
self.recordset_client.create_recordset, )
self.zone['id'], post_model,
) self.assertRaisesDns(
exceptions.BadRequest, 'invalid_object', 400,
self.recordset_client.create_recordset,
self.zone['id'], post_model,
)
@decorators.idempotent_id('3016f998-4e4a-4712-b15a-4e8dfbc5a60b') @decorators.idempotent_id('3016f998-4e4a-4712-b15a-4e8dfbc5a60b')
@ddt.data("invalid_sshfp_dataset.json") def test_cannot_create_SSHFP_with(self):
def test_cannot_create_SSHFP_with(self, algo=None, finger=None): for key, data in INVALID_SSHFP_DATASET.items():
post_model = dns_data_utils.rand_sshfp_recordset( LOG.info('Tested INVALID_SSHFP_DATASET: {}'.format(key))
zone_name=self.zone['name'],
algorithm_number=algo,
fingerprint_type=finger,
)
self.assertRaisesDns( post_model = dns_data_utils.rand_sshfp_recordset(
exceptions.BadRequest, 'invalid_object', 400, zone_name=self.zone['name'],
self.recordset_client.create_recordset, algorithm_number=data['algo'],
self.zone['id'], post_model, fingerprint_type=data['finger'],
) )
self.assertRaisesDns(
exceptions.BadRequest, 'invalid_object', 400,
self.recordset_client.create_recordset,
self.zone['id'], post_model,
)

View File

@ -1,5 +0,0 @@
{
"slash_with_one_trailing_space": {"data": "\"\\ \""},
"slash_with_many_trailing_space": {"data": "\"\\ \""},
"text_with_slash_and_trailing_space": {"data": "\"the txts \""}
}

View File

@ -1,79 +0,0 @@
{
"A": {
"name": "www",
"type": "A",
"records": ["192.0.2.1", "192.0.2.2", "192.0.2.3"]
},
"AAAA": {
"name": "www",
"type": "AAAA",
"records": ["2001:db8::1", "2001:db8::1", "2001:db8::"]
},
"SRV TCP": {
"name": "_sip._tcp",
"type": "SRV",
"records": ["10 60 5060 server1.example.com.",
"20 60 5060 server2.example.com.",
"20 30 5060 server3.example.com."]
},
"SRV UDP": {
"name": "_sip._udp",
"type": "SRV",
"records": ["10 60 5060 server1.example.com.",
"10 60 5060 server2.example.com.",
"20 30 5060 server3.example.com."]
},
"CNAME": {
"name": "alias-of-target",
"type": "CNAME",
"records": ["target.example.org."]
},
"MX at APEX": {
"name": null,
"type": "MX",
"records": ["10 mail1.example.org.",
"20 mail2.example.org."]
},
"MX under APEX": {
"name": "under",
"type": "MX",
"records": ["10 mail.example.org."]
},
"SSHFP": {
"name": "www",
"type": "SSHFP",
"records": ["2 1 123456789abcdef67890123456789abcdef67890"]
},
"TXT": {
"name": "www",
"type": "TXT",
"records": ["\"Any Old Text Goes Here\""]
},
"SPF": {
"name": "*.sub",
"type": "SPF",
"records": ["\"v=spf1; a -all\""]
},
"PTR_IPV4": {
"name": "PTR_Record_IPV4",
"type": "PTR",
"records": ["34.216.184.93.in-addr.arpa."]
},
"PTR_IPV6":{
"name":"PTR_Record_IPV6",
"type":"PTR",
"records":[
"6.4.9.1.8.c.5.2.3.9.8.1.8.4.2.0.1.0.0.0.0.2.2.0.0.0.8.2.6.0.6.2.ip6.arpa."
]
},
"CAA_Record": {
"name": "CAA_Record",
"type": "CAA",
"records": ["0 issue letsencrypt.org"]
},
"NAPTR_Record": {
"name": "NAPTR_Record",
"type": "NAPTR",
"records": ["0 0 S SIP+D2U !^.*$!sip:customer-service@example.com! _sip._udp.example.com."]
}
}

View File

@ -12,7 +12,6 @@
import time import time
import ddt
from oslo_log import log as logging from oslo_log import log as logging
from tempest import config from tempest import config
from tempest.lib.common.utils import test_utils from tempest.lib.common.utils import test_utils
@ -32,7 +31,6 @@ LOG = logging.getLogger(__name__)
CONF = config.CONF CONF = config.CONF
@ddt.ddt
class RecordsetsTest(base.BaseDnsV2Test): class RecordsetsTest(base.BaseDnsV2Test):
credentials = ["admin", "system_admin", "primary"] credentials = ["admin", "system_admin", "primary"]
@ -80,11 +78,8 @@ class RecordsetsTest(base.BaseDnsV2Test):
cls.admin_tld_client.delete_tld(cls.class_tld[1]['id']) cls.admin_tld_client.delete_tld(cls.class_tld[1]['id'])
super(RecordsetsTest, cls).resource_cleanup() super(RecordsetsTest, cls).resource_cleanup()
@decorators.attr(type='slow') def _test_create_and_delete_records_on_existing_zone(
@decorators.idempotent_id('4664ed66-9ff1-45f2-9e60-d4913195c505') self, name, type, records):
@ddt.file_data("recordset_data.json")
def test_create_and_delete_records_on_existing_zone(self, name,
type, records):
if name is not None: if name is not None:
recordset_name = name + "." + self.zone['name'] recordset_name = name + "." + self.zone['name']
@ -125,6 +120,99 @@ class RecordsetsTest(base.BaseDnsV2Test):
lambda: self.recordset_client.show_recordset( lambda: self.recordset_client.show_recordset(
self.zone['id'], recordset['id'])) self.zone['id'], recordset['id']))
@decorators.attr(type='slow')
@decorators.idempotent_id('4664ed66-9ff1-45f2-9e60-d4913195c505')
def test_create_and_delete_records_on_existing_zone_01_A(self):
self._test_create_and_delete_records_on_existing_zone(
"www", "A", ["192.0.2.1", "192.0.2.2", "192.0.2.3"])
@decorators.attr(type='slow')
@decorators.idempotent_id('cecd9f20-0b62-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_02_AAAA(self):
self._test_create_and_delete_records_on_existing_zone(
"www", "AAAA", ["2001:db8::1", "2001:db8::1", "2001:db8::"])
@decorators.attr(type='slow')
@decorators.idempotent_id('f5368d7a-0b62-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_03_SRV(self):
self._test_create_and_delete_records_on_existing_zone(
"_sip._tcp", "SRV", ["10 60 5060 server1.example.com.",
"20 60 5060 server2.example.com.",
"20 30 5060 server3.example.com."])
@decorators.attr(type='slow')
@decorators.idempotent_id('74ff9efc-0b63-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_04_SRV(self):
self._test_create_and_delete_records_on_existing_zone(
"_sip._udp", "SRV", ["10 60 5060 server1.example.com.",
"10 60 5060 server2.example.com.",
"20 30 5060 server3.example.com."])
@decorators.attr(type='slow')
@decorators.idempotent_id('82a14a2e-0b63-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_05_CNAME(self):
self._test_create_and_delete_records_on_existing_zone(
"alias-of-target", "CNAME", ["target.example.org."])
@decorators.attr(type='slow')
@decorators.idempotent_id('ae7a295e-0b63-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_06_MX(self):
self._test_create_and_delete_records_on_existing_zone(
None, "MX", ["10 mail1.example.org.",
"20 mail2.example.org."])
@decorators.attr(type='slow')
@decorators.idempotent_id('f9aa8512-0b64-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_07_MX(self):
self._test_create_and_delete_records_on_existing_zone(
"under", "MX", ["10 mail.example.org."])
@decorators.attr(type='slow')
@decorators.idempotent_id('fa6cbd12-0b64-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_08_SSHFP(self):
self._test_create_and_delete_records_on_existing_zone(
"www", "SSHFP", ["2 1 123456789abcdef67890123456789abcdef67890"])
@decorators.attr(type='slow')
@decorators.idempotent_id('fa124a1c-0b64-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_09_TXT(self):
self._test_create_and_delete_records_on_existing_zone(
"www", "TXT", ["\"Any Old Text Goes Here\""])
@decorators.attr(type='slow')
@decorators.idempotent_id('3e347c28-0b66-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_10_SPF(self):
self._test_create_and_delete_records_on_existing_zone(
"*.sub", "SPF", ["\"v=spf1; a -all\""])
@decorators.attr(type='slow')
@decorators.idempotent_id('88f6c2ac-0b66-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_11_PTR(self):
self._test_create_and_delete_records_on_existing_zone(
"PTR_Record_IPV4", "PTR", ["34.216.184.93.in-addr.arpa."])
@decorators.attr(type='slow')
@decorators.idempotent_id('b9591eea-0b66-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_12_PTR(self):
self._test_create_and_delete_records_on_existing_zone(
"PTR_Record_IPV6", "PTR",
["6.4.9.1.8.c.5.2.3.9.8.1.8.4.2.0.1.0.0.0.0.2.2.0.0.0.8"
".2.6.0.6.2.ip6.arpa."])
@decorators.attr(type='slow')
@decorators.idempotent_id('c98cd9b4-0b66-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_13_CAA(self):
self._test_create_and_delete_records_on_existing_zone(
"CAA_Record", "CAA", ["0 issue letsencrypt.org"])
@decorators.attr(type='slow')
@decorators.idempotent_id('f78d6e8c-0b66-11ee-bbcc-201e8823901f')
def test_create_and_delete_records_on_existing_zone_14_NAPTR(self):
self._test_create_and_delete_records_on_existing_zone(
"NAPTR_Record", "NAPTR",
["0 0 S SIP+D2U !^.*$!sip:customer-service@example"
".com! _sip._udp.example.com."])
@testtools.skipUnless( @testtools.skipUnless(
config.CONF.dns.nameservers, config.CONF.dns.nameservers,
"Config option dns.nameservers is missing or empty") "Config option dns.nameservers is missing or empty")

View File

@ -3,7 +3,6 @@
# process, which may cause wedges in the gate later. # process, which may cause wedges in the gate later.
dnspython>=1.16.0 # http://www.dnspython.org/LICENSE dnspython>=1.16.0 # http://www.dnspython.org/LICENSE
ddt>=1.0.1 # MIT
oslo.serialization>=2.25.0 # Apache-2.0 oslo.serialization>=2.25.0 # Apache-2.0
oslo.utils>=3.33.0 # Apache-2.0 oslo.utils>=3.33.0 # Apache-2.0
testtools>=2.2.0 # MIT testtools>=2.2.0 # MIT