from attrdict import AttrDict
import yaml
-from log import LOG
+from .log import LOG
def config_load(file_name, from_cfg=None, whitelist_keys=None):
"""Load a yaml file into a config dict, merge with from_cfg if not None
except IOError:
raise Exception("Configuration file at '{}' was not found. Please use correct path "
"and verify it is visible to container if you run nfvbench in container."
- .format(file_name))
+ .format(file_name)) from IOError
if from_cfg:
if not whitelist_keys:
"""Same as config_load but load from a string
"""
try:
- cfg = AttrDict(yaml.load(cfg_text))
+ cfg = AttrDict(yaml.safe_load(cfg_text))
except TypeError:
# empty string
cfg = AttrDict()
+ except ValueError as e:
+ # In case of wrong path or file not readable or string not well formatted
+ LOG.error("String %s is not well formatted. Please verify your yaml/json string. "
+ "If string is a file path, file was not found. Please use correct path and "
+ "verify it is visible to container if you run nfvbench in container.", cfg_text)
+ raise Exception(e) from e
if from_cfg:
if not whitelist_keys:
whitelist_keys = []
def _validate_config(subset, superset, whitelist_keys):
def get_err_config(subset, superset):
result = {}
- for k, v in subset.items():
+ for k, v in list(subset.items()):
if k not in whitelist_keys:
if k not in superset:
result.update({k: v})