From 74b76de1fa30dcfd5489f1b982eb33fee7e5f7fc Mon Sep 17 00:00:00 2001 From: Anastasiya Date: Tue, 7 Mar 2017 10:21:10 +0400 Subject: [PATCH] Merge global and secrets configs in galera_checker Change-Id: I7aadc894b1350a99e534fd77fd07e0060e91a9b3 --- service/files/galera_checker.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/service/files/galera_checker.py b/service/files/galera_checker.py index 185d1d7..5617c9f 100644 --- a/service/files/galera_checker.py +++ b/service/files/galera_checker.py @@ -27,6 +27,7 @@ LOG = logging.getLogger(__name__) LOG.setLevel(logging.DEBUG) GLOBALS_PATH = "/etc/ccp/globals/globals.json" +GLOBALS_SECRETS_PATH = '/etc/ccp/global-secrets/global-secrets.json' DATADIR = "/var/lib/mysql" SST_FLAG = os.path.join(DATADIR, "sst_in_progress") PID_FILE = os.path.join(DATADIR, "mysqld.pid") @@ -291,12 +292,26 @@ def run_server(port=8080): httpd.serve_forever() +def merge_configs(variables, new_config): + for k, v in new_config.items(): + if k not in variables: + variables[k] = v + continue + if isinstance(v, dict) and isinstance(variables[k], dict): + merge_configs(variables[k], v) + else: + variables[k] = v + + def get_config(): LOG.info("Getting global variables from %s", GLOBALS_PATH) variables = {} with open(GLOBALS_PATH) as f: global_conf = json.load(f) + with open(GLOBALS_SECRETS_PATH) as f: + secrets = json.load(f) + merge_configs(global_conf, secrets) for key in ['percona', 'etcd', 'namespace', 'cluster_domain']: variables[key] = global_conf[key] LOG.debug(variables)