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 quota = {} for resource in ('network', 'subnet', 'port'): if getattr(parsed_args, resource): 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)) 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}) if self.resource in data: for k, v in data[self.resource].iteritems(): if isinstance(v, list): value = "" for _item in v: if value: value += "\n" if isinstance(_item, dict): value += utils.dumps(_item) else: value += str(_item) data[self.resource][k] = value elif v is None: data[self.resource][k] = '' return zip(*sorted(data[self.resource].iteritems())) else: return None
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, body) if self.resource in data: for k, v in data[self.resource].iteritems(): if isinstance(v, list): value = "" for _item in v: if value: value += "\n" if isinstance(_item, dict): value += utils.dumps(_item) else: value += str(_item) data[self.resource][k] = value elif v is None: data[self.resource][k] = "" return zip(*sorted(data[self.resource].iteritems())) else: return None
def test_list_of_dict_arg(self): _specs = [ '--tag=t', '--arg1', 'type=dict', 'list=true', 'key1=value1,key2=value2' ] arg1 = quantumV20.parse_args_to_dict(_specs)['arg1'] self.assertEqual('value1', arg1[0]['key1']) self.assertEqual('value2', arg1[0]['key2'])
def test_default_bool(self): _specs = ['--my_bool', '--arg1', 'value1'] _mydict = quantumV20.parse_args_to_dict(_specs) self.assertTrue(_mydict['my_bool'])
def test_empty(self): _mydict = quantumV20.parse_args_to_dict([]) self.assertEqual({}, _mydict)
def test_list_of_dict_arg(self): _specs = ['--tag=t', '--arg1', 'type=dict', 'list=true', 'key1=value1,key2=value2'] arg1 = quantumV20.parse_args_to_dict(_specs)['arg1'] self.assertEqual('value1', arg1[0]['key1']) self.assertEqual('value2', arg1[0]['key2'])
def test_nargs(self): _specs = ["--tag", "x", "y", "--arg1", "value1"] _mydict = quantumV20.parse_args_to_dict(_specs) self.assertTrue("x" in _mydict["tag"]) self.assertTrue("y" in _mydict["tag"])
def test_arg(self): _specs = ['--tag=t', '--arg1', 'value1'] self.assertEqual('value1', quantumV20.parse_args_to_dict(_specs)['arg1'])
def test_list_of_dict_arg(self): _specs = ["--tag=t", "--arg1", "type=dict", "list=true", "key1=value1,key2=value2"] arg1 = quantumV20.parse_args_to_dict(_specs)["arg1"] self.assertEqual("value1", arg1[0]["key1"]) self.assertEqual("value2", arg1[0]["key2"])
def test_dict_arg_with_attribute_named_type(self): _specs = ["--tag=t", "--arg1", "type=dict", "type=value1,key2=value2"] arg1 = quantumV20.parse_args_to_dict(_specs)["arg1"] self.assertEqual("value1", arg1["type"]) self.assertEqual("value2", arg1["key2"])
def test_arg(self): _specs = ["--tag=t", "--arg1", "value1"] self.assertEqual("value1", quantumV20.parse_args_to_dict(_specs)["arg1"])
def test_goodarg_with_minus_number(self): _specs = ["--arg1", "value1", "-1", "-1.0"] _mydict = quantumV20.parse_args_to_dict(_specs) self.assertEqual(["value1", "-1", "-1.0"], _mydict["arg1"])
def test_bool_false(self): _specs = ['--my_bool', 'type=bool', 'false', '--arg1', 'value1'] _mydict = quantumV20.parse_args_to_dict(_specs) self.assertFalse(_mydict['my_bool'])
def test_nargs(self): _specs = ['--tag', 'x', 'y', '--arg1', 'value1'] _mydict = quantumV20.parse_args_to_dict(_specs) self.assertTrue('x' in _mydict['tag']) self.assertTrue('y' in _mydict['tag'])
def test_default_bool(self): _specs = ["--my_bool", "--arg1", "value1"] _mydict = quantumV20.parse_args_to_dict(_specs) self.assertTrue(_mydict["my_bool"])
def test_dict_arg_with_attribute_named_type(self): _specs = ['--tag=t', '--arg1', 'type=dict', 'type=value1,key2=value2'] arg1 = quantumV20.parse_args_to_dict(_specs)['arg1'] self.assertEqual('value1', arg1['type']) self.assertEqual('value2', arg1['key2'])
def test_bool_false(self): _specs = ["--my_bool", "type=bool", "false", "--arg1", "value1"] _mydict = quantumV20.parse_args_to_dict(_specs) self.assertFalse(_mydict["my_bool"])