Merge "Show Plan parameters with empty values only"
This commit is contained in:
commit
1e2b652d1b
@ -31,7 +31,7 @@ Field 'roles' contains list of names of Roles assigned to the Plan.
|
|||||||
|
|
||||||
Retrieve a Single Plan
|
Retrieve a Single Plan
|
||||||
----------------------
|
----------------------
|
||||||
*tuskar plan-show [-h] [--verbose] <PLAN>*
|
*tuskar plan-show [-h] [--verbose] [--only-empty-parameters] <PLAN>*
|
||||||
|
|
||||||
Usage example:
|
Usage example:
|
||||||
|
|
||||||
@ -67,6 +67,8 @@ Example:
|
|||||||
|
|
||||||
Adding the --verbose flag will display all parameters, instead of just role counts.
|
Adding the --verbose flag will display all parameters, instead of just role counts.
|
||||||
|
|
||||||
|
Adding the --only-empty-parameters flag will display only parameters, which have empty or None value. When all parameters have some value, no parameters will be displayed.
|
||||||
|
|
||||||
Note: Parameters are displayed similarly as Roles, ie. set of properties with values. Each Parameter/Role separated by empty line from previous.
|
Note: Parameters are displayed similarly as Roles, ie. set of properties with values. Each Parameter/Role separated by empty line from previous.
|
||||||
|
|
||||||
Create a New Plan
|
Create a New Plan
|
||||||
|
@ -19,7 +19,8 @@ from tuskarclient.v2 import plans_shell
|
|||||||
|
|
||||||
def empty_args():
|
def empty_args():
|
||||||
args = mock.Mock(spec=[])
|
args = mock.Mock(spec=[])
|
||||||
for attr in ['uuid', 'name', 'description', 'parameters']:
|
for attr in ['uuid', 'name', 'description', 'parameters',
|
||||||
|
'only_empty_parameters']:
|
||||||
setattr(args, attr, None)
|
setattr(args, attr, None)
|
||||||
return args
|
return args
|
||||||
|
|
||||||
@ -74,6 +75,17 @@ class PlansShellTest(BasePlansShellTest):
|
|||||||
mock_print_summary.assert_called_with(mock_find_resource.return_value,
|
mock_print_summary.assert_called_with(mock_find_resource.return_value,
|
||||||
outfile=self.outfile)
|
outfile=self.outfile)
|
||||||
|
|
||||||
|
def test_filter_empty_parameters(self):
|
||||||
|
parameters = [{'name': 'setup param', 'value': '1'},
|
||||||
|
{'name': 'empty-parameter', 'value': ''},
|
||||||
|
{'name': 'empty-parameter', 'value': None}]
|
||||||
|
|
||||||
|
filtered_parameters = self.shell.filter_empty_parameters(parameters)
|
||||||
|
|
||||||
|
self.assertEqual([{'name': 'empty-parameter', 'value': ''},
|
||||||
|
{'name': 'empty-parameter', 'value': None}],
|
||||||
|
filtered_parameters)
|
||||||
|
|
||||||
@mock.patch('tuskarclient.common.utils.find_resource')
|
@mock.patch('tuskarclient.common.utils.find_resource')
|
||||||
@mock.patch('tuskarclient.common.formatting.print_dict')
|
@mock.patch('tuskarclient.common.formatting.print_dict')
|
||||||
def test_plan_show_scale(self, mock_print_dict, mock_find_resource):
|
def test_plan_show_scale(self, mock_print_dict, mock_find_resource):
|
||||||
|
@ -35,9 +35,14 @@ def do_plan_list(tuskar, args, outfile=sys.stdout):
|
|||||||
help="UUID of the Plan to show.")
|
help="UUID of the Plan to show.")
|
||||||
@utils.arg('--verbose', default=False, action="store_true",
|
@utils.arg('--verbose', default=False, action="store_true",
|
||||||
help="Display full plan details")
|
help="Display full plan details")
|
||||||
|
@utils.arg('--only-empty-parameters', default=False, action="store_true",
|
||||||
|
help="Display only parameters with empty or None value")
|
||||||
def do_plan_show(tuskar, args, outfile=sys.stdout):
|
def do_plan_show(tuskar, args, outfile=sys.stdout):
|
||||||
"""Show an individual Plan by its UUID."""
|
"""Show an individual Plan by its UUID."""
|
||||||
plan = utils.find_resource(tuskar.plans, args.plan)
|
plan = utils.find_resource(tuskar.plans, args.plan)
|
||||||
|
if args.only_empty_parameters:
|
||||||
|
plan._info['parameters'] = (
|
||||||
|
filter_empty_parameters(plan._info['parameters']))
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print_plan_detail(plan, outfile=outfile)
|
print_plan_detail(plan, outfile=outfile)
|
||||||
else:
|
else:
|
||||||
@ -86,6 +91,13 @@ def filter_parameters_to_dict(parameters, param_name):
|
|||||||
return filtered_params
|
return filtered_params
|
||||||
|
|
||||||
|
|
||||||
|
def filter_empty_parameters(parameters):
|
||||||
|
"""Filters parameters with empty or None value."""
|
||||||
|
filtered_parameters = [param for param in parameters
|
||||||
|
if param['value'] == '' or param['value'] is None]
|
||||||
|
return filtered_parameters
|
||||||
|
|
||||||
|
|
||||||
def print_plan_detail(plan, outfile=sys.stdout):
|
def print_plan_detail(plan, outfile=sys.stdout):
|
||||||
"""Print detailed Plan information (for plan-show --verbose etc.)."""
|
"""Print detailed Plan information (for plan-show --verbose etc.)."""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user