From: Dibya Prakash Das Date: Thu, 13 Sep 2018 21:17:13 +0000 (+0530) Subject: validator now shows missing keys X-Git-Tag: pre-potassium~541 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=b16264be0ffb7f35bfe300be3424438ccf38b933;p=integration%2Ftest.git validator now shows missing keys Change-Id: I68acc59c56683290ec940e3380287c9a4a1716a5 Signed-off-by: Dibya Prakash Das --- diff --git a/csit/scripts/generate_visState.py b/csit/scripts/generate_visState.py index 093cd1a0db..3e8a24933e 100644 --- a/csit/scripts/generate_visState.py +++ b/csit/scripts/generate_visState.py @@ -382,9 +382,11 @@ def generate(dash_config, viz_config): # print("No default index found") pass - if not config_validator(format): - raise ValueError('Missing required field values') + missing = config_validator(format) + if len(missing): + raise ValueError('Missing required field values :-', *missing) + # print(format) p(format) vis = visState() @@ -393,28 +395,29 @@ def generate(dash_config, viz_config): # checking incase there are None values \ # in the format indicating missing fields - if not config_validator(generated_visState): - raise KeyError('required fields are missing values!') + missing = config_validator(generated_visState) + if len(missing): + raise ValueError('required fields are missing values! ', *missing) return format, generated_visState # Check the generated format if it contains any key with None # as it's value which indicates incomplete information -def config_validator(val): - flag = True - for _, i in val.items(): - if isinstance(i, dict): - flag = config_validator(i) - if i is None: - return False - return flag + +def config_validator(val, missing=[]): + for key, value in val.items(): + if isinstance(value, dict): + config_validator(value) + if value is None: + missing.append(key) + return missing if __name__ == '__main__': - with open('viz.yaml', 'r') as f: + with open('viz_config.yaml', 'r') as f: viz_config = yaml.safe_load(f) - with open('dashboard.yaml', 'r') as f: + with open('dash_config.yaml', 'r') as f: dash_config = yaml.safe_load(f) generate(dash_config['dashboard']['viz'][2],