summaryrefslogtreecommitdiff
path: root/openstackclient/image
diff options
context:
space:
mode:
authorAkihiro Motoki <amotoki@gmail.com>2017-05-15 04:00:53 +0000
committerAkihiro Motoki <amotoki@gmail.com>2017-08-16 15:41:45 +0000
commit8e6772c36fdb99ca763d08eb2d91699376b4807f (patch)
tree99a2960adb62b2e6e0d64ccb727df74726474d20 /openstackclient/image
parent07f5498842834823ec911811e6e9c8ba9ff4ac9b (diff)
downloadpython-openstackclient-8e6772c36fdb99ca763d08eb2d91699376b4807f.tar.gz
Use cliff formattable columns in image commands
Related functional tests are converted into JSON format. Otherwise, it is not easy to check results. Partial-Bug: #1687955 Partially implement blueprint osc-formattable-columns Change-Id: I682e67be24372c0de145f8db20911b13530ae6c6
Diffstat (limited to 'openstackclient/image')
-rw-r--r--openstackclient/image/v1/image.py33
-rw-r--r--openstackclient/image/v2/image.py7
2 files changed, 22 insertions, 18 deletions
diff --git a/openstackclient/image/v1/image.py b/openstackclient/image/v1/image.py
index b92da8ce..09f5c510 100644
--- a/openstackclient/image/v1/image.py
+++ b/openstackclient/image/v1/image.py
@@ -26,7 +26,9 @@ if os.name == "nt":
else:
msvcrt = None
+from cliff import columns as cliff_columns
from glanceclient.common import utils as gc_utils
+from osc_lib.cli import format_columns
from osc_lib.cli import parseractions
from osc_lib.command import command
from osc_lib import utils
@@ -46,19 +48,18 @@ DISK_CHOICES = ["ami", "ari", "aki", "vhd", "vmdk", "raw", "qcow2", "vhdx",
LOG = logging.getLogger(__name__)
-def _format_visibility(data):
- """Return a formatted visibility string
+class VisibilityColumn(cliff_columns.FormattableColumn):
+ def human_readable(self):
+ """Return a formatted visibility string
- :param data:
- The server's visibility (is_public) status value: True, False
- :rtype:
- A string formatted to public/private
- """
+ :rtype:
+ A string formatted to public/private
+ """
- if data:
- return 'public'
- else:
- return 'private'
+ if self._value:
+ return 'public'
+ else:
+ return 'private'
class CreateImage(command.ShowOne):
@@ -281,7 +282,8 @@ class CreateImage(command.ShowOne):
kwargs['data'].close()
info.update(image._info)
- info['properties'] = utils.format_dict(info.get('properties', {}))
+ info['properties'] = format_columns.DictColumn(
+ info.get('properties', {}))
return zip(*sorted(six.iteritems(info)))
@@ -442,8 +444,8 @@ class ListImage(command.Lister):
s,
columns,
formatters={
- 'is_public': _format_visibility,
- 'properties': utils.format_dict,
+ 'is_public': VisibilityColumn,
+ 'properties': format_columns.DictColumn,
},
) for s in data)
)
@@ -738,5 +740,6 @@ class ShowImage(command.ShowOne):
if parsed_args.human_readable:
if 'size' in info:
info['size'] = utils.format_size(info['size'])
- info['properties'] = utils.format_dict(info.get('properties', {}))
+ info['properties'] = format_columns.DictColumn(
+ info.get('properties', {}))
return zip(*sorted(six.iteritems(info)))
diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py
index c2c5c594..1b4c8b66 100644
--- a/openstackclient/image/v2/image.py
+++ b/openstackclient/image/v2/image.py
@@ -19,6 +19,7 @@ import argparse
import logging
from glanceclient.common import utils as gc_utils
+from osc_lib.cli import format_columns
from osc_lib.cli import parseractions
from osc_lib.command import command
from osc_lib import exceptions
@@ -62,11 +63,11 @@ def _format_image(image):
properties[key] = image.get(key)
# format the tags if they are there
- info['tags'] = utils.format_list(image.get('tags'))
+ info['tags'] = format_columns.ListColumn(image.get('tags'))
# add properties back into the dictionary as a top-level key
if properties:
- info['properties'] = utils.format_dict(properties)
+ info['properties'] = format_columns.DictColumn(properties)
return info
@@ -585,7 +586,7 @@ class ListImage(command.Lister):
s,
columns,
formatters={
- 'tags': utils.format_list,
+ 'tags': format_columns.ListColumn,
},
) for s in data)
)