From 661aea13c1eb40694fa52e98b23bfd411d793e2f Mon Sep 17 00:00:00 2001 From: gongysh Date: Tue, 26 Mar 2013 14:50:35 +0800 Subject: [PATCH] remove remainder argument Bug #1160203 Change-Id: I01c6aed18ccd7fe61a5ea4562c79d47222175147 --- quantumclient/quantum/v2_0/__init__.py | 12 ------------ quantumclient/quantum/v2_0/quota.py | 27 +++++++++++++++----------- 2 files changed, 16 insertions(+), 23 deletions(-) diff --git a/quantumclient/quantum/v2_0/__init__.py b/quantumclient/quantum/v2_0/__init__.py index 0f48b9bc5..78590b538 100644 --- a/quantumclient/quantum/v2_0/__init__.py +++ b/quantumclient/quantum/v2_0/__init__.py @@ -119,14 +119,6 @@ def add_sorting_argument(parser): choices=['asc', 'desc']) -def add_extra_argument(parser, name, _help): - parser.add_argument( - name, - nargs=argparse.REMAINDER, - help=_help + ': --key1 [type=int|bool|...] value ' - '[--key2 [type=int|bool|...] value ...]') - - def is_number(s): try: float(s) # for int, long and float @@ -446,8 +438,6 @@ class ListCommand(QuantumCommand, lister.Lister): def get_parser(self, prog_name): parser = super(ListCommand, self).get_parser(prog_name) add_show_list_common_argument(parser) - if self.unknown_parts_flag: - add_extra_argument(parser, 'filter_specs', 'filters options') if self.pagination_support: add_pagination_argument(parser) if self.sorting_support: @@ -456,8 +446,6 @@ class ListCommand(QuantumCommand, lister.Lister): def args2search_opts(self, parsed_args): search_opts = {} - if self.unknown_parts_flag: - search_opts = parse_args_to_dict(parsed_args.filter_specs) fields = parsed_args.fields if parsed_args.fields: search_opts.update({'fields': fields}) diff --git a/quantumclient/quantum/v2_0/quota.py b/quantumclient/quantum/v2_0/quota.py index 82dfbe75f..bdff0bd6c 100644 --- a/quantumclient/quantum/v2_0/quota.py +++ b/quantumclient/quantum/v2_0/quota.py @@ -176,9 +176,6 @@ class UpdateQuota(QuantumCommand, show.ShowOne): parser.add_argument( '--security-group-rule', metavar='security_group_rules', help='the limit of security groups rules') - quantumv20.add_extra_argument( - parser, 'value_specs', - 'new values for the %s' % self.resource) return parser def _validate_int(self, name, value): @@ -190,10 +187,7 @@ class UpdateQuota(QuantumCommand, show.ShowOne): raise exceptions.QuantumClientException(message=message) return return_value - def get_data(self, parsed_args): - self.log.debug('run(%s)' % parsed_args) - quantum_client = self.get_client() - quantum_client.format = parsed_args.request_format + def args2body(self, parsed_args): quota = {} for resource in ('network', 'subnet', 'port', 'router', 'floatingip', 'security_group', 'security_group_rule'): @@ -201,14 +195,25 @@ class UpdateQuota(QuantumCommand, show.ShowOne): quota[resource] = self._validate_int( resource, getattr(parsed_args, resource)) - value_specs = parsed_args.value_specs - if value_specs: - quota.update(quantumv20.parse_args_to_dict(value_specs)) + return {self.resource: quota} + + def get_data(self, parsed_args): + self.log.debug('run(%s)' % parsed_args) + quantum_client = self.get_client() + quantum_client.format = parsed_args.request_format + _extra_values = quantumv20.parse_args_to_dict(self.values_specs) + quantumv20._merge_args(self, parsed_args, _extra_values, + self.values_specs) + body = self.args2body(parsed_args) + if self.resource in body: + body[self.resource].update(_extra_values) + else: + body[self.resource] = _extra_values obj_updator = getattr(quantum_client, "update_%s" % self.resource) tenant_id = get_tenant_id(parsed_args.tenant_id, quantum_client) - data = obj_updator(tenant_id, {self.resource: quota}) + data = obj_updator(tenant_id, body) if self.resource in data: for k, v in data[self.resource].iteritems(): if isinstance(v, list):