Merge "Remove designateclient from commands related to zones"

This commit is contained in:
Jenkins 2017-05-31 20:51:35 +00:00 committed by Gerrit Code Review
commit 1cb6a7e6e2
4 changed files with 88 additions and 84 deletions

View File

@ -407,26 +407,6 @@ class RolesForUser(task_manager.Task):
return client.keystone_client.roles.roles_for_user(**self.args)
class ZoneList(task_manager.Task):
def main(self, client):
return client.designate_client.zones.list()
class ZoneCreate(task_manager.Task):
def main(self, client):
return client.designate_client.zones.create(**self.args)
class ZoneUpdate(task_manager.Task):
def main(self, client):
return client.designate_client.zones.update(**self.args)
class ZoneDelete(task_manager.Task):
def main(self, client):
return client.designate_client.zones.delete(**self.args)
class RecordSetList(task_manager.Task):
def main(self, client):
return client.designate_client.recordsets.list(**self.args)

View File

@ -6928,8 +6928,9 @@ class OpenStackCloud(
:returns: A list of zones dicts.
"""
with _utils.shade_exceptions("Error fetching zones list"):
return self.manager.submit_task(_tasks.ZoneList())
return self._dns_client.get(
"/v2/zones",
error_message="Error fetching zones list")
def get_zone(self, name_or_id, filters=None):
"""Get a zone by name or ID.
@ -6948,7 +6949,7 @@ class OpenStackCloud(
def search_zones(self, name_or_id=None, filters=None):
zones = self.list_zones()
return _utils._filter_list(zones, name_or_id, filters)
return _utils._filter_list(zones['zones'], name_or_id, filters)
def create_zone(self, name, zone_type=None, email=None, description=None,
ttl=None, masters=None):
@ -6977,11 +6978,23 @@ class OpenStackCloud(
"Invalid type %s, valid choices are PRIMARY or SECONDARY" %
zone_type)
with _utils.shade_exceptions("Unable to create zone {name}".format(
name=name)):
return self.manager.submit_task(_tasks.ZoneCreate(
name=name, type_=zone_type, email=email,
description=description, ttl=ttl, masters=masters))
zone = {
"name": name,
"email": email,
"description": description,
}
if ttl is not None:
zone["ttl"] = ttl
if zone_type is not None:
zone["type"] = zone_type
if masters is not None:
zone["masters"] = masters
return self._dns_client.post(
"/v2/zones", json=zone,
error_message="Unable to create zone {name}".format(name=name))
@_utils.valid_kwargs('email', 'description', 'ttl', 'masters')
def update_zone(self, name_or_id, **kwargs):
@ -7004,13 +7017,9 @@ class OpenStackCloud(
raise OpenStackCloudException(
"Zone %s not found." % name_or_id)
with _utils.shade_exceptions(
"Error updating zone {0}".format(name_or_id)):
new_zone = self.manager.submit_task(
_tasks.ZoneUpdate(
zone=zone['id'], values=kwargs))
return new_zone
return self._dns_client.patch(
"/v2/zones/{zone_id}".format(zone_id=zone['id']), json=kwargs,
error_message="Error updating zone {0}".format(name_or_id))
def delete_zone(self, name_or_id):
"""Delete a zone.
@ -7027,10 +7036,9 @@ class OpenStackCloud(
self.log.debug("Zone %s not found for deleting", name_or_id)
return False
with _utils.shade_exceptions(
"Error deleting zone {0}".format(name_or_id)):
self.manager.submit_task(
_tasks.ZoneDelete(zone=zone['id']))
return self._dns_client.delete(
"/v2/zones/{zone_id}".format(zone_id=zone['id']),
error_message="Error deleting zone {0}".format(name_or_id))
return True

View File

@ -43,16 +43,16 @@ new_recordset['zone'] = recordset_zone
class TestRecordset(base.RequestsMockTestCase):
def setUp(self):
super(TestRecordset, self).setUp()
self.use_designate()
def test_create_recordset(self):
self.register_uris([
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones']),
json={"zones": [zone]}),
'dns', 'public', append=['v2', 'zones']),
json={
"zones": [zone],
"links": {},
"metadata": {
'total_count': 1}}),
self.get_designate_discovery_mock_dict(),
dict(method='GET',
uri=self.get_mock_url(
@ -86,8 +86,12 @@ class TestRecordset(base.RequestsMockTestCase):
self.register_uris([
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones']),
json={"zones": [zone]}),
'dns', 'public', append=['v2', 'zones']),
json={
"zones": [zone],
"links": {},
"metadata": {
'total_count': 1}}),
self.get_designate_discovery_mock_dict(),
dict(method='GET',
uri=self.get_mock_url(
@ -128,8 +132,12 @@ class TestRecordset(base.RequestsMockTestCase):
self.register_uris([
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones']),
json={"zones": [zone]}),
'dns', 'public', append=['v2', 'zones']),
json={
"zones": [zone],
"links": {},
"metadata": {
'total_count': 1}}),
self.get_designate_discovery_mock_dict(),
dict(method='GET',
uri=self.get_mock_url(
@ -194,8 +202,12 @@ class TestRecordset(base.RequestsMockTestCase):
self.register_uris([
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones']),
json={"zones": [zone]}),
'dns', 'public', append=['v2', 'zones']),
json={
"zones": [zone],
"links": {},
"metadata": {
'total_count': 1}}),
self.get_designate_discovery_mock_dict(),
dict(method='GET',
uri=self.get_mock_url(
@ -256,6 +268,7 @@ class TestRecordset(base.RequestsMockTestCase):
def _prepare_get_recordset_calls(self, zone_id, name_or_id):
self.register_uris([
self.get_designate_discovery_mock_dict(),
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones'],
@ -298,6 +311,7 @@ class TestRecordset(base.RequestsMockTestCase):
def test_get_recordset_not_found_returns_false(self):
recordset_name = "www.nonexistingrecord.net."
self.register_uris([
self.get_designate_discovery_mock_dict(),
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones'],

View File

@ -31,15 +31,11 @@ new_zone_dict['id'] = '1'
class TestZone(base.RequestsMockTestCase):
def setUp(self):
super(TestZone, self).setUp()
self.use_designate()
def test_create_zone(self):
self.register_uris([
dict(method='POST',
uri=self.get_mock_url(
'dns', 'public', append=['zones']),
'dns', 'public', append=['v2', 'zones']),
json=new_zone_dict,
validate=dict(
json=zone_dict))
@ -58,11 +54,11 @@ class TestZone(base.RequestsMockTestCase):
self.register_uris([
dict(method='POST',
uri=self.get_mock_url(
'dns', 'public', append=['zones']),
'dns', 'public', append=['v2', 'zones']),
status_code=500)
])
with testtools.ExpectedException(
shade.OpenStackCloudException,
shade.exc.OpenStackCloudHTTPError,
"Unable to create zone example.net."
):
self.cloud.create_zone('example.net.')
@ -75,18 +71,15 @@ class TestZone(base.RequestsMockTestCase):
self.register_uris([
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones']),
json={"zones": [new_zone_dict]}),
self.get_designate_discovery_mock_dict(),
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones'],
qs_elements=['name=1']),
json={'zones': [new_zone_dict]}),
self.get_designate_discovery_mock_dict(),
'dns', 'public', append=['v2', 'zones']),
json={
"zones": [new_zone_dict],
"links": {},
"metadata": {
'total_count': 1}}),
dict(method='PATCH',
uri=self.get_mock_url(
'dns', 'public', append=['zones', '1']),
'dns', 'public', append=['v2', 'zones', '1']),
json=updated_zone,
validate=dict(
json={"ttl": new_ttl}))
@ -99,18 +92,15 @@ class TestZone(base.RequestsMockTestCase):
self.register_uris([
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones']),
json={"zones": [new_zone_dict]}),
self.get_designate_discovery_mock_dict(),
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones'],
qs_elements=['name=1']),
json={'zones': [new_zone_dict]}),
self.get_designate_discovery_mock_dict(),
'dns', 'public', append=['v2', 'zones']),
json={
"zones": [new_zone_dict],
"links": {},
"metadata": {
'total_count': 1}}),
dict(method='DELETE',
uri=self.get_mock_url(
'dns', 'public', append=['zones', '1']),
'dns', 'public', append=['v2', 'zones', '1']),
json=new_zone_dict)
])
self.assertTrue(self.cloud.delete_zone('1'))
@ -120,8 +110,12 @@ class TestZone(base.RequestsMockTestCase):
self.register_uris([
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones']),
json={"zones": [new_zone_dict]})
'dns', 'public', append=['v2', 'zones']),
json={
"zones": [new_zone_dict],
"links": {},
"metadata": {
'total_count': 1}})
])
zone = self.cloud.get_zone('1')
self.assertEqual(zone['id'], '1')
@ -131,8 +125,12 @@ class TestZone(base.RequestsMockTestCase):
self.register_uris([
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones']),
json={"zones": [new_zone_dict]})
'dns', 'public', append=['v2', 'zones']),
json={
"zones": [new_zone_dict],
"links": {},
"metadata": {
'total_count': 1}})
])
zone = self.cloud.get_zone('example.net.')
self.assertEqual(zone['name'], 'example.net.')
@ -142,8 +140,12 @@ class TestZone(base.RequestsMockTestCase):
self.register_uris([
dict(method='GET',
uri=self.get_mock_url(
'dns', 'public', append=['zones']),
json={"zones": []})
'dns', 'public', append=['v2', 'zones']),
json={
"zones": [],
"links": {},
"metadata": {
'total_count': 1}})
])
zone = self.cloud.get_zone('nonexistingzone.net.')
self.assertFalse(zone)