summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-09-15 14:54:42 +0000
committerGerrit Code Review <review@openstack.org>2014-09-15 14:54:42 +0000
commit1452193f935f5be0bb2f5f01b54bd4947d27331b (patch)
tree1786eed9a73aaac3341b02730a949437e363af55
parent653a9cc0b3bf24b96627e57a67f8b2d1307465de (diff)
parentb81d650c9dcb9277bb703ca2f14b47db6553fcf8 (diff)
downloadpython-neutronclient-1452193f935f5be0bb2f5f01b54bd4947d27331b.tar.gz
Merge "Allow to specify policy by name in firewall-update"
-rw-r--r--neutronclient/neutron/v2_0/fw/firewall.py16
-rw-r--r--neutronclient/tests/unit/fw/test_cli20_firewall.py8
2 files changed, 23 insertions, 1 deletions
diff --git a/neutronclient/neutron/v2_0/fw/firewall.py b/neutronclient/neutron/v2_0/fw/firewall.py
index 2f0755b..06b8040 100644
--- a/neutronclient/neutron/v2_0/fw/firewall.py
+++ b/neutronclient/neutron/v2_0/fw/firewall.py
@@ -46,7 +46,7 @@ class CreateFirewall(neutronv20.CreateCommand):
def add_known_arguments(self, parser):
parser.add_argument(
'firewall_policy_id', metavar='POLICY',
- help=_('Firewall policy ID.'))
+ help=_('Firewall policy name or ID.'))
parser.add_argument(
'--name',
help=_('Name for the firewall.'))
@@ -83,6 +83,20 @@ class UpdateFirewall(neutronv20.UpdateCommand):
resource = 'firewall'
+ def add_known_arguments(self, parser):
+ parser.add_argument(
+ '--policy', metavar='POLICY',
+ help=_('Firewall policy name or ID.'))
+
+ def args2body(self, parsed_args):
+ data = {}
+ if parsed_args.policy:
+ _policy_id = neutronv20.find_resourceid_by_name_or_id(
+ self.get_client(), 'firewall_policy',
+ parsed_args.policy)
+ data['firewall_policy_id'] = _policy_id
+ return {self.resource: data}
+
class DeleteFirewall(neutronv20.DeleteCommand):
"""Delete a given firewall."""
diff --git a/neutronclient/tests/unit/fw/test_cli20_firewall.py b/neutronclient/tests/unit/fw/test_cli20_firewall.py
index 1d24a33..3b6288b 100644
--- a/neutronclient/tests/unit/fw/test_cli20_firewall.py
+++ b/neutronclient/tests/unit/fw/test_cli20_firewall.py
@@ -112,6 +112,14 @@ class CLITestV20FirewallJSON(test_cli20.CLITestV20Base):
['myid', '--name', 'newname'],
{'name': 'newname', })
+ def test_update_firewall_using_policy_name(self):
+ """firewall-update myid --policy newpolicy."""
+ resource = 'firewall'
+ cmd = firewall.UpdateFirewall(test_cli20.MyApp(sys.stdout), None)
+ self._test_update_resource(resource, cmd, 'myid',
+ ['myid', '--policy', 'newpolicy'],
+ {'firewall_policy_id': 'newpolicy'})
+
def test_delete_firewall(self):
"""firewall-delete my-id."""
resource = 'firewall'