From 6d0d1ce06dbdd19f6b9af3a4b1641c1819469b11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Jeanneret?= Date: Tue, 27 Oct 2020 14:43:55 +0100 Subject: [PATCH] Ensure we're using proper types for validation_name and _id In some case we might get string instead of list - instead of failing, just do a simple convertion and go on. We also support both notation, either playbook name (foo.yaml) and validation name (foo) in the search of valid content. Co-Authored-By: Gael Chamoulaud (Strider) Change-Id: I8d0288dae3cab131a8bc65e3d0b986dc6b9aec67 Closes-Bug: #1901676 --- validations_libs/utils.py | 5 ++++- validations_libs/validation_actions.py | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/validations_libs/utils.py b/validations_libs/utils.py index 9b588baf..b6742ecb 100644 --- a/validations_libs/utils.py +++ b/validations_libs/utils.py @@ -91,12 +91,15 @@ def get_validations_playbook(path, validation_id=None, groups=None): """ if isinstance(groups, six.string_types): groups = [groups] + if isinstance(validation_id, six.string_types): + validation_id = [validation_id] pl = [] for f in os.listdir(path): pl_path = join(path, f) if os.path.isfile(pl_path): if validation_id: - if os.path.splitext(f)[0] in validation_id: + if os.path.splitext(f)[0] in validation_id or \ + os.path.basename(f) in validation_id: pl.append(pl_path) if groups: val = Validation(pl_path) diff --git a/validations_libs/validation_actions.py b/validations_libs/validation_actions.py index e47245a9..0ba1d028 100644 --- a/validations_libs/validation_actions.py +++ b/validations_libs/validation_actions.py @@ -15,6 +15,7 @@ import logging import os import json +import six import yaml from validations_libs.ansible import Ansible as v_ansible @@ -85,6 +86,9 @@ class ValidationActions(object): except Exception as e: raise(e) elif validation_name: + if isinstance(validation_name, six.string_types): + validation_name = [validation_name] + playbooks = v_utils.get_validations_playbook(validations_dir, validation_name, group)