diff options
| author | Akihiro Motoki <amotoki@gmail.com> | 2017-05-15 04:00:53 +0000 |
|---|---|---|
| committer | Akihiro Motoki <amotoki@gmail.com> | 2017-08-16 15:41:45 +0000 |
| commit | 8e6772c36fdb99ca763d08eb2d91699376b4807f (patch) | |
| tree | 99a2960adb62b2e6e0d64ccb727df74726474d20 /openstackclient/image | |
| parent | 07f5498842834823ec911811e6e9c8ba9ff4ac9b (diff) | |
| download | python-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.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 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) ) |
