NFVBENCH-175 pylint w0707 correction
[nfvbench.git] / nfvbench / config.py
index 0f0d64a..c107958 100644 (file)
@@ -16,7 +16,7 @@
 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
@@ -28,7 +28,7 @@ def config_load(file_name, from_cfg=None, whitelist_keys=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:
@@ -47,6 +47,12 @@ def config_loads(cfg_text, from_cfg=None, whitelist_keys=None):
     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 = []
@@ -58,7 +64,7 @@ def config_loads(cfg_text, from_cfg=None, whitelist_keys=None):
 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})