Merge "Get validation groups info from groups.yaml file"
This commit is contained in:
commit
735acf94e3
@ -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']
|
||||||
|
@ -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 = []
|
||||||
|
@ -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
|
||||||
|
@ -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(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user