From a5e8206ed602c11cc2ea8fbca25b39999cfd5540 Mon Sep 17 00:00:00 2001 From: Paul Glass Date: Wed, 30 Mar 2016 16:39:27 +0000 Subject: [PATCH] Show responses on zone and recordset deletes Change-Id: I1b15c64bac1bc495fe7aecbcf08c28b8ea41b5a7 --- designateclient/client.py | 7 +++++-- designateclient/functionaltests/client.py | 5 +++-- designateclient/functionaltests/v2/test_recordsets.py | 10 +++------- designateclient/functionaltests/v2/test_zone.py | 5 +++-- designateclient/v2/cli/recordsets.py | 8 +++++--- designateclient/v2/cli/zones.py | 7 +++++-- 6 files changed, 24 insertions(+), 18 deletions(-) diff --git a/designateclient/client.py b/designateclient/client.py index b4df6e6..2c0e7b3 100644 --- a/designateclient/client.py +++ b/designateclient/client.py @@ -77,8 +77,11 @@ class Controller(object): return body[response_key] return body - def _delete(self, url): - resp, body = self.client.session.delete(url) + def _delete(self, url, response_key=None, **kwargs): + resp, body = self.client.session.delete(url, **kwargs) + if response_key is not None: + return body[response_key] + return body @six.add_metaclass(abc.ABCMeta) diff --git a/designateclient/functionaltests/client.py b/designateclient/functionaltests/client.py index 0bac078..69ca2ca 100644 --- a/designateclient/functionaltests/client.py +++ b/designateclient/functionaltests/client.py @@ -79,7 +79,8 @@ class ZoneCommands(object): **kwargs) def zone_delete(self, id, *args, **kwargs): - return self.parsed_cmd('zone delete %s' % id, *args, **kwargs) + return self.parsed_cmd('zone delete %s' % id, FieldValueModel, *args, + **kwargs) def zone_create(self, name, email=None, ttl=None, description=None, type=None, masters=None, *args, **kwargs): @@ -214,7 +215,7 @@ class RecordsetCommands(object): def recordset_delete(self, zone_id, id, *args, **kwargs): cmd = 'recordset delete {0} {1}'.format(zone_id, id) - return self.parsed_cmd(cmd, *args, **kwargs) + return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs) class TLDCommands(object): diff --git a/designateclient/functionaltests/v2/test_recordsets.py b/designateclient/functionaltests/v2/test_recordsets.py index e104ba4..d8bc2af 100644 --- a/designateclient/functionaltests/v2/test_recordsets.py +++ b/designateclient/functionaltests/v2/test_recordsets.py @@ -69,13 +69,9 @@ class TestRecordset(BaseDesignateTest): self.assertEqual(self.recordset.zone_id, self.zone.id) def test_recordset_delete(self): - self.clients.recordset_delete(self.zone.id, self.recordset.id) - self.assertRaises( - CommandFailed, - self.clients.recordset_delete, - self.zone.id, - self.recordset.id, - ) + rset = self.clients.recordset_delete(self.zone.id, self.recordset.id) + self.assertEqual(rset.action, 'DELETE') + self.assertEqual(rset.status, 'PENDING') def test_recordset_set(self): rset = self.clients.recordset_set( diff --git a/designateclient/functionaltests/v2/test_zone.py b/designateclient/functionaltests/v2/test_zone.py index 85927e8..2873948 100644 --- a/designateclient/functionaltests/v2/test_zone.py +++ b/designateclient/functionaltests/v2/test_zone.py @@ -55,8 +55,9 @@ class TestZone(BaseDesignateTest): self.assertEqual(self.zone.version, zone.version) def test_zone_delete(self): - self.clients.zone_delete(self.zone.id) - self.assertRaises(CommandFailed, self.clients.zone_show, self.zone.id) + zone = self.clients.zone_delete(self.zone.id) + self.assertEqual(zone.action, 'DELETE') + self.assertEqual(zone.status, 'PENDING') def test_zone_set(self): ttl = int(self.zone.ttl) + 123 diff --git a/designateclient/v2/cli/recordsets.py b/designateclient/v2/cli/recordsets.py index fc0f29a..00d9348 100644 --- a/designateclient/v2/cli/recordsets.py +++ b/designateclient/v2/cli/recordsets.py @@ -16,7 +16,6 @@ import logging -from cliff import command from cliff import lister from cliff import show import six @@ -193,7 +192,7 @@ class SetRecordSetCommand(show.ShowOne): return six.moves.zip(*sorted(six.iteritems(updated))) -class DeleteRecordSetCommand(command.Command): +class DeleteRecordSetCommand(show.ShowOne): """Delete recordset""" def get_parser(self, prog_name): @@ -206,6 +205,9 @@ class DeleteRecordSetCommand(command.Command): def take_action(self, parsed_args): client = self.app.client_manager.dns - client.recordsets.delete(parsed_args.zone_id, parsed_args.id) + data = client.recordsets.delete(parsed_args.zone_id, parsed_args.id) LOG.info('RecordSet %s was deleted', parsed_args.id) + + _format_recordset(data) + return six.moves.zip(*sorted(six.iteritems(data))) diff --git a/designateclient/v2/cli/zones.py b/designateclient/v2/cli/zones.py index 938a49a..7f49671 100644 --- a/designateclient/v2/cli/zones.py +++ b/designateclient/v2/cli/zones.py @@ -193,7 +193,7 @@ class SetZoneCommand(show.ShowOne): return six.moves.zip(*sorted(six.iteritems(updated))) -class DeleteZoneCommand(command.Command): +class DeleteZoneCommand(show.ShowOne): """Delete zone""" def get_parser(self, prog_name): @@ -205,9 +205,12 @@ class DeleteZoneCommand(command.Command): def take_action(self, parsed_args): client = self.app.client_manager.dns - client.zones.delete(parsed_args.id) + data = client.zones.delete(parsed_args.id) LOG.info('Zone %s was deleted', parsed_args.id) + _format_zone(data) + return six.moves.zip(*sorted(six.iteritems(data))) + class AbandonZoneCommand(command.Command): """Abandon a zone"""