fix the firewall rule arg split error

the previous firewall rules parsing is for type 'string', but we add the
capability to deal with type 'unicode' to match the real type from cmdline.

Change-Id: Id673a0c5967131d9d88fe0c78f19613a6fc1c721
Closes-Bug: 1385908
This commit is contained in:
Yalei Wang
2014-10-30 08:55:42 +08:00
parent 11deb7f335
commit 8a7771844d
2 changed files with 18 additions and 16 deletions

View File

@@ -70,7 +70,7 @@ class CreateFirewallPolicy(neutronv20.CreateCommand):
help=_('Create a shared policy.'),
default=argparse.SUPPRESS)
parser.add_argument(
'--firewall-rules', type=str.split,
'--firewall-rules', type=lambda x: x.split(),
help=_('Ordered list of whitespace-delimited firewall rule '
'names or IDs; e.g., --firewall-rules \"rule1 rule2\"'))
parser.add_argument(

View File

@@ -47,31 +47,33 @@ class CLITestV20FirewallPolicyJSON(test_cli20.CLITestV20Base):
admin_state_up=True, tenant_id=tenant_id)
def test_create_firewall_policy_with_all_params(self):
"""firewall-policy-create with all params set."""
"""firewall-policy-create with rule param of misc format."""
resource = 'firewall_policy'
cmd = firewallpolicy.CreateFirewallPolicy(test_cli20.MyApp(sys.stdout),
None)
name = 'my-name'
description = 'my-desc'
firewall_rules_arg = 'rule_id1 rule_id2'
firewall_rules_res = ['rule_id1', 'rule_id2']
tenant_id = 'my-tenant'
my_id = 'myid'
args = ['--description', description,
'--shared',
'--firewall-rules', firewall_rules_arg,
'--audited',
'--tenant-id', tenant_id,
'--admin-state_up',
name]
position_names = ['name', ]
position_values = [name, ]
self._test_create_resource(resource, cmd, name, my_id, args,
position_names, position_values,
description=description, shared=True,
firewall_rules=firewall_rules_res,
audited=True, admin_state_up=True,
tenant_id=tenant_id)
#check for both str and unicode format firewall_rules_arg
for firewall_rules_arg in ['rule_id1 rule_id2', u'rule_id1 rule_id2']:
args = ['--description', description,
'--shared',
'--firewall-rules', firewall_rules_arg,
'--audited',
'--tenant-id', tenant_id,
'--admin-state_up',
name]
self._test_create_resource(resource, cmd, name, my_id, args,
position_names, position_values,
description=description, shared=True,
firewall_rules=firewall_rules_res,
audited=True, admin_state_up=True,
tenant_id=tenant_id)
def test_list_firewall_policies(self):
"""firewall-policy-list."""