diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-03-30 15:27:28 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-03-30 15:27:28 +0000 |
commit | b337657c4366f762125294c1a0f1f2efa3baaf38 (patch) | |
tree | 3b6f5be0963fc468d8d401b7e17f7d2c91d6df74 | |
parent | 9f158c995ba7ce25d4130dd1822fd839d698b63a (diff) | |
parent | e23fb5ff8a83dde139b0ed9acf6f6348685d0e26 (diff) | |
download | python-designateclient-b337657c4366f762125294c1a0f1f2efa3baaf38.tar.gz |
Merge "Add filtering to recordsets CLI" into stable/mitaka2.1.0
-rw-r--r-- | designateclient/v2/cli/recordsets.py | 43 |
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) |