[Sanity] Override nested params of global config in Jenkins

* Added possibility to overwrite the nested parameters (dictionaries)
in Jenkins. Jenkins EXTRA_PARAMS will have the "override_config"
key which can override partially/fully all options in global
config in YAML format.
* global_config.yaml has now YAML format with lists started with dash

Depends on:
https://gerrit.mcp.mirantis.com/#/c/54895/
https://gerrit.mcp.mirantis.com/#/c/54897/

Change-Id: I8a122cd4307fd6ea341d92fa25f5324ac8eb9f08
Related-Prod: #PROD-29371
diff --git a/test_set/cvp-sanity/utils/__init__.py b/test_set/cvp-sanity/utils/__init__.py
index 2ee6704..bcdf01f 100644
--- a/test_set/cvp-sanity/utils/__init__.py
+++ b/test_set/cvp-sanity/utils/__init__.py
@@ -5,7 +5,6 @@
 import sys, traceback
 import time
 import json
-import pytest
 import logging
 
 
@@ -198,6 +197,7 @@
         os.path.dirname(os.path.abspath(__file__)), "../global_config.yaml")
     with open(global_config_file, 'r') as file:
         global_config = yaml.load(file, Loader=yaml.SafeLoader)
+
     for param in global_config.keys():
         if param in os.environ.keys():
             if ',' in os.environ[param]:
@@ -207,4 +207,19 @@
             else:
                 global_config[param] = os.environ[param]
 
+    if 'OVERRIDE_CONFIG' in os.environ.keys():
+        try:
+            override_config = yaml.load(
+                os.environ['OVERRIDE_CONFIG'], Loader=yaml.SafeLoader)\
+                .get('override_config')
+            if override_config:
+                for key in override_config:
+                    if isinstance(global_config[key], dict):
+                        for k in override_config[key]:
+                            global_config[key][k] = override_config[key][k]
+                    else:
+                        global_config[key] = override_config[key]
+        except Exception:
+            pass
+
     return global_config