diff options
| author | Dean Troyer <dtroyer@gmail.com> | 2014-09-18 00:55:58 -0500 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2017-04-11 02:08:04 -0500 |
| commit | 4289ddd47a9c92eb3033eccf39966915caae05db (patch) | |
| tree | 691754545d754da44af2d6f0d78002abb1a02410 /openstackclient/network/v2 | |
| parent | 09286ad8583bb7771b2ca4e9bed23a90056687d6 (diff) | |
| download | python-openstackclient-4289ddd47a9c92eb3033eccf39966915caae05db.tar.gz | |
Low-level Compute v2 API: security group
api.compute.APIv2 starts with security group functions.
novaclient 8.0 is now released without support for the previously
deprecated nova-net functions, so include a new low-level REST
implementation of the removed APIs.
Change-Id: Id007535f0598226a8202716232313e37fe6247f9
Diffstat (limited to 'openstackclient/network/v2')
| -rw-r--r-- | openstackclient/network/v2/security_group.py | 36 | ||||
| -rw-r--r-- | openstackclient/network/v2/security_group_rule.py | 42 |
2 files changed, 34 insertions, 44 deletions
diff --git a/openstackclient/network/v2/security_group.py b/openstackclient/network/v2/security_group.py index 182d4817..75af3587 100644 --- a/openstackclient/network/v2/security_group.py +++ b/openstackclient/network/v2/security_group.py @@ -140,13 +140,13 @@ class CreateSecurityGroup(common.NetworkAndComputeShowOne): def take_action_compute(self, client, parsed_args): description = self._get_description(parsed_args) - obj = client.security_groups.create( + obj = client.api.security_group_create( parsed_args.name, description, ) display_columns, property_columns = _get_columns(obj) data = utils.get_dict_properties( - obj._info, + obj, property_columns, formatters=_formatters_compute ) @@ -174,8 +174,7 @@ class DeleteSecurityGroup(common.NetworkAndComputeDelete): client.delete_security_group(obj) def take_action_compute(self, client, parsed_args): - data = utils.find_resource(client.security_groups, self.r) - client.security_groups.delete(data.id) + client.api.security_group_delete(self.r) # TODO(rauta): Use the SDK resource mapped attribute names once @@ -242,7 +241,10 @@ class ListSecurityGroup(common.NetworkAndComputeLister): def take_action_compute(self, client, parsed_args): search = {'all_tenants': parsed_args.all_projects} - data = client.security_groups.list(search_opts=search) + data = client.api.security_group_list( + # TODO(dtroyer): add limit, marker + search_opts=search, + ) columns = ( "ID", @@ -254,7 +256,7 @@ class ListSecurityGroup(common.NetworkAndComputeLister): columns = columns + ('Tenant ID',) column_headers = column_headers + ('Project',) return (column_headers, - (utils.get_item_properties( + (utils.get_dict_properties( s, columns, ) for s in data)) @@ -294,23 +296,20 @@ class SetSecurityGroup(common.NetworkAndComputeCommand): client.update_security_group(obj, **attrs) def take_action_compute(self, client, parsed_args): - data = utils.find_resource( - client.security_groups, - parsed_args.group, - ) + data = client.api.security_group_find(parsed_args.group) if parsed_args.name is not None: - data.name = parsed_args.name + data['name'] = parsed_args.name if parsed_args.description is not None: - data.description = parsed_args.description + data['description'] = parsed_args.description # NOTE(rtheis): Previous behavior did not raise a CommandError # if there were no updates. Maintain this behavior and issue # the update. - client.security_groups.update( + client.api.security_group_set( data, - data.name, - data.description, + data['name'], + data['description'], ) @@ -337,13 +336,10 @@ class ShowSecurityGroup(common.NetworkAndComputeShowOne): return (display_columns, data) def take_action_compute(self, client, parsed_args): - obj = utils.find_resource( - client.security_groups, - parsed_args.group, - ) + obj = client.api.security_group_find(parsed_args.group) display_columns, property_columns = _get_columns(obj) data = utils.get_dict_properties( - obj._info, + obj, property_columns, formatters=_formatters_compute ) diff --git a/openstackclient/network/v2/security_group_rule.py b/openstackclient/network/v2/security_group_rule.py index 8f07c5a4..33c3ff02 100644 --- a/openstackclient/network/v2/security_group_rule.py +++ b/openstackclient/network/v2/security_group_rule.py @@ -16,11 +16,6 @@ import argparse import logging -try: - from novaclient.v2 import security_group_rules as compute_secgroup_rules -except ImportError: - from novaclient.v1_1 import security_group_rules as compute_secgroup_rules - from osc_lib.cli import parseractions from osc_lib import exceptions from osc_lib import utils @@ -348,10 +343,7 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne): return (display_columns, data) def take_action_compute(self, client, parsed_args): - group = utils.find_resource( - client.security_groups, - parsed_args.group, - ) + group = client.api.security_group_find(parsed_args.group) protocol = self._get_protocol(parsed_args) if protocol == 'icmp': from_port, to_port = -1, -1 @@ -363,10 +355,9 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne): remote_ip = None if not (parsed_args.remote_group is None and parsed_args.src_group is None): - parsed_args.remote_group = utils.find_resource( - client.security_groups, + parsed_args.remote_group = client.api.security_group_find( parsed_args.remote_group or parsed_args.src_group, - ).id + )['id'] if parsed_args.src_group: LOG.warning( _("The %(old)s option is deprecated, " @@ -384,8 +375,9 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne): ) else: remote_ip = '0.0.0.0/0' + obj = client.security_group_rules.create( - group.id, + group['id'], protocol, from_port, to_port, @@ -567,27 +559,29 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): rules_to_list = [] if parsed_args.group is not None: - group = utils.find_resource( - client.security_groups, + group = client.api.security_group_find( parsed_args.group, ) - rules_to_list = group.rules + rules_to_list = group['rules'] else: columns = columns + ('parent_group_id',) search = {'all_tenants': parsed_args.all_projects} - for group in client.security_groups.list(search_opts=search): - rules_to_list.extend(group.rules) + for group in client.api.security_group_list(search_opts=search): + rules_to_list.extend(group['rules']) # NOTE(rtheis): Turn the raw rules into resources. rules = [] for rule in rules_to_list: - rules.append(compute_secgroup_rules.SecurityGroupRule( - client.security_group_rules, + rules.append( network_utils.transform_compute_security_group_rule(rule), - )) + ) + # rules.append(compute_secgroup_rules.SecurityGroupRule( + # client.security_group_rules, + # network_utils.transform_compute_security_group_rule(rule), + # )) return (column_headers, - (utils.get_item_properties( + (utils.get_dict_properties( s, columns, ) for s in rules)) @@ -617,8 +611,8 @@ class ShowSecurityGroupRule(common.NetworkAndComputeShowOne): # the requested rule. obj = None security_group_rules = [] - for security_group in client.security_groups.list(): - security_group_rules.extend(security_group.rules) + for security_group in client.api.security_group_list(): + security_group_rules.extend(security_group['rules']) for security_group_rule in security_group_rules: if parsed_args.rule == str(security_group_rule.get('id')): obj = security_group_rule |
