summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-03-11 01:33:57 +0000
committerGerrit Code Review <review@openstack.org>2016-03-11 01:33:57 +0000
commite3e2f38920d4f111aeee9269d038c8ec4378bbb1 (patch)
tree9711f9c46e4985dbfe960879686cf305faf5b7fb /openstackclient/network
parentd4b71ea890b2a32db78f874e573eb0a79dc3a4e7 (diff)
parentea2dd8e141ef1cf446a42ee93992d8fb44f4ba05 (diff)
downloadpython-openstackclient-e3e2f38920d4f111aeee9269d038c8ec4378bbb1.tar.gz
Merge "Refactor security group create to use SDK"
Diffstat (limited to 'openstackclient/network')
-rw-r--r--openstackclient/network/v2/security_group.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/openstackclient/network/v2/security_group.py b/openstackclient/network/v2/security_group.py
index 64717945..f8162477 100644
--- a/openstackclient/network/v2/security_group.py
+++ b/openstackclient/network/v2/security_group.py
@@ -91,6 +91,56 @@ def _get_columns(item):
return tuple(display_columns), property_columns
+class CreateSecurityGroup(common.NetworkAndComputeShowOne):
+ """Create a new security group"""
+
+ def update_parser_common(self, parser):
+ parser.add_argument(
+ "name",
+ metavar="<name>",
+ help="New security group name",
+ )
+ parser.add_argument(
+ "--description",
+ metavar="<description>",
+ help="Security group description",
+ )
+ return parser
+
+ def _get_description(self, parsed_args):
+ if parsed_args.description is not None:
+ return parsed_args.description
+ else:
+ return parsed_args.name
+
+ def take_action_network(self, client, parsed_args):
+ attrs = {}
+ attrs['name'] = parsed_args.name
+ attrs['description'] = self._get_description(parsed_args)
+ obj = client.create_security_group(**attrs)
+ display_columns, property_columns = _get_columns(obj)
+ data = utils.get_item_properties(
+ obj,
+ property_columns,
+ formatters=_formatters_network
+ )
+ return (display_columns, data)
+
+ def take_action_compute(self, client, parsed_args):
+ description = self._get_description(parsed_args)
+ obj = client.security_groups.create(
+ parsed_args.name,
+ description,
+ )
+ display_columns, property_columns = _get_columns(obj._info)
+ data = utils.get_dict_properties(
+ obj._info,
+ property_columns,
+ formatters=_formatters_compute
+ )
+ return (display_columns, data)
+
+
class DeleteSecurityGroup(common.NetworkAndComputeCommand):
"""Delete a security group"""