summaryrefslogtreecommitdiffstats
path: root/geo-replication/syncdaemon/gsyncdconfig.py
diff options
context:
space:
mode:
Diffstat (limited to 'geo-replication/syncdaemon/gsyncdconfig.py')
-rw-r--r--geo-replication/syncdaemon/gsyncdconfig.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/geo-replication/syncdaemon/gsyncdconfig.py b/geo-replication/syncdaemon/gsyncdconfig.py
index a5843801671..9ca6ef37105 100644
--- a/geo-replication/syncdaemon/gsyncdconfig.py
+++ b/geo-replication/syncdaemon/gsyncdconfig.py
@@ -19,7 +19,7 @@ class GconfInvalidValue(Exception):
class Gconf(object):
def __init__(self, default_conf_file, custom_conf_file=None,
- args={}, extra_tmpl_args={}):
+ args={}, extra_tmpl_args={}, override_from_args=False):
self.default_conf_file = default_conf_file
self.custom_conf_file = custom_conf_file
self.tmp_conf_file = None
@@ -35,6 +35,7 @@ class Gconf(object):
self.session_conf_items = []
self.args = args
self.extra_tmpl_args = extra_tmpl_args
+ self.override_from_args = override_from_args
self._load()
def _tmpl_substitute(self):
@@ -197,6 +198,14 @@ class Gconf(object):
self.session_conf_items.append(k)
self.gconf[k] = v.strip()
+ # Overwrite the Slave configurations which are sent as
+ # arguments to gsyncd slave
+ if self.override_from_args:
+ for k, v in self.args.items():
+ k = k.replace("_", "-")
+ if k.startswith("slave-") and k in self.gconf:
+ self.gconf[k] = v
+
self._tmpl_substitute()
self._do_typecast()
@@ -345,9 +354,11 @@ def getr(name, default_value=None):
return _gconf.getr(name, default_value)
-def load(default_conf, custom_conf=None, args={}, extra_tmpl_args={}):
+def load(default_conf, custom_conf=None, args={}, extra_tmpl_args={},
+ override_from_args=False):
global _gconf
- _gconf = Gconf(default_conf, custom_conf, args, extra_tmpl_args)
+ _gconf = Gconf(default_conf, custom_conf, args, extra_tmpl_args,
+ override_from_args)
def setconfig(name, value):