From 42837a4bfe8732986551c9518bb12d0f28ebb30e Mon Sep 17 00:00:00 2001 From: ahothan Date: Wed, 23 Aug 2017 12:15:14 -0700 Subject: NFVBENCH-8 config checking fails with Exception TypeError: string indices must be integers, not str Change-Id: Ic3263374efffc9ea2566e107b99f47fb3b0c6edf Signed-off-by: ahothan --- nfvbench/config.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'nfvbench/config.py') diff --git a/nfvbench/config.py b/nfvbench/config.py index a0587b6..df91454 100644 --- a/nfvbench/config.py +++ b/nfvbench/config.py @@ -14,6 +14,7 @@ # from attrdict import AttrDict +from log import LOG import yaml @@ -30,6 +31,7 @@ def config_load(file_name, from_cfg=None): .format(file_name)) if from_cfg: + _validate_config(cfg, from_cfg) cfg = from_cfg + cfg return cfg @@ -44,11 +46,12 @@ def config_loads(cfg_text, from_cfg=None): # empty string cfg = AttrDict() if from_cfg: + _validate_config(cfg, from_cfg) return from_cfg + cfg return cfg -def get_err_config(subset, superset): +def _get_err_config(subset, superset): result = {} for k, v in subset.items(): if k not in superset: @@ -58,17 +61,16 @@ def get_err_config(subset, superset): result.update({k: v}) continue if isinstance(v, dict): - res = get_err_config(v, superset[k]) + res = _get_err_config(v, superset[k]) if res: result.update({k: res}) if not result: return None return result - -def test_config(): - cfg = config_load('a1.yaml') - cfg = config_load('a2.yaml', cfg) - cfg = config_loads('color: 500', cfg) - config_loads('') - config_loads('#') +def _validate_config(subset, superset): + err_cfg = _get_err_config(subset, superset) + if err_cfg: + err_msg = 'Unknown options found in config file/string: ' + str(err_cfg) + LOG.error(err_msg) + raise Exception(err_msg) -- cgit 1.2.3-korg