Merge "Get validation groups info from groups.yaml file"

This commit is contained in:
Zuul 2020-02-29 02:41:37 +00:00 committed by Gerrit Code Review
commit 735acf94e3
4 changed files with 31 additions and 21 deletions

View File

@ -94,16 +94,6 @@ ANSIBLE_TRIPLEO_PLAYBOOKS = \
VALIDATION_GROUPS_INFO = '%s/groups.yaml' % DEFAULT_VALIDATIONS_BASEDIR VALIDATION_GROUPS_INFO = '%s/groups.yaml' % DEFAULT_VALIDATIONS_BASEDIR
VALIDATION_GROUPS = ['no-op',
'openshift-on-openstack',
'prep',
'pre-introspection',
'pre-deployment',
'post-deployment',
'pre-upgrade',
'post-upgrade']
# ctlplane network defaults # ctlplane network defaults
CTLPLANE_CIDR_DEFAULT = '192.168.24.0/24' CTLPLANE_CIDR_DEFAULT = '192.168.24.0/24'
CTLPLANE_DHCP_START_DEFAULT = ['192.168.24.5'] CTLPLANE_DHCP_START_DEFAULT = ['192.168.24.5']

View File

@ -151,7 +151,7 @@ class TestValidatorGroupInfo(utils.TestCommand):
# Get the command object to test # Get the command object to test
self.cmd = tripleo_validator.TripleOValidatorGroupInfo(self.app, None) self.cmd = tripleo_validator.TripleOValidatorGroupInfo(self.app, None)
@mock.patch('tripleoclient.utils.parse_all_validation_groups_on_disk', @mock.patch('tripleoclient.utils.prepare_validation_groups_for_display',
return_value=GROUPS_LIST) return_value=GROUPS_LIST)
def test_show_group_info(self, mock_validations): def test_show_group_info(self, mock_validations):
arglist = [] arglist = []

View File

@ -2148,19 +2148,38 @@ def get_validation_parameters(validation):
return dict() return dict()
def parse_all_validation_groups_on_disk(groups_file_path=None): def read_validation_groups_file(groups_file_path=None):
results = [] """Load groups.yaml file and return a dictionary with its contents"""
if not groups_file_path: if not groups_file_path:
groups_file_path = constants.VALIDATION_GROUPS_INFO groups_file_path = constants.VALIDATION_GROUPS_INFO
if not os.path.exists(groups_file_path): if not os.path.exists(groups_file_path):
return results return []
with open(groups_file_path, 'r') as grps: with open(groups_file_path, 'r') as grps:
contents = yaml.safe_load(grps) contents = yaml.safe_load(grps)
for grp_name, grp_desc in sorted(contents.items()): return contents
def get_validation_group_name_list():
"""Get the validation group name list only"""
results = []
groups = read_validation_groups_file()
if groups and isinstance(dict, groups):
for grp_name in six.viewkeys(groups):
results.append(grp_name)
return results
def prepare_validation_groups_for_display():
results = []
groups = read_validation_groups_file()
for grp_name, grp_desc in sorted(groups.items()):
results.append((grp_name, grp_desc[0].get('description'))) results.append((grp_name, grp_desc[0].get('description')))
return results return results

View File

@ -39,10 +39,12 @@ RESET = "\033[0;0m"
FAILED_VALIDATION = "{}FAILED{}".format(RED, RESET) FAILED_VALIDATION = "{}FAILED{}".format(RED, RESET)
PASSED_VALIDATION = "{}PASSED{}".format(GREEN, RESET) PASSED_VALIDATION = "{}PASSED{}".format(GREEN, RESET)
GROUP_FILE = constants.VALIDATION_GROUPS_INFO
class _CommaListGroupAction(argparse.Action): class _CommaListGroupAction(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None): def __call__(self, parser, namespace, values, option_string=None):
opts = constants.VALIDATION_GROUPS opts = oooutils.get_validation_group_name_list()
for value in values.split(','): for value in values.split(','):
if value not in opts: if value not in opts:
message = ("Invalid choice: {value} (choose from {choice})" message = ("Invalid choice: {value} (choose from {choice})"
@ -65,12 +67,11 @@ class TripleOValidatorGroupInfo(command.Lister):
return parser return parser
def take_action(self, parsed_args): def take_action(self, parsed_args):
group_file = constants.VALIDATION_GROUPS_INFO group = oooutils.prepare_validation_groups_for_display()
group = oooutils.parse_all_validation_groups_on_disk(group_file)
if not group: if not group:
raise exceptions.CommandError( raise exceptions.CommandError(
"Could not find groups information file %s" % group_file) "Could not find groups information file %s" % GROUP_FILE)
group_info = [] group_info = []
for gp in group: for gp in group:
@ -444,7 +445,7 @@ class TripleOValidatorRun(command.Command):
else: else:
for pb in parsed_args.validation_name: for pb in parsed_args.validation_name:
if pb not in constants.VALIDATION_GROUPS: if pb not in oooutils.get_validation_group_name_list():
playbooks.append(pb + '.yaml') playbooks.append(pb + '.yaml')
else: else:
raise exceptions.CommandError( raise exceptions.CommandError(