From 7b16a08989e804e857589c8a34881140150dc11c Mon Sep 17 00:00:00 2001 From: Mohammed Junaid Ahmed Date: Fri, 11 Feb 2011 01:06:55 +0000 Subject: syncdaemon: configinterface.py file moved under xlators/features/marker/utils/syncdaemon/ directory. Signed-off-by: Junaid Signed-off-by: Anand V. Avati BUG: 1570 (geosync related changes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1570 --- .../features/marker/utils/syncdaemon/Makefile.am | 2 +- .../marker/utils/syncdaemon/configinterface.py | 50 ++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 xlators/features/marker/utils/syncdaemon/configinterface.py (limited to 'xlators/features/marker') diff --git a/xlators/features/marker/utils/syncdaemon/Makefile.am b/xlators/features/marker/utils/syncdaemon/Makefile.am index 047a8cbaad7..fc1b42e7f3f 100644 --- a/xlators/features/marker/utils/syncdaemon/Makefile.am +++ b/xlators/features/marker/utils/syncdaemon/Makefile.am @@ -1,5 +1,5 @@ syncdaemondir = $(libexecdir)/python/syncdaemon -syncdaemon_PYTHON = gconf.py gsyncd.py __init__.py master.py README.md repce.py resource.py +syncdaemon_PYTHON = gconf.py gsyncd.py __init__.py master.py README.md repce.py resource.py configinterface.py CLEANFILES = diff --git a/xlators/features/marker/utils/syncdaemon/configinterface.py b/xlators/features/marker/utils/syncdaemon/configinterface.py new file mode 100644 index 00000000000..7bc1d4731a7 --- /dev/null +++ b/xlators/features/marker/utils/syncdaemon/configinterface.py @@ -0,0 +1,50 @@ +import ConfigParser + +DEF_SECT = 'global' + +class GConffile(object): + + def __init__(self, path, peers): + if peers: + self.section = 'peers ' + ' '.join(peers) + else: + self.section = DEF_SECT + self.path = path + self.config = ConfigParser.RawConfigParser({}, dict) + self.config.read(path) + + def update_to(self, dct): + for sect in set([DEF_SECT, self.section]): + if self.config.has_section(sect): + dct.update(self.config._sections[sect]) + + def get(self, opt=None): + d = {} + self.update_to(d) + if opt: + d = {opt: d.get(opt, "")} + for k, v in d.iteritems(): + if k == '__name__': + continue + print("%s: %s" % (k, v)) + + def write(self): + f = None + try: + f = open(self.path, 'wb') + self.config.write(f) + finally: + if f: + f.close() + + def set(self, opt, val): + if not self.config.has_section(self.section): + self.config.add_section(self.section) + self.config.set(self.section, opt, val) + self.write() + + def delete(self, opt): + if not self.config.has_section(self.section): + return + if self.config.remove_option(self.section, opt): + self.write() -- cgit