Consume column utils from osc-lib

get_column_definitions() and get_columns() in neutronclient.osc.utils
have been migrated to osc-lib 1.8.0 (or later), so we no longer need
to maintain our own versions. This commit consumes osc-lib versions.

The workaround in firewallrule.py is no longer needed with
osc-lib 1.8.0 as the original bug has been fixed in osc-lib 1.8.0
(osc-lib commit 8cbdcde6076fa1df40e00d3e16bf140a59aa6273).

Change-Id: I4b9243b0fdb4ca744cc3f85371cb066a456f1d42
This commit is contained in:
Akihiro Motoki
2018-01-07 05:03:25 +09:00
parent 27ab2f9f40
commit 4914b4e3b5
26 changed files with 263 additions and 385 deletions

View File

@@ -20,8 +20,6 @@ Stuffs specific to neutronclient OSC plugin should not be added
to this module. They should go to neutronclient.osc.v2.utils. to this module. They should go to neutronclient.osc.v2.utils.
""" """
import operator
from keystoneclient import exceptions as identity_exc from keystoneclient import exceptions as identity_exc
from keystoneclient.v3 import domains from keystoneclient.v3 import domains
from keystoneclient.v3 import projects from keystoneclient.v3 import projects
@@ -30,79 +28,6 @@ from osc_lib import utils
from neutronclient._i18n import _ from neutronclient._i18n import _
LIST_BOTH = 'both'
LIST_SHORT_ONLY = 'short_only'
LIST_LONG_ONLY = 'long_only'
def get_column_definitions(attr_map, long_listing):
"""Return table headers and column names for a listing table.
:param attr_map: a list of table entry definitions.
Each entry should be a tuple consisting of
(API attribute name, header name, listing mode). For example:
(('id', 'ID', LIST_BOTH),
('name', 'Name', LIST_BOTH),
('tenant_id', 'Project', LIST_LONG_ONLY))
The third field of each tuple must be one of LIST_BOTH,
LIST_LONG_ONLY (a corresponding column is shown only in a long mode), or
LIST_SHORT_ONLY (a corresponding column is shown only in a short mode).
:param long_listing: A boolean value which indicates a long listing
or not. In most cases, parsed_args.long is passed to this argument.
:return: A tuple of a list of table headers and a list of column names.
"""
if long_listing:
headers = [hdr for col, hdr, listing_mode in attr_map
if listing_mode in (LIST_BOTH, LIST_LONG_ONLY)]
columns = [col for col, hdr, listing_mode in attr_map
if listing_mode in (LIST_BOTH, LIST_LONG_ONLY)]
else:
headers = [hdr for col, hdr, listing_mode in attr_map if listing_mode
if listing_mode in (LIST_BOTH, LIST_SHORT_ONLY)]
columns = [col for col, hdr, listing_mode in attr_map if listing_mode
if listing_mode in (LIST_BOTH, LIST_SHORT_ONLY)]
return headers, columns
def get_columns(item, attr_map=None):
"""Return pair of resource attributes and corresponding display names.
Assume the following item and attr_map are passed.
item: {'id': 'myid', 'name': 'myname',
'foo': 'bar', 'tenant_id': 'mytenan'}
attr_map:
(('id', 'ID', LIST_BOTH),
('name', 'Name', LIST_BOTH),
('tenant_id', 'Project', LIST_LONG_ONLY))
This method returns:
(('id', 'name', 'tenant_id', 'foo'), # attributes
('ID', 'Name', 'Project', 'foo') # display names
Both tuples of attributes and display names are sorted by display names
in the alphabetical order.
Attributes not found in a given attr_map are kept as-is.
:param item: a dictionary which represents a resource.
Keys of the dictionary are expected to be attributes of the resource.
Values are not referred to by this method.
:param attr_map: a list of mapping from attribute to display name.
The same format is used as for get_column_definitions attr_map.
:return: A pair of tuple of attributes and tuple of display names.
"""
attr_map = attr_map or tuple([])
_attr_map_dict = dict((col, hdr) for col, hdr, listing_mode in attr_map)
columns = [(column, _attr_map_dict.get(column, column))
for column in item.keys()]
columns = sorted(columns, key=operator.itemgetter(1))
return (tuple(col[0] for col in columns),
tuple(col[1] for col in columns))
# TODO(amotoki): Use osc-lib version once osc-lib provides this. # TODO(amotoki): Use osc-lib version once osc-lib provides this.
def add_project_owner_option_to_parser(parser): def add_project_owner_option_to_parser(parser):
"""Register project and project domain options. """Register project and project domain options.

View File

@@ -13,6 +13,7 @@
from osc_lib.command import command from osc_lib.command import command
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.common import exceptions from neutronclient.common import exceptions
@@ -99,7 +100,7 @@ class CreateBgpPeer(command.ShowOne):
attrs = _get_attrs(self.app.client_manager, parsed_args) attrs = _get_attrs(self.app.client_manager, parsed_args)
body = {constants.BGP_PEER: attrs} body = {constants.BGP_PEER: attrs}
obj = client.create_bgp_peer(body)[constants.BGP_PEER] obj = client.create_bgp_peer(body)[constants.BGP_PEER]
columns, display_columns = nc_osc_utils.get_columns(obj) columns, display_columns = column_util.get_columns(obj)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data
@@ -183,6 +184,6 @@ class ShowBgpPeer(command.ShowOne):
id = client.find_resource(constants.BGP_PEER, id = client.find_resource(constants.BGP_PEER,
parsed_args.bgp_peer)['id'] parsed_args.bgp_peer)['id']
obj = client.show_bgp_peer(id)[constants.BGP_PEER] obj = client.show_bgp_peer(id)[constants.BGP_PEER]
columns, display_columns = nc_osc_utils.get_columns(obj) columns, display_columns = column_util.get_columns(obj)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data

View File

@@ -13,6 +13,7 @@
from osc_lib.command import command from osc_lib.command import command
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.osc import utils as nc_osc_utils from neutronclient.osc import utils as nc_osc_utils
@@ -149,7 +150,7 @@ class CreateBgpSpeaker(command.ShowOne):
body = {} body = {}
body[constants.BGP_SPEAKER] = attrs body[constants.BGP_SPEAKER] = attrs
obj = client.create_bgp_speaker(body)[constants.BGP_SPEAKER] obj = client.create_bgp_speaker(body)[constants.BGP_SPEAKER]
columns, display_columns = nc_osc_utils.get_columns(obj) columns, display_columns = column_util.get_columns(obj)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data
@@ -315,6 +316,6 @@ class ShowBgpSpeaker(command.ShowOne):
id = client.find_resource(constants.BGP_SPEAKER, id = client.find_resource(constants.BGP_SPEAKER,
parsed_args.bgp_speaker)['id'] parsed_args.bgp_speaker)['id']
obj = client.show_bgp_speaker(id)[constants.BGP_SPEAKER] obj = client.show_bgp_speaker(id)[constants.BGP_SPEAKER]
columns, display_columns = nc_osc_utils.get_columns(obj) columns, display_columns = column_util.get_columns(obj)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data

View File

@@ -18,6 +18,7 @@ import logging
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.osc import utils as osc_utils from neutronclient.osc import utils as osc_utils
@@ -32,16 +33,16 @@ _formatters = {
} }
_attr_map = ( _attr_map = (
('id', 'ID', osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('ingress_firewall_policy_id', 'Ingress Policy ID', osc_utils.LIST_BOTH), ('ingress_firewall_policy_id', 'Ingress Policy ID', column_util.LIST_BOTH),
('egress_firewall_policy_id', 'Egress Policy ID', osc_utils.LIST_BOTH), ('egress_firewall_policy_id', 'Egress Policy ID', column_util.LIST_BOTH),
('description', 'Description', osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('status', 'Status', osc_utils.LIST_LONG_ONLY), ('status', 'Status', column_util.LIST_LONG_ONLY),
('ports', 'Ports', osc_utils.LIST_LONG_ONLY), ('ports', 'Ports', column_util.LIST_LONG_ONLY),
('admin_state_up', 'State', osc_utils.LIST_LONG_ONLY), ('admin_state_up', 'State', column_util.LIST_LONG_ONLY),
('shared', 'Shared', osc_utils.LIST_LONG_ONLY), ('shared', 'Shared', column_util.LIST_LONG_ONLY),
('tenant_id', 'Project', osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
) )
@@ -201,7 +202,7 @@ class CreateFirewallGroup(command.ShowOne):
attrs = _get_common_attrs(self.app.client_manager, parsed_args) attrs = _get_common_attrs(self.app.client_manager, parsed_args)
obj = client.create_fwaas_firewall_group( obj = client.create_fwaas_firewall_group(
{const.FWG: attrs})[const.FWG] {const.FWG: attrs})[const.FWG]
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns, formatters=_formatters) data = utils.get_dict_properties(obj, columns, formatters=_formatters)
return (display_columns, data) return (display_columns, data)
@@ -254,7 +255,7 @@ class ListFirewallGroup(command.Lister):
def take_action(self, parsed_args): def take_action(self, parsed_args):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
obj = client.list_fwaas_firewall_groups()[const.FWGS] obj = client.list_fwaas_firewall_groups()[const.FWGS]
headers, columns = osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, (utils.get_dict_properties( return (headers, (utils.get_dict_properties(
s, columns, formatters=_formatters) for s in obj)) s, columns, formatters=_formatters) for s in obj))
@@ -313,7 +314,7 @@ class ShowFirewallGroup(command.ShowOne):
fwg_id = client.find_resource(const.FWG, parsed_args.firewall_group, fwg_id = client.find_resource(const.FWG, parsed_args.firewall_group,
cmd_resource=const.CMD_FWG)['id'] cmd_resource=const.CMD_FWG)['id']
obj = client.show_fwaas_firewall_group(fwg_id)[const.FWG] obj = client.show_fwaas_firewall_group(fwg_id)[const.FWG]
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns, formatters=_formatters) data = utils.get_dict_properties(obj, columns, formatters=_formatters)
return (display_columns, data) return (display_columns, data)

View File

@@ -21,6 +21,7 @@ import logging
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.osc import utils as osc_utils from neutronclient.osc import utils as osc_utils
@@ -32,13 +33,13 @@ LOG = logging.getLogger(__name__)
_formatters = {} _formatters = {}
_attr_map = ( _attr_map = (
('id', 'ID', osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('firewall_rules', 'Firewall Rules', osc_utils.LIST_BOTH), ('firewall_rules', 'Firewall Rules', column_util.LIST_BOTH),
('description', 'Description', osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('audited', 'Audited', osc_utils.LIST_LONG_ONLY), ('audited', 'Audited', column_util.LIST_LONG_ONLY),
('shared', 'Shared', osc_utils.LIST_LONG_ONLY), ('shared', 'Shared', column_util.LIST_LONG_ONLY),
('tenant_id', 'Project', osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
) )
@@ -155,7 +156,7 @@ class CreateFirewallPolicy(command.ShowOne):
attrs = _get_common_attrs(self.app.client_manager, parsed_args) attrs = _get_common_attrs(self.app.client_manager, parsed_args)
obj = client.create_fwaas_firewall_policy( obj = client.create_fwaas_firewall_policy(
{const.FWP: attrs})[const.FWP] {const.FWP: attrs})[const.FWP]
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns, formatters=_formatters) data = utils.get_dict_properties(obj, columns, formatters=_formatters)
return (display_columns, data) return (display_columns, data)
@@ -297,7 +298,7 @@ class ListFirewallPolicy(command.Lister):
def take_action(self, parsed_args): def take_action(self, parsed_args):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
obj = client.list_fwaas_firewall_policies()[const.FWPS] obj = client.list_fwaas_firewall_policies()[const.FWPS]
headers, columns = osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, (utils.get_dict_properties( return (headers, (utils.get_dict_properties(
s, columns, formatters=_formatters) for s in obj)) s, columns, formatters=_formatters) for s in obj))
@@ -360,7 +361,7 @@ class ShowFirewallPolicy(command.ShowOne):
parsed_args.firewall_policy, parsed_args.firewall_policy,
cmd_resource=const.CMD_FWP)['id'] cmd_resource=const.CMD_FWP)['id']
obj = client.show_fwaas_firewall_policy(fwp_id)[const.FWP] obj = client.show_fwaas_firewall_policy(fwp_id)[const.FWP]
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns, formatters=_formatters) data = utils.get_dict_properties(obj, columns, formatters=_formatters)
return (display_columns, data) return (display_columns, data)

View File

@@ -20,6 +20,7 @@ from cliff import columns as cliff_columns
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.common import utils as nc_utils from neutronclient.common import utils as nc_utils
@@ -31,21 +32,21 @@ LOG = logging.getLogger(__name__)
_attr_map = ( _attr_map = (
('id', 'ID', osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('enabled', 'Enabled', osc_utils.LIST_BOTH), ('enabled', 'Enabled', column_util.LIST_BOTH),
('summary', 'Summary', osc_utils.LIST_SHORT_ONLY), ('summary', 'Summary', column_util.LIST_SHORT_ONLY),
('description', 'Description', osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('ip_version', 'IP Version', osc_utils.LIST_LONG_ONLY), ('ip_version', 'IP Version', column_util.LIST_LONG_ONLY),
('action', 'Action', osc_utils.LIST_LONG_ONLY), ('action', 'Action', column_util.LIST_LONG_ONLY),
('protocol', 'Protocol', osc_utils.LIST_LONG_ONLY), ('protocol', 'Protocol', column_util.LIST_LONG_ONLY),
('source_ip_address', 'Source IP Address', osc_utils.LIST_LONG_ONLY), ('source_ip_address', 'Source IP Address', column_util.LIST_LONG_ONLY),
('source_port', 'Source Port', osc_utils.LIST_LONG_ONLY), ('source_port', 'Source Port', column_util.LIST_LONG_ONLY),
('destination_ip_address', 'Destination IP Address', ('destination_ip_address', 'Destination IP Address',
osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('destination_port', 'Destination Port', osc_utils.LIST_LONG_ONLY), ('destination_port', 'Destination Port', column_util.LIST_LONG_ONLY),
('shared', 'Shared', osc_utils.LIST_LONG_ONLY), ('shared', 'Shared', column_util.LIST_LONG_ONLY),
('tenant_id', 'Project', osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
) )
@@ -217,7 +218,7 @@ class CreateFirewallRule(command.ShowOne):
attrs = _get_common_attrs(self.app.client_manager, parsed_args) attrs = _get_common_attrs(self.app.client_manager, parsed_args)
obj = client.create_fwaas_firewall_rule( obj = client.create_fwaas_firewall_rule(
{const.FWR: attrs})[const.FWR] {const.FWR: attrs})[const.FWR]
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns, formatters=_formatters) data = utils.get_dict_properties(obj, columns, formatters=_formatters)
return display_columns, data return display_columns, data
@@ -294,7 +295,7 @@ class ListFirewallRule(command.Lister):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
obj = client.list_fwaas_firewall_rules()[const.FWRS] obj = client.list_fwaas_firewall_rules()[const.FWRS]
obj_extend = self.extend_list(obj, parsed_args) obj_extend = self.extend_list(obj, parsed_args)
headers, columns = osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, (utils.get_dict_properties( return (headers, (utils.get_dict_properties(
s, columns, formatters=_formatters) for s in obj_extend)) s, columns, formatters=_formatters) for s in obj_extend))
@@ -344,7 +345,7 @@ class ShowFirewallRule(command.ShowOne):
const.FWR, parsed_args.firewall_rule, const.FWR, parsed_args.firewall_rule,
cmd_resource=const.CMD_FWR)['id'] cmd_resource=const.CMD_FWR)['id']
obj = client.show_fwaas_firewall_rule(fwr_id)[const.FWR] obj = client.show_fwaas_firewall_rule(fwr_id)[const.FWR]
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns, formatters=_formatters) data = utils.get_dict_properties(obj, columns, formatters=_formatters)
return (display_columns, data) return (display_columns, data)

View File

@@ -19,6 +19,7 @@ import copy
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from oslo_log import log as logging from oslo_log import log as logging
from neutronclient._i18n import _ from neutronclient._i18n import _
@@ -29,20 +30,20 @@ from neutronclient.osc import utils as osc_utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
_attr_map = ( _attr_map = (
('id', 'ID', osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('description', 'Description', osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('enabled', 'Enabled', osc_utils.LIST_BOTH), ('enabled', 'Enabled', column_util.LIST_BOTH),
('name', 'Name', osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('target_id', 'Target', osc_utils.LIST_LONG_ONLY), ('target_id', 'Target', column_util.LIST_LONG_ONLY),
('project_id', 'Project', osc_utils.LIST_LONG_ONLY), ('project_id', 'Project', column_util.LIST_LONG_ONLY),
('resource_id', 'Resource', osc_utils.LIST_LONG_ONLY), ('resource_id', 'Resource', column_util.LIST_LONG_ONLY),
('resource_type', 'Type', osc_utils.LIST_BOTH), ('resource_type', 'Type', column_util.LIST_BOTH),
('event', 'Event', osc_utils.LIST_LONG_ONLY), ('event', 'Event', column_util.LIST_LONG_ONLY),
('summary', 'Summary', osc_utils.LIST_SHORT_ONLY), ('summary', 'Summary', column_util.LIST_SHORT_ONLY),
) )
_attr_map_for_loggable = ( _attr_map_for_loggable = (
('type', 'Supported types', osc_utils.LIST_BOTH), ('type', 'Supported types', column_util.LIST_BOTH),
) )
NET_LOG = 'network_log' NET_LOG = 'network_log'
@@ -142,7 +143,7 @@ class CreateNetworkLog(command.ShowOne):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
attrs = _get_common_attrs(self.app.client_manager, parsed_args) attrs = _get_common_attrs(self.app.client_manager, parsed_args)
obj = client.create_network_log({'log': attrs})['log'] obj = client.create_network_log({'log': attrs})['log']
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return (display_columns, data) return (display_columns, data)
@@ -195,7 +196,7 @@ class ListLoggableResource(command.Lister):
def take_action(self, parsed_args): def take_action(self, parsed_args):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
obj = client.list_network_loggable_resources()['loggable_resources'] obj = client.list_network_loggable_resources()['loggable_resources']
headers, columns = osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map_for_loggable, long_listing=parsed_args.long) _attr_map_for_loggable, long_listing=parsed_args.long)
return (headers, (utils.get_dict_properties(s, columns) for s in obj)) return (headers, (utils.get_dict_properties(s, columns) for s in obj))
@@ -232,7 +233,7 @@ class ListNetworkLog(command.Lister):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
obj = client.list_network_logs()['logs'] obj = client.list_network_logs()['logs']
obj_extend = self._extend_list(obj, parsed_args) obj_extend = self._extend_list(obj, parsed_args)
headers, columns = osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, ( return (headers, (
utils.get_dict_properties(s, columns) for s in obj_extend)) utils.get_dict_properties(s, columns) for s in obj_extend))
@@ -284,6 +285,6 @@ class ShowNetworkLog(command.ShowOne):
log_id = client.find_resource( log_id = client.find_resource(
'log', parsed_args.network_log, cmd_resource=NET_LOG)['id'] 'log', parsed_args.network_log, cmd_resource=NET_LOG)['id']
obj = client.show_network_log(log_id)['log'] obj = client.show_network_log(log_id)['log']
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return (display_columns, data) return (display_columns, data)

View File

@@ -21,6 +21,7 @@ from osc_lib.cli.parseractions import KeyValueAction
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils as osc_utils from osc_lib import utils as osc_utils
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.osc import utils as nc_osc_utils from neutronclient.osc import utils as nc_osc_utils
@@ -29,20 +30,20 @@ from neutronclient.osc.v2.networking_bgpvpn import constants
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
_attr_map = ( _attr_map = (
('id', 'ID', nc_osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('tenant_id', 'Project', nc_osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
('name', 'Name', nc_osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('type', 'Type', nc_osc_utils.LIST_BOTH), ('type', 'Type', column_util.LIST_BOTH),
('route_targets', 'Route Targets', nc_osc_utils.LIST_LONG_ONLY), ('route_targets', 'Route Targets', column_util.LIST_LONG_ONLY),
('import_targets', 'Import Targets', nc_osc_utils.LIST_LONG_ONLY), ('import_targets', 'Import Targets', column_util.LIST_LONG_ONLY),
('export_targets', 'Export Targets', nc_osc_utils.LIST_LONG_ONLY), ('export_targets', 'Export Targets', column_util.LIST_LONG_ONLY),
('route_distinguishers', 'Route Distinguishers', ('route_distinguishers', 'Route Distinguishers',
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('networks', 'Associated Networks', nc_osc_utils.LIST_LONG_ONLY), ('networks', 'Associated Networks', column_util.LIST_LONG_ONLY),
('routers', 'Associated Routers', nc_osc_utils.LIST_LONG_ONLY), ('routers', 'Associated Routers', column_util.LIST_LONG_ONLY),
('ports', 'Associated Ports', nc_osc_utils.LIST_LONG_ONLY), ('ports', 'Associated Ports', column_util.LIST_LONG_ONLY),
('vni', 'VNI', nc_osc_utils.LIST_LONG_ONLY), ('vni', 'VNI', column_util.LIST_LONG_ONLY),
('local_pref', 'Local Pref', nc_osc_utils.LIST_LONG_ONLY), ('local_pref', 'Local Pref', column_util.LIST_LONG_ONLY),
) )
_formatters = { _formatters = {
'route_targets': format_columns.ListColumn, 'route_targets': format_columns.ListColumn,
@@ -267,7 +268,7 @@ class CreateBgpvpn(command.ShowOne):
attrs['tenant_id'] = project_id attrs['tenant_id'] = project_id
body = {constants.BGPVPN: attrs} body = {constants.BGPVPN: attrs}
obj = client.create_bgpvpn(body)[constants.BGPVPN] obj = client.create_bgpvpn(body)[constants.BGPVPN]
columns, display_columns = nc_osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = osc_utils.get_dict_properties(obj, columns, data = osc_utils.get_dict_properties(obj, columns,
formatters=_formatters) formatters=_formatters)
return display_columns, data return display_columns, data
@@ -379,7 +380,7 @@ class ListBgpvpn(command.Lister):
if parsed_args.property: if parsed_args.property:
params.update(parsed_args.property) params.update(parsed_args.property)
objs = client.list_bgpvpns(**params)[constants.BGPVPNS] objs = client.list_bgpvpns(**params)[constants.BGPVPNS]
headers, columns = nc_osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, (osc_utils.get_dict_properties( return (headers, (osc_utils.get_dict_properties(
s, columns, formatters=_formatters) for s in objs)) s, columns, formatters=_formatters) for s in objs))
@@ -401,7 +402,7 @@ class ShowBgpvpn(command.ShowOne):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
id = client.find_resource(constants.BGPVPN, parsed_args.bgpvpn)['id'] id = client.find_resource(constants.BGPVPN, parsed_args.bgpvpn)['id']
obj = client.show_bgpvpn(id)[constants.BGPVPN] obj = client.show_bgpvpn(id)[constants.BGPVPN]
columns, display_columns = nc_osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = osc_utils.get_dict_properties(obj, columns, data = osc_utils.get_dict_properties(obj, columns,
formatters=_formatters) formatters=_formatters)
return display_columns, data return display_columns, data

View File

@@ -14,9 +14,9 @@
# under the License. # under the License.
# #
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.osc import utils as nc_osc_utils
from neutronclient.osc.v2.networking_bgpvpn import constants from neutronclient.osc.v2.networking_bgpvpn import constants
from neutronclient.osc.v2.networking_bgpvpn.resource_association import\ from neutronclient.osc.v2.networking_bgpvpn.resource_association import\
CreateBgpvpnResAssoc CreateBgpvpnResAssoc
@@ -34,10 +34,10 @@ class BgpvpnNetAssoc(object):
_resource_plural = constants.NETWORK_ASSOCS _resource_plural = constants.NETWORK_ASSOCS
_attr_map = ( _attr_map = (
('id', 'ID', nc_osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('tenant_id', 'Project', nc_osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
('%s_id' % _assoc_res_name, '%s ID' % _assoc_res_name.capitalize(), ('%s_id' % _assoc_res_name, '%s ID' % _assoc_res_name.capitalize(),
nc_osc_utils.LIST_BOTH), column_util.LIST_BOTH),
) )
_formatters = {} _formatters = {}

View File

@@ -18,9 +18,9 @@ import logging
from osc_lib.cli import format_columns from osc_lib.cli import format_columns
from osc_lib.cli import parseractions from osc_lib.cli import parseractions
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.osc import utils as nc_osc_utils
from neutronclient.osc.v2.networking_bgpvpn import constants from neutronclient.osc.v2.networking_bgpvpn import constants
from neutronclient.osc.v2.networking_bgpvpn import resource_association from neutronclient.osc.v2.networking_bgpvpn import resource_association
@@ -33,16 +33,16 @@ class BgpvpnPortAssoc(object):
_resource_plural = constants.PORT_ASSOCS _resource_plural = constants.PORT_ASSOCS
_attr_map = ( _attr_map = (
('id', 'ID', nc_osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('tenant_id', 'Project', nc_osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
('%s_id' % _assoc_res_name, '%s ID' % _assoc_res_name.capitalize(), ('%s_id' % _assoc_res_name, '%s ID' % _assoc_res_name.capitalize(),
nc_osc_utils.LIST_BOTH), column_util.LIST_BOTH),
('prefix_routes', 'Prefix Routes (BGP LOCAL_PREF)', ('prefix_routes', 'Prefix Routes (BGP LOCAL_PREF)',
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('bgpvpn_routes', 'BGP VPN Routes (BGP LOCAL_PREF)', ('bgpvpn_routes', 'BGP VPN Routes (BGP LOCAL_PREF)',
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('advertise_fixed_ips', "Advertise Port's Fixed IPs", ('advertise_fixed_ips', "Advertise Port's Fixed IPs",
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
) )
_formatters = { _formatters = {
'prefix_routes': format_columns.ListColumn, 'prefix_routes': format_columns.ListColumn,

View File

@@ -20,6 +20,7 @@ from osc_lib.cli import parseractions
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils as osc_utils from osc_lib import utils as osc_utils
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.osc import utils as nc_osc_utils from neutronclient.osc import utils as nc_osc_utils
@@ -83,8 +84,7 @@ class CreateBgpvpnResAssoc(command.ShowOne):
transform = getattr(self, '_transform_resource', None) transform = getattr(self, '_transform_resource', None)
if callable(transform): if callable(transform):
transform(obj) transform(obj)
columns, display_columns = nc_osc_utils.get_columns(obj, columns, display_columns = column_util.get_columns(obj, self._attr_map)
self._attr_map)
data = osc_utils.get_dict_properties(obj, columns, data = osc_utils.get_dict_properties(obj, columns,
formatters=self._formatters) formatters=self._formatters)
return display_columns, data return display_columns, data
@@ -218,7 +218,7 @@ class ListBgpvpnResAssoc(command.Lister):
transform = getattr(self, '_transform_resource', None) transform = getattr(self, '_transform_resource', None)
if callable(transform): if callable(transform):
[transform(obj) for obj in objs] [transform(obj) for obj in objs]
headers, columns = nc_osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
self._attr_map, long_listing=parsed_args.long) self._attr_map, long_listing=parsed_args.long)
return (headers, (osc_utils.get_dict_properties( return (headers, (osc_utils.get_dict_properties(
s, columns, formatters=self._formatters) for s in objs)) s, columns, formatters=self._formatters) for s in objs))
@@ -256,8 +256,7 @@ class ShowBgpvpnResAssoc(command.ShowOne):
transform = getattr(self, '_transform_resource', None) transform = getattr(self, '_transform_resource', None)
if callable(transform): if callable(transform):
transform(obj) transform(obj)
columns, display_columns = nc_osc_utils.get_columns(obj, columns, display_columns = column_util.get_columns(obj, self._attr_map)
self._attr_map)
data = osc_utils.get_dict_properties(obj, columns, data = osc_utils.get_dict_properties(obj, columns,
formatters=self._formatters) formatters=self._formatters)
return display_columns, data return display_columns, data

View File

@@ -14,9 +14,9 @@
# under the License. # under the License.
# #
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.osc import utils as nc_osc_utils
from neutronclient.osc.v2.networking_bgpvpn import constants from neutronclient.osc.v2.networking_bgpvpn import constants
from neutronclient.osc.v2.networking_bgpvpn.resource_association import\ from neutronclient.osc.v2.networking_bgpvpn.resource_association import\
CreateBgpvpnResAssoc CreateBgpvpnResAssoc
@@ -34,10 +34,10 @@ class BgpvpnRouterAssoc(object):
_resource_plural = constants.ROUTER_ASSOCS _resource_plural = constants.ROUTER_ASSOCS
_attr_map = ( _attr_map = (
('id', 'ID', nc_osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('tenant_id', 'Project', nc_osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
('%s_id' % _assoc_res_name, '%s ID' % _assoc_res_name.capitalize(), ('%s_id' % _assoc_res_name, '%s ID' % _assoc_res_name.capitalize(),
nc_osc_utils.LIST_BOTH), column_util.LIST_BOTH),
) )
_formatters = {} _formatters = {}

View File

@@ -19,40 +19,40 @@ import logging
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.common import exceptions as nc_exc from neutronclient.common import exceptions as nc_exc
from neutronclient.osc import utils as nc_osc_utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
resource = 'flow_classifier' resource = 'flow_classifier'
_attr_map = ( _attr_map = (
('id', 'ID', nc_osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', nc_osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('summary', 'Summary', nc_osc_utils.LIST_SHORT_ONLY), ('summary', 'Summary', column_util.LIST_SHORT_ONLY),
('protocol', 'Protocol', nc_osc_utils.LIST_LONG_ONLY), ('protocol', 'Protocol', column_util.LIST_LONG_ONLY),
('ethertype', 'Ethertype', nc_osc_utils.LIST_LONG_ONLY), ('ethertype', 'Ethertype', column_util.LIST_LONG_ONLY),
('source_ip_prefix', 'Source IP', ('source_ip_prefix', 'Source IP',
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('destination_ip_prefix', 'Destination IP', ('destination_ip_prefix', 'Destination IP',
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('logical_source_port', 'Logical Source Port', ('logical_source_port', 'Logical Source Port',
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('logical_destination_port', 'Logical Destination Port', ('logical_destination_port', 'Logical Destination Port',
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('source_port_range_min', 'Source Port Range Min', ('source_port_range_min', 'Source Port Range Min',
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('source_port_range_max', 'Source Port Range Max', ('source_port_range_max', 'Source Port Range Max',
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('destination_port_range_min', 'Destination Port Range Min', ('destination_port_range_min', 'Destination Port Range Min',
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('destination_port_range_max', 'Destination Port Range Max', ('destination_port_range_max', 'Destination Port Range Max',
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('l7_parameters', 'L7 Parameters', nc_osc_utils.LIST_LONG_ONLY), ('l7_parameters', 'L7 Parameters', column_util.LIST_LONG_ONLY),
('description', 'Description', nc_osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('project_id', 'Project', nc_osc_utils.LIST_LONG_ONLY), ('project_id', 'Project', column_util.LIST_LONG_ONLY),
) )
@@ -118,7 +118,7 @@ class CreateSfcFlowClassifier(command.ShowOne):
attrs = _get_common_attrs(self.app.client_manager, parsed_args) attrs = _get_common_attrs(self.app.client_manager, parsed_args)
body = {resource: attrs} body = {resource: attrs}
obj = client.create_sfc_flow_classifier(body)[resource] obj = client.create_sfc_flow_classifier(body)[resource]
columns, display_columns = nc_osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data
@@ -200,7 +200,7 @@ class ListSfcFlowClassifier(command.Lister):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
obj = client.list_sfc_flow_classifiers() obj = client.list_sfc_flow_classifiers()
obj_extend = self.extend_list(obj, parsed_args) obj_extend = self.extend_list(obj, parsed_args)
headers, columns = nc_osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, (utils.get_dict_properties( return (headers, (utils.get_dict_properties(
s, columns) for s in obj_extend)) s, columns) for s in obj_extend))
@@ -256,7 +256,7 @@ class ShowSfcFlowClassifier(command.ShowOne):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
fc_id = _get_id(client, parsed_args.flow_classifier, resource) fc_id = _get_id(client, parsed_args.flow_classifier, resource)
obj = client.show_sfc_flow_classifier(fc_id)[resource] obj = client.show_sfc_flow_classifier(fc_id)[resource]
columns, display_columns = nc_osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data

View File

@@ -19,25 +19,25 @@ from osc_lib.cli import parseractions
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.osc import utils as nc_osc_utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
resource = 'port_chain' resource = 'port_chain'
_attr_map = ( _attr_map = (
('id', 'ID', nc_osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', nc_osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('port_pair_groups', 'Port Pair Groups', nc_osc_utils.LIST_BOTH), ('port_pair_groups', 'Port Pair Groups', column_util.LIST_BOTH),
('flow_classifiers', 'Flow Classifiers', ('flow_classifiers', 'Flow Classifiers',
nc_osc_utils.LIST_BOTH), column_util.LIST_BOTH),
('chain_parameters', 'Chain Parameters', ('chain_parameters', 'Chain Parameters',
nc_osc_utils.LIST_BOTH), column_util.LIST_BOTH),
('description', 'Description', nc_osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('chain_id', 'Chain ID', nc_osc_utils.LIST_BOTH), ('chain_id', 'Chain ID', column_util.LIST_BOTH),
('project_id', 'Project', nc_osc_utils.LIST_LONG_ONLY), ('project_id', 'Project', column_util.LIST_LONG_ONLY),
) )
@@ -85,7 +85,7 @@ class CreateSfcPortChain(command.ShowOne):
attrs = _get_common_attrs(self.app.client_manager, parsed_args) attrs = _get_common_attrs(self.app.client_manager, parsed_args)
body = {resource: attrs} body = {resource: attrs}
obj = client.create_sfc_port_chain(body)[resource] obj = client.create_sfc_port_chain(body)[resource]
columns, display_columns = nc_osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data
@@ -131,7 +131,7 @@ class ListSfcPortChain(command.Lister):
def take_action(self, parsed_args): def take_action(self, parsed_args):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
data = client.list_sfc_port_chains() data = client.list_sfc_port_chains()
headers, columns = nc_osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, return (headers,
(utils.get_dict_properties(s, columns) (utils.get_dict_properties(s, columns)
@@ -254,7 +254,7 @@ class ShowSfcPortChain(command.ShowOne):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
pc_id = _get_id(client, parsed_args.port_chain, resource) pc_id = _get_id(client, parsed_args.port_chain, resource)
obj = client.show_sfc_port_chain(pc_id)[resource] obj = client.show_sfc_port_chain(pc_id)[resource]
columns, display_columns = nc_osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data

View File

@@ -19,23 +19,23 @@ from osc_lib.cli import parseractions
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.osc import utils as nc_osc_utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
resource = 'port_pair' resource = 'port_pair'
_attr_map = ( _attr_map = (
('id', 'ID', nc_osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', nc_osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('ingress', 'Ingress Logical Port', nc_osc_utils.LIST_BOTH), ('ingress', 'Ingress Logical Port', column_util.LIST_BOTH),
('egress', 'Egress Logical Port', nc_osc_utils.LIST_BOTH), ('egress', 'Egress Logical Port', column_util.LIST_BOTH),
('service_function_parameters', 'Service Function Parameters', ('service_function_parameters', 'Service Function Parameters',
nc_osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('description', 'Description', nc_osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('project_id', 'Project', nc_osc_utils.LIST_LONG_ONLY), ('project_id', 'Project', column_util.LIST_LONG_ONLY),
) )
@@ -80,7 +80,7 @@ class CreateSfcPortPair(command.ShowOne):
attrs = _get_common_attrs(self.app.client_manager, parsed_args) attrs = _get_common_attrs(self.app.client_manager, parsed_args)
body = {resource: attrs} body = {resource: attrs}
obj = client.create_sfc_port_pair(body)[resource] obj = client.create_sfc_port_pair(body)[resource]
columns, display_columns = nc_osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data
@@ -125,7 +125,7 @@ class ListSfcPortPair(command.Lister):
def take_action(self, parsed_args): def take_action(self, parsed_args):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
data = client.list_sfc_port_pairs() data = client.list_sfc_port_pairs()
headers, columns = nc_osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, return (headers,
(utils.get_dict_properties( (utils.get_dict_properties(
@@ -183,7 +183,7 @@ class ShowSfcPortPair(command.ShowOne):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
port_pair_id = _get_id(client, parsed_args.port_pair, resource) port_pair_id = _get_id(client, parsed_args.port_pair, resource)
obj = client.show_sfc_port_pair(port_pair_id)[resource] obj = client.show_sfc_port_pair(port_pair_id)[resource]
columns, display_columns = nc_osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data

View File

@@ -19,24 +19,24 @@ from osc_lib.cli import parseractions
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.osc import utils as nc_osc_utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
resource = 'port_pair_group' resource = 'port_pair_group'
_attr_map = ( _attr_map = (
('id', 'ID', nc_osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', nc_osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('port_pairs', 'Port Pair', nc_osc_utils.LIST_BOTH), ('port_pairs', 'Port Pair', column_util.LIST_BOTH),
('port_pair_group_parameters', 'Port Pair Group Parameters', ('port_pair_group_parameters', 'Port Pair Group Parameters',
nc_osc_utils.LIST_BOTH), column_util.LIST_BOTH),
('description', 'Description', nc_osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('group_id', 'Loadbalance ID', nc_osc_utils.LIST_LONG_ONLY), ('group_id', 'Loadbalance ID', column_util.LIST_LONG_ONLY),
('project_id', 'Project', nc_osc_utils.LIST_LONG_ONLY), ('project_id', 'Project', column_util.LIST_LONG_ONLY),
('tap_enabled', 'Tap Enabled', nc_osc_utils.LIST_BOTH) ('tap_enabled', 'Tap Enabled', column_util.LIST_BOTH)
) )
@@ -89,7 +89,7 @@ class CreateSfcPortPairGroup(command.ShowOne):
attrs = _get_common_attrs(self.app.client_manager, parsed_args) attrs = _get_common_attrs(self.app.client_manager, parsed_args)
body = {resource: attrs} body = {resource: attrs}
obj = client.create_sfc_port_pair_group(body)[resource] obj = client.create_sfc_port_pair_group(body)[resource]
columns, display_columns = nc_osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data
@@ -135,7 +135,7 @@ class ListSfcPortPairGroup(command.Lister):
def take_action(self, parsed_args): def take_action(self, parsed_args):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
data = client.list_sfc_port_pair_groups() data = client.list_sfc_port_pair_groups()
headers, columns = nc_osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, return (headers,
(utils.get_dict_properties( (utils.get_dict_properties(
@@ -217,7 +217,7 @@ class ShowSfcPortPairGroup(command.ShowOne):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
ppg_id = _get_id(client, parsed_args.port_pair_group, resource) ppg_id = _get_id(client, parsed_args.port_pair_group, resource)
obj = client.show_sfc_port_pair_group(ppg_id)[resource] obj = client.show_sfc_port_pair_group(ppg_id)[resource]
columns, display_columns = nc_osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data

View File

@@ -17,20 +17,20 @@ import logging
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from neutronclient._i18n import _ from neutronclient._i18n import _
from neutronclient.osc import utils as nc_osc_utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
resource = 'service_graph' resource = 'service_graph'
_attr_map = ( _attr_map = (
('id', 'ID', nc_osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', nc_osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('port_chains', 'Branching Points', nc_osc_utils.LIST_BOTH), ('port_chains', 'Branching Points', column_util.LIST_BOTH),
('description', 'Description', nc_osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('project_id', 'Project', nc_osc_utils.LIST_LONG_ONLY), ('project_id', 'Project', column_util.LIST_LONG_ONLY),
) )
@@ -62,7 +62,7 @@ class CreateSfcServiceGraph(command.ShowOne):
try: try:
body = {resource: attrs} body = {resource: attrs}
obj = client.create_sfc_service_graph(body)[resource] obj = client.create_sfc_service_graph(body)[resource]
columns, display_columns = nc_osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data
except Exception as e: except Exception as e:
@@ -140,7 +140,7 @@ class ListSfcServiceGraph(command.Lister):
def take_action(self, parsed_args): def take_action(self, parsed_args):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
data = client.list_sfc_service_graphs() data = client.list_sfc_service_graphs()
headers, columns = nc_osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, return (headers,
(utils.get_dict_properties(s, columns) (utils.get_dict_properties(s, columns)
@@ -163,7 +163,7 @@ class ShowSfcServiceGraph(command.ShowOne):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
sg_id = _get_id(client, parsed_args.service_graph, resource) sg_id = _get_id(client, parsed_args.service_graph, resource)
obj = client.show_sfc_service_graph(sg_id)[resource] obj = client.show_sfc_service_graph(sg_id)[resource]
columns, display_columns = nc_osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data

View File

@@ -17,6 +17,7 @@
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from oslo_log import log as logging from oslo_log import log as logging
from neutronclient._i18n import _ from neutronclient._i18n import _
@@ -26,12 +27,12 @@ from neutronclient.osc import utils as osc_utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
_attr_map = ( _attr_map = (
('id', 'ID', osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('type', 'Type', osc_utils.LIST_BOTH), ('type', 'Type', column_util.LIST_BOTH),
('endpoints', 'Endpoints', osc_utils.LIST_BOTH), ('endpoints', 'Endpoints', column_util.LIST_BOTH),
('description', 'Description', osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('tenant_id', 'Project', osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
) )
@@ -98,7 +99,7 @@ class CreateEndpointGroup(command.ShowOne):
attrs['endpoints'] = parsed_args.endpoints attrs['endpoints'] = parsed_args.endpoints
obj = client.create_endpoint_group( obj = client.create_endpoint_group(
{'endpoint_group': attrs})['endpoint_group'] {'endpoint_group': attrs})['endpoint_group']
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data
@@ -154,7 +155,7 @@ class ListEndpointGroup(command.Lister):
def take_action(self, parsed_args): def take_action(self, parsed_args):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
obj = client.list_endpoint_groups()['endpoint_groups'] obj = client.list_endpoint_groups()['endpoint_groups']
headers, columns = osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, (utils.get_dict_properties(s, columns) for s in obj)) return (headers, (utils.get_dict_properties(s, columns) for s in obj))
@@ -211,6 +212,6 @@ class ShowEndpointGroup(command.ShowOne):
'endpoint_group', parsed_args.endpoint_group, 'endpoint_group', parsed_args.endpoint_group,
cmd_resource='endpoint_group')['id'] cmd_resource='endpoint_group')['id']
obj = client.show_endpoint_group(endpoint_id)['endpoint_group'] obj = client.show_endpoint_group(endpoint_id)['endpoint_group']
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return (display_columns, data) return (display_columns, data)

View File

@@ -17,6 +17,7 @@
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from oslo_log import log as logging from oslo_log import log as logging
from neutronclient._i18n import _ from neutronclient._i18n import _
@@ -28,17 +29,17 @@ from neutronclient.osc.v2.vpnaas import utils as vpn_utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
_attr_map = ( _attr_map = (
('id', 'ID', osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('auth_algorithm', 'Authentication Algorithm', osc_utils.LIST_BOTH), ('auth_algorithm', 'Authentication Algorithm', column_util.LIST_BOTH),
('encryption_algorithm', 'Encryption Algorithm', osc_utils.LIST_BOTH), ('encryption_algorithm', 'Encryption Algorithm', column_util.LIST_BOTH),
('ike_version', 'IKE Version', osc_utils.LIST_BOTH), ('ike_version', 'IKE Version', column_util.LIST_BOTH),
('pfs', 'Perfect Forward Secrecy (PFS)', osc_utils.LIST_BOTH), ('pfs', 'Perfect Forward Secrecy (PFS)', column_util.LIST_BOTH),
('description', 'Description', osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('phase1_negotiation_mode', 'Phase1 Negotiation Mode', ('phase1_negotiation_mode', 'Phase1 Negotiation Mode',
osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('tenant_id', 'Project', osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
('lifetime', 'Lifetime', osc_utils.LIST_LONG_ONLY), ('lifetime', 'Lifetime', column_util.LIST_LONG_ONLY),
) )
@@ -130,7 +131,7 @@ class CreateIKEPolicy(command.ShowOne):
if parsed_args.name: if parsed_args.name:
attrs['name'] = str(parsed_args.name) attrs['name'] = str(parsed_args.name)
obj = client.create_ikepolicy({'ikepolicy': attrs})['ikepolicy'] obj = client.create_ikepolicy({'ikepolicy': attrs})['ikepolicy']
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data
@@ -183,7 +184,7 @@ class ListIKEPolicy(command.Lister):
def take_action(self, parsed_args): def take_action(self, parsed_args):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
obj = client.list_ikepolicies()['ikepolicies'] obj = client.list_ikepolicies()['ikepolicies']
headers, columns = osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, (utils.get_dict_properties(s, columns) for s in obj)) return (headers, (utils.get_dict_properties(s, columns) for s in obj))
@@ -238,6 +239,6 @@ class ShowIKEPolicy(command.ShowOne):
'ikepolicy', parsed_args.ikepolicy, 'ikepolicy', parsed_args.ikepolicy,
cmd_resource='ikepolicy')['id'] cmd_resource='ikepolicy')['id']
obj = client.show_ikepolicy(ike_id)['ikepolicy'] obj = client.show_ikepolicy(ike_id)['ikepolicy']
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return (display_columns, data) return (display_columns, data)

View File

@@ -18,6 +18,7 @@ from osc_lib.cli import format_columns
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from oslo_log import log as logging from oslo_log import log as logging
from neutronclient._i18n import _ from neutronclient._i18n import _
@@ -35,26 +36,27 @@ _formatters = {
_attr_map = ( _attr_map = (
('id', 'ID', osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('peer_address', 'Peer Address', osc_utils.LIST_BOTH), ('peer_address', 'Peer Address', column_util.LIST_BOTH),
('auth_mode', 'Authentication Algorithm', osc_utils.LIST_BOTH), ('auth_mode', 'Authentication Algorithm', column_util.LIST_BOTH),
('status', 'Status', osc_utils.LIST_BOTH), ('status', 'Status', column_util.LIST_BOTH),
('tenant_id', 'Project', osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
('peer_cidrs', 'Peer CIDRs', osc_utils.LIST_LONG_ONLY), ('peer_cidrs', 'Peer CIDRs', column_util.LIST_LONG_ONLY),
('vpnservice_id', 'VPN Service', osc_utils.LIST_LONG_ONLY), ('vpnservice_id', 'VPN Service', column_util.LIST_LONG_ONLY),
('ipsecpolicy_id', 'IPSec Policy', osc_utils.LIST_LONG_ONLY), ('ipsecpolicy_id', 'IPSec Policy', column_util.LIST_LONG_ONLY),
('ikepolicy_id', 'IKE Policy', osc_utils.LIST_LONG_ONLY), ('ikepolicy_id', 'IKE Policy', column_util.LIST_LONG_ONLY),
('mtu', 'MTU', osc_utils.LIST_LONG_ONLY), ('mtu', 'MTU', column_util.LIST_LONG_ONLY),
('initiator', 'Initiator', osc_utils.LIST_LONG_ONLY), ('initiator', 'Initiator', column_util.LIST_LONG_ONLY),
('admin_state_up', 'State', osc_utils.LIST_LONG_ONLY), ('admin_state_up', 'State', column_util.LIST_LONG_ONLY),
('description', 'Description', osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('psk', 'Pre-shared Key', osc_utils.LIST_LONG_ONLY), ('psk', 'Pre-shared Key', column_util.LIST_LONG_ONLY),
('route_mode', 'Route Mode', osc_utils.LIST_LONG_ONLY), ('route_mode', 'Route Mode', column_util.LIST_LONG_ONLY),
('local_id', 'Local ID', osc_utils.LIST_LONG_ONLY), ('local_id', 'Local ID', column_util.LIST_LONG_ONLY),
('peer_id', 'Peer ID', osc_utils.LIST_LONG_ONLY), ('peer_id', 'Peer ID', column_util.LIST_LONG_ONLY),
('local_ep_group_id', 'Local Endpoint Group ID', osc_utils.LIST_LONG_ONLY), ('local_ep_group_id', 'Local Endpoint Group ID',
('peer_ep_group_id', 'Peer Endpoint Group ID', osc_utils.LIST_LONG_ONLY), column_util.LIST_LONG_ONLY),
('peer_ep_group_id', 'Peer Endpoint Group ID', column_util.LIST_LONG_ONLY),
) )
@@ -239,7 +241,7 @@ class CreateIPsecSiteConnection(command.ShowOne):
raise exceptions.CommandError(message) raise exceptions.CommandError(message)
obj = client.create_ipsec_site_connection( obj = client.create_ipsec_site_connection(
{'ipsec_site_connection': attrs})['ipsec_site_connection'] {'ipsec_site_connection': attrs})['ipsec_site_connection']
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns, formatters=_formatters) data = utils.get_dict_properties(obj, columns, formatters=_formatters)
return display_columns, data return display_columns, data
@@ -296,7 +298,7 @@ class ListIPsecSiteConnection(command.Lister):
def take_action(self, parsed_args): def take_action(self, parsed_args):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
obj = client.list_ipsec_site_connections()['ipsec_site_connections'] obj = client.list_ipsec_site_connections()['ipsec_site_connections']
headers, columns = osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, (utils.get_dict_properties( return (headers, (utils.get_dict_properties(
s, columns, formatters=_formatters) for s in obj)) s, columns, formatters=_formatters) for s in obj))
@@ -367,6 +369,6 @@ class ShowIPsecSiteConnection(command.ShowOne):
cmd_resource='ipsec_site_connection')['id'] cmd_resource='ipsec_site_connection')['id']
obj = client.show_ipsec_site_connection( obj = client.show_ipsec_site_connection(
ipsec_site_id)['ipsec_site_connection'] ipsec_site_id)['ipsec_site_connection']
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns, formatters=_formatters) data = utils.get_dict_properties(obj, columns, formatters=_formatters)
return (display_columns, data) return (display_columns, data)

View File

@@ -17,6 +17,7 @@
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from oslo_log import log as logging from oslo_log import log as logging
from neutronclient._i18n import _ from neutronclient._i18n import _
@@ -28,16 +29,16 @@ from neutronclient.osc.v2.vpnaas import utils as vpn_utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
_attr_map = ( _attr_map = (
('id', 'ID', osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('auth_algorithm', 'Authentication Algorithm', osc_utils.LIST_BOTH), ('auth_algorithm', 'Authentication Algorithm', column_util.LIST_BOTH),
('encapsulation_mode', 'Encapsulation Mode', osc_utils.LIST_BOTH), ('encapsulation_mode', 'Encapsulation Mode', column_util.LIST_BOTH),
('transform_protocol', 'Transform Protocol', osc_utils.LIST_BOTH), ('transform_protocol', 'Transform Protocol', column_util.LIST_BOTH),
('encryption_algorithm', 'Encryption Algorithm', osc_utils.LIST_BOTH), ('encryption_algorithm', 'Encryption Algorithm', column_util.LIST_BOTH),
('pfs', 'Perfect Forward Secrecy (PFS)', osc_utils.LIST_LONG_ONLY), ('pfs', 'Perfect Forward Secrecy (PFS)', column_util.LIST_LONG_ONLY),
('description', 'Description', osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('tenant_id', 'Project', osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
('lifetime', 'Lifetime', osc_utils.LIST_LONG_ONLY), ('lifetime', 'Lifetime', column_util.LIST_LONG_ONLY),
) )
@@ -128,7 +129,7 @@ class CreateIPsecPolicy(command.ShowOne):
if parsed_args.name: if parsed_args.name:
attrs['name'] = str(parsed_args.name) attrs['name'] = str(parsed_args.name)
obj = client.create_ipsecpolicy({'ipsecpolicy': attrs})['ipsecpolicy'] obj = client.create_ipsecpolicy({'ipsecpolicy': attrs})['ipsecpolicy']
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data
@@ -182,7 +183,7 @@ class ListIPsecPolicy(command.Lister):
def take_action(self, parsed_args): def take_action(self, parsed_args):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
obj = client.list_ipsecpolicies()['ipsecpolicies'] obj = client.list_ipsecpolicies()['ipsecpolicies']
headers, columns = osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, (utils.get_dict_properties(s, columns) for s in obj)) return (headers, (utils.get_dict_properties(s, columns) for s in obj))
@@ -237,6 +238,6 @@ class ShowIPsecPolicy(command.ShowOne):
'ipsecpolicy', parsed_args.ipsecpolicy, 'ipsecpolicy', parsed_args.ipsecpolicy,
cmd_resource='ipsecpolicy')['id'] cmd_resource='ipsecpolicy')['id']
obj = client.show_ipsecpolicy(ipsec_id)['ipsecpolicy'] obj = client.show_ipsecpolicy(ipsec_id)['ipsecpolicy']
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return (display_columns, data) return (display_columns, data)

View File

@@ -17,6 +17,7 @@
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
from osc_lib.utils import columns as column_util
from oslo_log import log as logging from oslo_log import log as logging
from neutronclient._i18n import _ from neutronclient._i18n import _
@@ -26,15 +27,15 @@ from neutronclient.osc import utils as osc_utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
_attr_map = ( _attr_map = (
('id', 'ID', osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('name', 'Name', osc_utils.LIST_BOTH), ('name', 'Name', column_util.LIST_BOTH),
('router_id', 'Router', osc_utils.LIST_BOTH), ('router_id', 'Router', column_util.LIST_BOTH),
('subnet_id', 'Subnet', osc_utils.LIST_BOTH), ('subnet_id', 'Subnet', column_util.LIST_BOTH),
('flavor_id', 'Flavor', osc_utils.LIST_BOTH), ('flavor_id', 'Flavor', column_util.LIST_BOTH),
('admin_state_up', 'State', osc_utils.LIST_BOTH), ('admin_state_up', 'State', column_util.LIST_BOTH),
('status', 'Status', osc_utils.LIST_BOTH), ('status', 'Status', column_util.LIST_BOTH),
('description', 'Description', osc_utils.LIST_LONG_ONLY), ('description', 'Description', column_util.LIST_LONG_ONLY),
('tenant_id', 'Project', osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
) )
@@ -121,7 +122,7 @@ class CreateVPNService(command.ShowOne):
parsed_args.router).id parsed_args.router).id
attrs['router_id'] = _router_id attrs['router_id'] = _router_id
obj = client.create_vpnservice({'vpnservice': attrs})['vpnservice'] obj = client.create_vpnservice({'vpnservice': attrs})['vpnservice']
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return display_columns, data return display_columns, data
@@ -175,7 +176,7 @@ class ListVPNService(command.Lister):
def take_action(self, parsed_args): def take_action(self, parsed_args):
client = self.app.client_manager.neutronclient client = self.app.client_manager.neutronclient
obj = client.list_vpnservices()['vpnservices'] obj = client.list_vpnservices()['vpnservices']
headers, columns = osc_utils.get_column_definitions( headers, columns = column_util.get_column_definitions(
_attr_map, long_listing=parsed_args.long) _attr_map, long_listing=parsed_args.long)
return (headers, (utils.get_dict_properties(s, columns) for s in obj)) return (headers, (utils.get_dict_properties(s, columns) for s in obj))
@@ -230,6 +231,6 @@ class ShowVPNService(command.ShowOne):
'vpnservice', parsed_args.vpnservice, 'vpnservice', parsed_args.vpnservice,
cmd_resource='vpnservice')['id'] cmd_resource='vpnservice')['id']
obj = client.show_vpnservice(vpn_id)['vpnservice'] obj = client.show_vpnservice(vpn_id)['vpnservice']
columns, display_columns = osc_utils.get_columns(obj, _attr_map) columns, display_columns = column_util.get_columns(obj, _attr_map)
data = utils.get_dict_properties(obj, columns) data = utils.get_dict_properties(obj, columns)
return (display_columns, data) return (display_columns, data)

View File

@@ -1,60 +0,0 @@
# Copyright 2016 NEC Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import testtools
from neutronclient.osc import utils
class TestUtils(testtools.TestCase):
def test_get_column_definitions(self):
attr_map = (
('id', 'ID', utils.LIST_BOTH),
('tenant_id', 'Project', utils.LIST_LONG_ONLY),
('name', 'Name', utils.LIST_BOTH),
('summary', 'Summary', utils.LIST_SHORT_ONLY),
)
headers, columns = utils.get_column_definitions(attr_map,
long_listing=False)
self.assertEqual(['id', 'name', 'summary'], columns)
self.assertEqual(['ID', 'Name', 'Summary'], headers)
def test_get_column_definitions_long(self):
attr_map = (
('id', 'ID', utils.LIST_BOTH),
('tenant_id', 'Project', utils.LIST_LONG_ONLY),
('name', 'Name', utils.LIST_BOTH),
('summary', 'Summary', utils.LIST_SHORT_ONLY),
)
headers, columns = utils.get_column_definitions(attr_map,
long_listing=True)
self.assertEqual(['id', 'tenant_id', 'name'], columns)
self.assertEqual(['ID', 'Project', 'Name'], headers)
def test_get_columns(self):
item = {
'id': 'test-id',
'tenant_id': 'test-tenant_id',
# 'name' is not included
'foo': 'bar', # unknown attribute
}
attr_map = (
('id', 'ID', utils.LIST_BOTH),
('tenant_id', 'Project', utils.LIST_LONG_ONLY),
('name', 'Name', utils.LIST_BOTH),
)
columns, display_names = utils.get_columns(item, attr_map)
self.assertEqual(tuple(['id', 'tenant_id', 'foo']), columns)
self.assertEqual(tuple(['ID', 'Project', 'foo']), display_names)

View File

@@ -17,6 +17,7 @@
import copy import copy
import mock import mock
from osc_lib.utils import columns as column_util
from neutronclient.osc import utils as nc_osc_utils from neutronclient.osc import utils as nc_osc_utils
from neutronclient.osc.v2.networking_bgpvpn import constants from neutronclient.osc.v2.networking_bgpvpn import constants
@@ -106,10 +107,10 @@ class BgpvpnFakeAssoc(object):
_resource_plural = '%ss' % _resource _resource_plural = '%ss' % _resource
_attr_map = ( _attr_map = (
('id', 'ID', nc_osc_utils.LIST_BOTH), ('id', 'ID', column_util.LIST_BOTH),
('tenant_id', 'Project', nc_osc_utils.LIST_LONG_ONLY), ('tenant_id', 'Project', column_util.LIST_LONG_ONLY),
('%s_id' % _assoc_res_name, '%s ID' % _assoc_res_name.capitalize(), ('%s_id' % _assoc_res_name, '%s ID' % _assoc_res_name.capitalize(),
nc_osc_utils.LIST_BOTH), column_util.LIST_BOTH),
) )
_formatters = {} _formatters = {}

View File

@@ -20,25 +20,25 @@ import operator
import mock import mock
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils as osc_utils from osc_lib import utils as osc_utils
from osc_lib.utils import columns as column_util
from neutronclient.osc import utils as nc_osc_utils
from neutronclient.osc.v2.networking_bgpvpn import bgpvpn from neutronclient.osc.v2.networking_bgpvpn import bgpvpn
from neutronclient.osc.v2.networking_bgpvpn import constants from neutronclient.osc.v2.networking_bgpvpn import constants
from neutronclient.tests.unit.osc.v2.networking_bgpvpn import fakes from neutronclient.tests.unit.osc.v2.networking_bgpvpn import fakes
columns_short = tuple(col for col, _, listing_mode in bgpvpn._attr_map columns_short = tuple(col for col, _, listing_mode in bgpvpn._attr_map
if listing_mode in (nc_osc_utils.LIST_BOTH, if listing_mode in (column_util.LIST_BOTH,
nc_osc_utils.LIST_SHORT_ONLY)) column_util.LIST_SHORT_ONLY))
columns_long = tuple(col for col, _, listing_mode in bgpvpn._attr_map columns_long = tuple(col for col, _, listing_mode in bgpvpn._attr_map
if listing_mode in (nc_osc_utils.LIST_BOTH, if listing_mode in (column_util.LIST_BOTH,
nc_osc_utils.LIST_LONG_ONLY)) column_util.LIST_LONG_ONLY))
headers_short = tuple(head for _, head, listing_mode in bgpvpn._attr_map headers_short = tuple(head for _, head, listing_mode in bgpvpn._attr_map
if listing_mode in (nc_osc_utils.LIST_BOTH, if listing_mode in (column_util.LIST_BOTH,
nc_osc_utils.LIST_SHORT_ONLY)) column_util.LIST_SHORT_ONLY))
headers_long = tuple(head for _, head, listing_mode in bgpvpn._attr_map headers_long = tuple(head for _, head, listing_mode in bgpvpn._attr_map
if listing_mode in (nc_osc_utils.LIST_BOTH, if listing_mode in (column_util.LIST_BOTH,
nc_osc_utils.LIST_LONG_ONLY)) column_util.LIST_LONG_ONLY))
sorted_attr_map = sorted(bgpvpn._attr_map, key=operator.itemgetter(1)) sorted_attr_map = sorted(bgpvpn._attr_map, key=operator.itemgetter(1))
sorted_columns = tuple(col for col, _, _ in sorted_attr_map) sorted_columns = tuple(col for col, _, _ in sorted_attr_map)
sorted_headers = tuple(head for _, head, _ in sorted_attr_map) sorted_headers = tuple(head for _, head, _ in sorted_attr_map)

View File

@@ -20,27 +20,27 @@ import operator
import mock import mock
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils as osc_utils from osc_lib import utils as osc_utils
from osc_lib.utils import columns as column_util
from neutronclient.osc import utils as nc_osc_utils
from neutronclient.tests.unit.osc.v2.networking_bgpvpn import fakes from neutronclient.tests.unit.osc.v2.networking_bgpvpn import fakes
columns_short = tuple(col for col, _, listing_mode columns_short = tuple(col for col, _, listing_mode
in fakes.BgpvpnFakeAssoc._attr_map in fakes.BgpvpnFakeAssoc._attr_map
if listing_mode in (nc_osc_utils.LIST_BOTH, if listing_mode in (column_util.LIST_BOTH,
nc_osc_utils.LIST_SHORT_ONLY)) column_util.LIST_SHORT_ONLY))
columns_long = tuple(col for col, _, listing_mode columns_long = tuple(col for col, _, listing_mode
in fakes.BgpvpnFakeAssoc._attr_map in fakes.BgpvpnFakeAssoc._attr_map
if listing_mode in (nc_osc_utils.LIST_BOTH, if listing_mode in (column_util.LIST_BOTH,
nc_osc_utils.LIST_LONG_ONLY)) column_util.LIST_LONG_ONLY))
headers_short = tuple(head for _, head, listing_mode headers_short = tuple(head for _, head, listing_mode
in fakes.BgpvpnFakeAssoc._attr_map in fakes.BgpvpnFakeAssoc._attr_map
if listing_mode in (nc_osc_utils.LIST_BOTH, if listing_mode in (column_util.LIST_BOTH,
nc_osc_utils.LIST_SHORT_ONLY)) column_util.LIST_SHORT_ONLY))
headers_long = tuple(head for _, head, listing_mode headers_long = tuple(head for _, head, listing_mode
in fakes.BgpvpnFakeAssoc._attr_map in fakes.BgpvpnFakeAssoc._attr_map
if listing_mode in (nc_osc_utils.LIST_BOTH, if listing_mode in (column_util.LIST_BOTH,
nc_osc_utils.LIST_LONG_ONLY)) column_util.LIST_LONG_ONLY))
sorted_attr_map = sorted(fakes.BgpvpnFakeAssoc._attr_map, sorted_attr_map = sorted(fakes.BgpvpnFakeAssoc._attr_map,
key=operator.itemgetter(1)) key=operator.itemgetter(1))
sorted_columns = tuple(col for col, _, _ in sorted_attr_map) sorted_columns = tuple(col for col, _, _ in sorted_attr_map)