diff options
| author | Akihiro MOTOKI <motoki@da.jp.nec.com> | 2013-02-27 19:13:54 +0900 |
|---|---|---|
| committer | Akihiro MOTOKI <motoki@da.jp.nec.com> | 2013-05-27 18:15:36 +0900 |
| commit | b95000665d8f7a56c7b522f5b07000ebb1052e39 (patch) | |
| tree | 1ad5ac37ae7b92b75b175ff4360c4dc5a802407e /quantumclient | |
| parent | de7fd2b2c032a706aff0d4722fbf4f7071c5302d (diff) | |
| download | python-neutronclient-b95000665d8f7a56c7b522f5b07000ebb1052e39.tar.gz | |
Set default columns in ext-list
Previously ext-list does not inherits ListCommand base class for listing
and cannot specify columns to display. This commit changes ext-list to
use ListCommand and adds a unit test for extensions.
This also changes the default value of _formatters in ListCommand to {}.
By this subclasses no longer override _formatters unless required.
Fixes bug 1161866
Change-Id: Ifd9ab54d4e84a2b7a1d7eecd67f6270ec643db1d
Diffstat (limited to 'quantumclient')
| -rw-r--r-- | quantumclient/quantum/v2_0/extension.py | 71 | ||||
| -rw-r--r-- | quantumclient/quantum/v2_0/floatingip.py | 1 | ||||
| -rw-r--r-- | quantumclient/quantum/v2_0/lb/healthmonitor.py | 1 | ||||
| -rw-r--r-- | quantumclient/quantum/v2_0/lb/member.py | 1 | ||||
| -rw-r--r-- | quantumclient/quantum/v2_0/lb/pool.py | 1 | ||||
| -rw-r--r-- | quantumclient/quantum/v2_0/lb/vip.py | 1 | ||||
| -rw-r--r-- | quantumclient/quantum/v2_0/nvp_qos_queue.py | 1 | ||||
| -rw-r--r-- | quantumclient/quantum/v2_0/nvpnetworkgateway.py | 1 | ||||
| -rw-r--r-- | quantumclient/quantum/v2_0/quota.py | 1 | ||||
| -rw-r--r-- | quantumclient/quantum/v2_0/securitygroup.py | 2 | ||||
| -rw-r--r-- | quantumclient/v2_0/client.py | 8 |
11 files changed, 14 insertions, 75 deletions
diff --git a/quantumclient/quantum/v2_0/extension.py b/quantumclient/quantum/v2_0/extension.py index df4a88b..1ebea6f 100644 --- a/quantumclient/quantum/v2_0/extension.py +++ b/quantumclient/quantum/v2_0/extension.py @@ -17,79 +17,28 @@ import logging -from cliff import lister -from cliff import show +from quantumclient.quantum import v2_0 as cmd_base -from quantumclient.common import utils -from quantumclient.quantum.v2_0 import QuantumCommand +class ListExt(cmd_base.ListCommand): + """List all extensions.""" -class ListExt(QuantumCommand, lister.Lister): - """List all exts.""" - - api = 'network' resource = 'extension' log = logging.getLogger(__name__ + '.ListExt') - _formatters = None - - def get_parser(self, prog_name): - parser = super(ListExt, self).get_parser(prog_name) - return parser - - def get_data(self, parsed_args): - self.log.debug('get_data(%s)' % parsed_args) - quantum_client = self.get_client() - search_opts = {} - quantum_client.format = parsed_args.request_format - obj_lister = getattr(quantum_client, - "list_%ss" % self.resource) - data = obj_lister(**search_opts) - info = [] - collection = self.resource + "s" - if collection in data: - info = data[collection] - _columns = len(info) > 0 and sorted(info[0].keys()) or [] - return (_columns, (utils.get_item_properties(s, _columns) - for s in info)) + list_columns = ['alias', 'name'] -class ShowExt(QuantumCommand, show.ShowOne): - """Show information of a given resource +class ShowExt(cmd_base.ShowCommand): + """Show information of a given resource.""" - """ - api = 'network' resource = "extension" log = logging.getLogger(__name__ + '.ShowExt') + allow_names = False def get_parser(self, prog_name): - parser = super(ShowExt, self).get_parser(prog_name) + parser = super(cmd_base.ShowCommand, self).get_parser(prog_name) + cmd_base.add_show_list_common_argument(parser) parser.add_argument( - 'ext_alias', metavar='ext-alias', + 'id', metavar='EXT-ALIAS', help='the extension alias') return parser - - def get_data(self, parsed_args): - self.log.debug('get_data(%s)' % parsed_args) - quantum_client = self.get_client() - quantum_client.format = parsed_args.request_format - params = {} - obj_shower = getattr(quantum_client, - "show_%s" % self.resource) - data = obj_shower(parsed_args.ext_alias, **params) - if self.resource in data: - for k, v in data[self.resource].iteritems(): - if isinstance(v, list): - value = "" - for _item in v: - if value: - value += "\n" - if isinstance(_item, dict): - value += utils.dumps(_item) - else: - value += str(_item) - data[self.resource][k] = value - elif v is None: - data[self.resource][k] = '' - return zip(*sorted(data[self.resource].iteritems())) - else: - return None diff --git a/quantumclient/quantum/v2_0/floatingip.py b/quantumclient/quantum/v2_0/floatingip.py index 3916527..3a4982a 100644 --- a/quantumclient/quantum/v2_0/floatingip.py +++ b/quantumclient/quantum/v2_0/floatingip.py @@ -31,7 +31,6 @@ class ListFloatingIP(ListCommand): resource = 'floatingip' log = logging.getLogger(__name__ + '.ListFloatingIP') - _formatters = {} list_columns = ['id', 'fixed_ip_address', 'floating_ip_address', 'port_id'] pagination_support = True diff --git a/quantumclient/quantum/v2_0/lb/healthmonitor.py b/quantumclient/quantum/v2_0/lb/healthmonitor.py index a4e7ee6..3ecdd56 100644 --- a/quantumclient/quantum/v2_0/lb/healthmonitor.py +++ b/quantumclient/quantum/v2_0/lb/healthmonitor.py @@ -28,7 +28,6 @@ class ListHealthMonitor(quantumv20.ListCommand): resource = 'health_monitor' log = logging.getLogger(__name__ + '.ListHealthMonitor') list_columns = ['id', 'type', 'admin_state_up', 'status'] - _formatters = {} pagination_support = True sorting_support = True diff --git a/quantumclient/quantum/v2_0/lb/member.py b/quantumclient/quantum/v2_0/lb/member.py index 18e479a..05fb430 100644 --- a/quantumclient/quantum/v2_0/lb/member.py +++ b/quantumclient/quantum/v2_0/lb/member.py @@ -30,7 +30,6 @@ class ListMember(quantumv20.ListCommand): list_columns = [ 'id', 'address', 'protocol_port', 'admin_state_up', 'status' ] - _formatters = {} pagination_support = True sorting_support = True diff --git a/quantumclient/quantum/v2_0/lb/pool.py b/quantumclient/quantum/v2_0/lb/pool.py index 26bf0c9..3d1d580 100644 --- a/quantumclient/quantum/v2_0/lb/pool.py +++ b/quantumclient/quantum/v2_0/lb/pool.py @@ -29,7 +29,6 @@ class ListPool(quantumv20.ListCommand): log = logging.getLogger(__name__ + '.ListPool') list_columns = ['id', 'name', 'lb_method', 'protocol', 'admin_state_up', 'status'] - _formatters = {} pagination_support = True sorting_support = True diff --git a/quantumclient/quantum/v2_0/lb/vip.py b/quantumclient/quantum/v2_0/lb/vip.py index 4ee03a1..c3795c3 100644 --- a/quantumclient/quantum/v2_0/lb/vip.py +++ b/quantumclient/quantum/v2_0/lb/vip.py @@ -29,7 +29,6 @@ class ListVip(quantumv20.ListCommand): log = logging.getLogger(__name__ + '.ListVip') list_columns = ['id', 'name', 'algorithm', 'address', 'protocol', 'admin_state_up', 'status'] - _formatters = {} pagination_support = True sorting_support = True diff --git a/quantumclient/quantum/v2_0/nvp_qos_queue.py b/quantumclient/quantum/v2_0/nvp_qos_queue.py index 040ce16..386b887 100644 --- a/quantumclient/quantum/v2_0/nvp_qos_queue.py +++ b/quantumclient/quantum/v2_0/nvp_qos_queue.py @@ -25,7 +25,6 @@ class ListQoSQueue(quantumv20.ListCommand): resource = 'qos_queue' log = logging.getLogger(__name__ + '.ListQoSQueue') - _formatters = {} list_columns = ['id', 'name', 'min', 'max', 'qos_marking', 'dscp', 'default'] diff --git a/quantumclient/quantum/v2_0/nvpnetworkgateway.py b/quantumclient/quantum/v2_0/nvpnetworkgateway.py index 2c668ac..72a83b3 100644 --- a/quantumclient/quantum/v2_0/nvpnetworkgateway.py +++ b/quantumclient/quantum/v2_0/nvpnetworkgateway.py @@ -27,7 +27,6 @@ class ListNetworkGateway(quantumv20.ListCommand): """List network gateways for a given tenant.""" resource = RESOURCE - _formatters = {} log = logging.getLogger(__name__ + '.ListNetworkGateway') list_columns = ['id', 'name'] diff --git a/quantumclient/quantum/v2_0/quota.py b/quantumclient/quantum/v2_0/quota.py index bdff0bd..2b1752f 100644 --- a/quantumclient/quantum/v2_0/quota.py +++ b/quantumclient/quantum/v2_0/quota.py @@ -70,7 +70,6 @@ class ListQuota(QuantumCommand, lister.Lister): api = 'network' resource = 'quota' log = logging.getLogger(__name__ + '.ListQuota') - _formatters = None def get_parser(self, prog_name): parser = super(ListQuota, self).get_parser(prog_name) diff --git a/quantumclient/quantum/v2_0/securitygroup.py b/quantumclient/quantum/v2_0/securitygroup.py index c66d012..5fa899c 100644 --- a/quantumclient/quantum/v2_0/securitygroup.py +++ b/quantumclient/quantum/v2_0/securitygroup.py @@ -26,7 +26,6 @@ class ListSecurityGroup(quantumv20.ListCommand): resource = 'security_group' log = logging.getLogger(__name__ + '.ListSecurityGroup') - _formatters = {} list_columns = ['id', 'name', 'description'] pagination_support = True sorting_support = True @@ -103,7 +102,6 @@ class ListSecurityGroupRule(quantumv20.ListCommand): resource = 'security_group_rule' log = logging.getLogger(__name__ + '.ListSecurityGroupRule') - _formatters = {} list_columns = ['id', 'security_group_id', 'direction', 'protocol', 'remote_ip_prefix', 'remote_group_id'] replace_rules = {'security_group_id': 'security_group', diff --git a/quantumclient/v2_0/client.py b/quantumclient/v2_0/client.py index fb55b1e..e4982b4 100644 --- a/quantumclient/v2_0/client.py +++ b/quantumclient/v2_0/client.py @@ -153,8 +153,8 @@ class Client(object): subnet_path = "/subnets/%s" quotas_path = "/quotas" quota_path = "/quotas/%s" - exts_path = "/extensions" - ext_path = "/extensions/%s" + extensions_path = "/extensions" + extension_path = "/extensions/%s" routers_path = "/routers" router_path = "/routers/%s" floatingips_path = "/floatingips" @@ -245,12 +245,12 @@ class Client(object): @APIParamsCall def list_extensions(self, **_params): """Fetch a list of all exts on server side.""" - return self.get(self.exts_path, params=_params) + return self.get(self.extensions_path, params=_params) @APIParamsCall def show_extension(self, ext_alias, **_params): """Fetch a list of all exts on server side.""" - return self.get(self.ext_path % ext_alias, params=_params) + return self.get(self.extension_path % ext_alias, params=_params) @APIParamsCall def list_ports(self, retrieve_all=True, **_params): |
