summaryrefslogtreecommitdiff
path: root/openstackclient/network/v2/network.py
diff options
context:
space:
mode:
authorAkihiro Motoki <amotoki@gmail.com>2017-05-03 14:19:27 +0000
committerDean Troyer <dtroyer@gmail.com>2019-05-09 21:51:57 -0500
commitc44f26eb7e41c28bb13ef9bd31c8ddda9e638862 (patch)
tree062fc4fea3e465ac7da63516ee77489e1acbc45a /openstackclient/network/v2/network.py
parent6385d64237c9973dd4c7dd53efb6664ea2c719da (diff)
downloadpython-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.py30
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,
}