diff options
Diffstat (limited to 'geo-replication/syncdaemon/configinterface.py.in')
| -rw-r--r-- | geo-replication/syncdaemon/configinterface.py.in | 24 | 
1 files changed, 19 insertions, 5 deletions
diff --git a/geo-replication/syncdaemon/configinterface.py.in b/geo-replication/syncdaemon/configinterface.py.in index 5d67b8a471a..e1cf007a2b8 100644 --- a/geo-replication/syncdaemon/configinterface.py.in +++ b/geo-replication/syncdaemon/configinterface.py.in @@ -30,6 +30,7 @@ config_version = 2.0  re_type = type(re.compile('')) +TMPL_CONFIG_FILE = "@GLUSTERD_WORKDIR@/geo-replication/gsyncd_template.conf"  # (SECTION, OPTION, OLD VALUE, NEW VALUE)  CONFIGS = ( @@ -79,10 +80,17 @@ CONFIGS = (  ) -def upgrade_config_file(path): +def upgrade_config_file(path, confdata):      config_change = False      config = ConfigParser.RawConfigParser() -    config.read(path) +    # If confdata.rx present then glusterd is adding config values, +    # it will create config file if not exists. config.read is fine in +    # this case since any other error will be raised during write. +    if getattr(confdata, "rx", False): +        config.read(path) +    else: +        with open(path) as fp: +            config.readfp(fp)      for sec, opt, oldval, newval in CONFIGS:          try: @@ -190,7 +198,7 @@ class GConffile(object):                  s2[k] = v              self.config._sections[n] = s2 -    def __init__(self, path, peers, *dd): +    def __init__(self, path, peers, confdata, *dd):          """          - .path: location of config file          - .config: underlying ConfigParser instance @@ -202,7 +210,12 @@ class GConffile(object):          self.path = path          self.auxdicts = dd          self.config = ConfigParser.RawConfigParser() -        self.config.read(path) +        if getattr(confdata, "rx", False): +            self.config.read(path) +        else: +            with open(path) as fp: +                self.config.readfp(fp) +          self.dev, self.ino, self.mtime = -1, -1, -1          self._normconfig() @@ -217,7 +230,8 @@ class GConffile(object):                  sres = None          self.config = ConfigParser.RawConfigParser() -        self.config.read(self.path) +        with open(self.path) as fp: +            self.config.readfp(fp)          self._normconfig()      def get_realtime(self, opt):  | 
