Refactoring of the cli lister module

Removed unused imports.
Fixed up typos in help strings.
Replaced loop with list comprehesion in the `list_validations`
method of the `ValidationActions`.

Docstrings ammended to reflect actual state of the code.

Signed-off-by: Jiri Podivin <jpodivin@redhat.com>
Change-Id: Ie8deccf4c9c60872418a9c29da39f0d5baaad0bf
This commit is contained in:
Jiri Podivin 2021-05-27 08:36:54 +02:00
parent 0f00fd79f9
commit 254d4472f0
3 changed files with 21 additions and 19 deletions

View File

@ -14,9 +14,6 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
import json
import sys
from cliff.lister import Lister from cliff.lister import Lister
from validations_libs.validation_actions import ValidationActions from validations_libs.validation_actions import ValidationActions
@ -34,7 +31,7 @@ class ValidationList(Lister):
metavar='<group>[,<group>,...]', metavar='<group>[,<group>,...]',
action=CommaListAction, action=CommaListAction,
default=[], default=[],
help=("Run specific group validations, " help=("List specific group of validations, "
"if more than one group is required " "if more than one group is required "
"separate the group names with commas: " "separate the group names with commas: "
"--group pre-upgrade,prep | " "--group pre-upgrade,prep | "
@ -42,12 +39,12 @@ class ValidationList(Lister):
parser.add_argument('--validation-dir', dest='validation_dir', parser.add_argument('--validation-dir', dest='validation_dir',
default=constants.ANSIBLE_VALIDATION_DIR, default=constants.ANSIBLE_VALIDATION_DIR,
help=("Path where the validation playbooks " help=("Path where the validation playbooks "
"is located.")) "are located."))
return parser return parser
def take_action(self, parsed_args): def take_action(self, parsed_args):
"""Take validation action""" """Take validation action"""
# Get parameters:
group = parsed_args.group group = parsed_args.group
validation_dir = parsed_args.validation_dir validation_dir = parsed_args.validation_dir

View File

@ -66,6 +66,7 @@ def parse_all_validations_on_disk(path, groups=None):
:type path: `string` :type path: `string`
:param groups: Groups of validations. Could be a `list` or a :param groups: Groups of validations. Could be a `list` or a
comma-separated `string` of groups comma-separated `string` of groups
:type groups: `list` or `string`
:return: A list of validations metadata. :return: A list of validations metadata.
:rtype: `list` :rtype: `list`
@ -90,8 +91,8 @@ def parse_all_validations_on_disk(path, groups=None):
validations_abspath = glob.glob("{path}/*.yaml".format(path=path)) validations_abspath = glob.glob("{path}/*.yaml".format(path=path))
for pl in validations_abspath: for playbook in validations_abspath:
val = Validation(pl) val = Validation(playbook)
if not groups or set(groups).intersection(val.groups): if not groups or set(groups).intersection(val.groups):
results.append(val.get_metadata) results.append(val.get_metadata)

View File

@ -46,10 +46,17 @@ class ValidationActions(object):
else constants.ANSIBLE_VALIDATION_DIR) else constants.ANSIBLE_VALIDATION_DIR)
def list_validations(self, group=None): def list_validations(self, group=None):
"""Get a list of the available validations """Get a list of the validations selected by group
membership. With their names and group membership information.
This is used to print table from python ``Tuple`` with ``PrettyTable``. This is used to print table from python ``Tuple`` with ``PrettyTable``.
:param group: Group or multiple groups of validations.
Additional groups have to be separated by comma.
:type group: `string`
:return: Column names and a list of the selected validations
:rtype: `tuple`
.. code:: text .. code:: text
----------------+--------------------------+----------------------+ ----------------+--------------------------+----------------------+
@ -60,9 +67,6 @@ class ValidationActions(object):
| validation3 | Name of the validation3 | ['group4] | | validation3 | Name of the validation3 | ['group4] |
+---------------+--------------------------+----------------------+ +---------------+--------------------------+----------------------+
:return: The list of the available validations
:rtype: `tuple`
:Example: :Example:
>>> path = "/foo/bar" >>> path = "/foo/bar"
@ -77,13 +81,13 @@ class ValidationActions(object):
validations = v_utils.parse_all_validations_on_disk( validations = v_utils.parse_all_validations_on_disk(
self.validation_path, group) self.validation_path, group)
return_values = [] return_values = [
column_name = ('ID', 'Name', 'Groups') (val.get('id'), val.get('name'), val.get('groups'))
for val in validations]
for val in validations: column_names = ('ID', 'Name', 'Groups')
return_values.append((val.get('id'), val.get('name'),
val.get('groups'))) return (column_names, return_values)
return (column_name, return_values)
def show_validations(self, validation, def show_validations(self, validation,
log_path=constants.VALIDATIONS_LOG_BASEDIR): log_path=constants.VALIDATIONS_LOG_BASEDIR):