[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