diff options
| author | Akihiro Motoki <amotoki@gmail.com> | 2017-05-15 04:00:53 +0000 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2019-06-22 13:36:46 -0500 |
| commit | 8d63e3f0c38bbcc44db2e82a7e3d0ff5488d45af (patch) | |
| tree | 3b5e5f081097d6d96ca2701716c421bb70112b8f /openstackclient/image | |
| parent | 1a21f02bc7507120f3a4fe2af12ba7a27b002b44 (diff) | |
| download | python-openstackclient-8d63e3f0c38bbcc44db2e82a7e3d0ff5488d45af.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: Ib82e15738544975fede0c54cc5eaf239f4c67277
Diffstat (limited to 'openstackclient/image')
| -rw-r--r-- | openstackclient/image/v1/image.py | 33 | ||||
| -rw-r--r-- | openstackclient/image/v2/image.py | 7 |
2 files changed, 22 insertions, 18 deletions
diff --git a/openstackclient/image/v1/image.py b/openstackclient/image/v1/image.py index caf3d54f..c2dab3ee 100644 --- a/openstackclient/image/v1/image.py +++ b/openstackclient/image/v1/image.py @@ -21,8 +21,10 @@ import logging import os import sys +from cliff import columns as cliff_columns from glanceclient.common import utils as gc_utils from osc_lib.api import utils as api_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): @@ -268,7 +269,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))) @@ -429,8 +431,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) ) @@ -714,5 +716,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 97169a92..2b10c3ad 100644 --- a/openstackclient/image/v2/image.py +++ b/openstackclient/image/v2/image.py @@ -22,6 +22,7 @@ import logging from glanceclient.common import utils as gc_utils from openstack.image import image_signer from osc_lib.api import utils as api_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 @@ -65,11 +66,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 @@ -656,7 +657,7 @@ class ListImage(command.Lister): s, columns, formatters={ - 'tags': utils.format_list, + 'tags': format_columns.ListColumn, }, ) for s in data) ) |
