summaryrefslogtreecommitdiff
path: root/designateclient
diff options
context:
space:
mode:
authorGraham Hayes <graham.hayes@hpe.com>2016-03-29 22:15:50 +0100
committerGraham Hayes <graham.hayes@hpe.com>2016-03-29 22:15:50 +0100
commitfe5397031f42a9660637ea3dd6d0b7a44998aaea (patch)
treef394a0db5e558a995cf468d4abb107ad5c92195f /designateclient
parent56f424c35913ec7a706bf3056e71bb93d5338a78 (diff)
downloadpython-designateclient-fe5397031f42a9660637ea3dd6d0b7a44998aaea.tar.gz
Add filtering to recordsets CLI
Also cleaned up the display of records in the list view. Change-Id: I6d05dc387a9653c49bebb9d5f63282b8002ec32a
Diffstat (limited to 'designateclient')
-rw-r--r--designateclient/v2/cli/recordsets.py43
1 files changed, 41 insertions, 2 deletions
diff --git a/designateclient/v2/cli/recordsets.py b/designateclient/v2/cli/recordsets.py
index 15c3d89..fc0f29a 100644
--- a/designateclient/v2/cli/recordsets.py
+++ b/designateclient/v2/cli/recordsets.py
@@ -31,6 +31,7 @@ def _format_recordset(recordset):
# Remove unneeded fields for display output formatting
recordset['records'] = "\n".join(recordset['records'])
recordset.pop('links', None)
+ return recordset
class ListRecordSetsCommand(lister.Lister):
@@ -41,6 +42,19 @@ class ListRecordSetsCommand(lister.Lister):
def get_parser(self, prog_name):
parser = super(ListRecordSetsCommand, self).get_parser(prog_name)
+ parser.add_argument('--name', help="RecordSet Name", required=False)
+ parser.add_argument('--type', help="RecordSet Type", required=False)
+ parser.add_argument('--data', help="RecordSet Record Data",
+ required=False)
+ parser.add_argument('--ttl', help="Time To Live (Seconds)",
+ required=False)
+ parser.add_argument('--description', help="Description",
+ required=False)
+ parser.add_argument('--status', help="RecordSet Status",
+ required=False)
+ parser.add_argument('--action', help="RecordSet Action",
+ required=False)
+
parser.add_argument('zone_id', help="Zone ID")
return parser
@@ -48,11 +62,36 @@ class ListRecordSetsCommand(lister.Lister):
def take_action(self, parsed_args):
client = self.app.client_manager.dns
+ criterion = {}
+ if parsed_args.type is not None:
+ criterion["type"] = parsed_args.type
+
+ if parsed_args.name is not None:
+ criterion["name"] = parsed_args.name
+
+ if parsed_args.data is not None:
+ criterion["data"] = parsed_args.data
+
+ if parsed_args.ttl is not None:
+ criterion["ttl"] = parsed_args.ttl
+
+ if parsed_args.description is not None:
+ criterion["description"] = parsed_args.description
+
+ if parsed_args.status is not None:
+ criterion["status"] = parsed_args.status
+
+ if parsed_args.action is not None:
+ criterion["action"] = parsed_args.action
+
cols = self.columns
- data = get_all(client.recordsets.list, args=[parsed_args.zone_id])
+ data = get_all(client.recordsets.list, args=[parsed_args.zone_id],
+ criterion=criterion)
+
+ for i, rs in enumerate(data):
+ data[i] = _format_recordset(rs)
- six.moves.map(_format_recordset, data)
return cols, (utils.get_item_properties(s, cols) for s in data)