Fix OSC restore commands formatting

Change-Id: Ia85065631eef1f3d96df007e240df04362f18754
This commit is contained in:
chenying
2017-08-16 21:10:35 +08:00
parent 855cbe5cbb
commit 982a8c361d
2 changed files with 22 additions and 4 deletions

View File

@@ -12,6 +12,9 @@
"""Data protection V1 restore action implementations"""
import functools
import json
from oslo_utils import uuidutils
from osc_lib.command import command
@@ -23,6 +26,16 @@ from karborclient.i18n import _
from karborclient import utils
def format_restore(restore_info):
for key in ('parameters', 'resources_status',
'resources_reason'):
if key not in restore_info:
continue
restore_info[key] = json.dumps(restore_info[key],
indent=2, sort_keys=True)
restore_info.pop("links", None)
class ListRestores(command.Lister):
_description = _("List restores.")
@@ -85,9 +98,13 @@ class ListRestores(command.Lister):
column_headers = ['Id', 'Project id', 'Provider id', 'Checkpoint id',
'Restore target', 'Parameters', 'Status']
json_dumps = functools.partial(json.dumps, indent=2, sort_keys=True)
formatters = {
"Parameters": json_dumps,
}
return (column_headers,
(osc_utils.get_item_properties(
s, column_headers
s, column_headers, formatters=formatters,
) for s in data))
@@ -107,7 +124,7 @@ class ShowRestore(command.ShowOne):
client = self.app.client_manager.data_protection
restore = osc_utils.find_resource(client.restores, parsed_args.restore)
restore._info.pop("links", None)
format_restore(restore._info)
return zip(*sorted(restore._info.items()))
@@ -191,5 +208,5 @@ class CreateRestore(command.ShowOne):
parsed_args.checkpoint_id,
parsed_args.restore_target,
restore_parameters, restore_auth)
restore._info.pop("links", None)
format_restore(restore._info)
return zip(*sorted(restore._info.items()))

View File

@@ -12,6 +12,7 @@
# limitations under the License.
import copy
import json
from karborclient.osc.v1 import restores as osc_restores
from karborclient.tests.unit.osc.v1 import fakes
@@ -68,7 +69,7 @@ class TestListRestores(TestRestores):
"cf56bd3e-97a7-4078-b6d5-f36246333fd9",
"dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
"",
{},
json.dumps({}),
"success")]
self.assertEqual(expected_data, list(data))