summaryrefslogtreecommitdiff
path: root/openstackclient/image
diff options
context:
space:
mode:
authorAkihiro Motoki <amotoki@gmail.com>2017-05-15 04:00:53 +0000
committerDean Troyer <dtroyer@gmail.com>2019-06-22 13:36:46 -0500
commit8d63e3f0c38bbcc44db2e82a7e3d0ff5488d45af (patch)
tree3b5e5f081097d6d96ca2701716c421bb70112b8f /openstackclient/image
parent1a21f02bc7507120f3a4fe2af12ba7a27b002b44 (diff)
downloadpython-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.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 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)
)