diff options
| author | Csaba Henk <csaba@gluster.com> | 2011-08-10 20:04:20 +0300 | 
|---|---|---|
| committer | Vijay Bellur <vijay@gluster.com> | 2011-09-12 06:20:42 -0700 | 
| commit | e139eeeb627368112aa1341d2f0ef6770dd7078e (patch) | |
| tree | 6473a0e0f163b7e3e4057798864286f6f0c517d2 | |
| parent | f3081a22740c70485c50d3837fa93da5fd843f26 (diff) | |
gsyncd: python3 compat fixes
Also add __codecheck script which can verify if source is OK at the
syntactical level with a given Python interpreter.
Change-Id: Ieff34bcd3efd1cdc0e8f9a510c05488f35897bbe
BUG: 1570
Reviewed-on: http://review.gluster.com/320
Reviewed-by: Kaushik BV <kaushikbv@gluster.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
4 files changed, 36 insertions, 5 deletions
diff --git a/xlators/features/marker/utils/syncdaemon/__codecheck.py b/xlators/features/marker/utils/syncdaemon/__codecheck.py new file mode 100644 index 00000000000..832e75c444b --- /dev/null +++ b/xlators/features/marker/utils/syncdaemon/__codecheck.py @@ -0,0 +1,27 @@ +import os +import os.path +import sys + +fl = os.listdir(os.path.dirname(sys.argv[0]) or '.') +fl.sort() +for f in fl: +    if f[-3:] != '.py' or f[0] == '_': +        continue +    m = f[:-3] +    sys.stdout.write('importing %s ...' %  m) +    __import__(m) +    print(' OK.') + +def sys_argv_set(a): +    sys.argv = sys.argv[:1] + a + +gsyncd = sys.modules['gsyncd'] +for a in [['--help'], ['--version'], ['--canonicalize-escape-url', '/foo']]: +    print('>>> invoking program with args: %s' % ' '.join(a)) +    pid = os.fork() +    if not pid: +        sys_argv_set(a) +        gsyncd.main() +    _, r = os.waitpid(pid, 0) +    if r: +        raise RuntimeError('invocation failed') diff --git a/xlators/features/marker/utils/syncdaemon/configinterface.py b/xlators/features/marker/utils/syncdaemon/configinterface.py index fbf96c84336..e55bec519e9 100644 --- a/xlators/features/marker/utils/syncdaemon/configinterface.py +++ b/xlators/features/marker/utils/syncdaemon/configinterface.py @@ -173,7 +173,7 @@ class GConffile(object):              opt = norm(opt)              v = d.get(opt)              if v: -                print v +                print(v)          else:              for k, v in d.iteritems():                  if k == '__name__': diff --git a/xlators/features/marker/utils/syncdaemon/master.py b/xlators/features/marker/utils/syncdaemon/master.py index 4273bf0c419..de4b324214e 100644 --- a/xlators/features/marker/utils/syncdaemon/master.py +++ b/xlators/features/marker/utils/syncdaemon/master.py @@ -110,7 +110,7 @@ class GMaster(object):          self.volinfo_state = (uuid_preset and {'uuid': uuid_preset}, None)          # the actual volinfo we make use of          self.volinfo = None -	self.terminate = False +        self.terminate = False      def crawl_loop(self):          """start the keep-alive thread and iterate .crawl""" diff --git a/xlators/features/marker/utils/syncdaemon/syncdutils.py b/xlators/features/marker/utils/syncdaemon/syncdutils.py index 244e29628e0..6a08fbdaf9a 100644 --- a/xlators/features/marker/utils/syncdaemon/syncdutils.py +++ b/xlators/features/marker/utils/syncdaemon/syncdutils.py @@ -8,7 +8,11 @@ from threading import Lock, Thread as baseThread  from errno import EACCES, EAGAIN, EPIPE, ENOTCONN  from signal import SIGTERM, SIGKILL  from time import sleep -from cPickle import PickleError +try: +    from cPickle import PickleError +except ImportError: +    # py 3 +    from pickle import PickleError  from gconf import gconf @@ -184,7 +188,7 @@ class FreeObject(object):      """wildcard class for which any attribute can be set"""      def __init__(self, **kw): -        for k,v in kw.iteritems(): +        for k,v in kw.items():              setattr(self, k, v)  class Thread(baseThread): @@ -210,5 +214,5 @@ class Thread(baseThread):          baseThread.__init__(self, *a, **kw)          self.setDaemon(True) -class GsyncdError(StandardError): +class GsyncdError(Exception):      pass  | 
