diff options
| author | Akihiro Motoki <amotoki@gmail.com> | 2017-05-03 14:19:27 +0000 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2019-05-09 21:51:57 -0500 |
| commit | c44f26eb7e41c28bb13ef9bd31c8ddda9e638862 (patch) | |
| tree | 062fc4fea3e465ac7da63516ee77489e1acbc45a /openstackclient/network/v2/network.py | |
| parent | 6385d64237c9973dd4c7dd53efb6664ea2c719da (diff) | |
| download | python-openstackclient-c44f26eb7e41c28bb13ef9bd31c8ddda9e638862.tar.gz | |
Use cliff formattable columns in network commands
Use cliff formattable columns not to convert complex fields
into a string when a machine readable format like JSON or YAML
is requested.
Partial-Bug: #1687955
Partially implement blueprint osc-formattable-columns
Change-Id: I9878f327e39f56852cc0fb6e4eee9105b7141da9
Diffstat (limited to 'openstackclient/network/v2/network.py')
| -rw-r--r-- | openstackclient/network/v2/network.py | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py index f5123932..63aec714 100644 --- a/openstackclient/network/v2/network.py +++ b/openstackclient/network/v2/network.py @@ -13,6 +13,8 @@ """Network action implementations""" +from cliff import columns as cliff_columns +from osc_lib.cli import format_columns from osc_lib.command import command from osc_lib import utils @@ -23,24 +25,26 @@ from openstackclient.network import sdk_utils from openstackclient.network.v2 import _tag -def _format_admin_state(item): - return 'UP' if item else 'DOWN' +class AdminStateColumn(cliff_columns.FormattableColumn): + def human_readable(self): + return 'UP' if self._value else 'DOWN' -def _format_router_external(item): - return 'External' if item else 'Internal' +class RouterExternalColumn(cliff_columns.FormattableColumn): + def human_readable(self): + return 'External' if self._value else 'Internal' _formatters = { - 'subnets': utils.format_list, - 'subnet_ids': utils.format_list, - 'admin_state_up': _format_admin_state, - 'is_admin_state_up': _format_admin_state, - 'router:external': _format_router_external, - 'is_router_external': _format_router_external, - 'availability_zones': utils.format_list, - 'availability_zone_hints': utils.format_list, - 'tags': utils.format_list, + 'subnets': format_columns.ListColumn, + 'subnet_ids': format_columns.ListColumn, + 'admin_state_up': AdminStateColumn, + 'is_admin_state_up': AdminStateColumn, + 'router:external': RouterExternalColumn, + 'is_router_external': RouterExternalColumn, + 'availability_zones': format_columns.ListColumn, + 'availability_zone_hints': format_columns.ListColumn, + 'tags': format_columns.ListColumn, } |
