diff options
Diffstat (limited to 'geo-replication/syncdaemon/libgfchangelog.py')
| -rw-r--r-- | geo-replication/syncdaemon/libgfchangelog.py | 30 | 
1 files changed, 16 insertions, 14 deletions
diff --git a/geo-replication/syncdaemon/libgfchangelog.py b/geo-replication/syncdaemon/libgfchangelog.py index cc40fd5475d..fff9d24e54f 100644 --- a/geo-replication/syncdaemon/libgfchangelog.py +++ b/geo-replication/syncdaemon/libgfchangelog.py @@ -9,9 +9,10 @@  #  import os -from ctypes import CDLL, RTLD_GLOBAL, create_string_buffer, \ -    get_errno, byref, c_ulong +from ctypes import CDLL, RTLD_GLOBAL, get_errno, byref, c_ulong  from syncdutils import ChangelogException, ChangelogHistoryNotAvailable +from py2py3 import gr_cl_history_changelog, gr_cl_done, gr_create_string_buffer +from py2py3 import gr_cl_register, gr_cl_history_done, bytearray_to_str  class Changes(object): @@ -39,9 +40,7 @@ class Changes(object):      @classmethod      def cl_register(cls, brick, path, log_file, log_level, retries=0): -        ret = cls._get_api('gf_changelog_register')(brick.encode(), path.encode(), -                                                    log_file.encode(), -                                                    log_level, retries) +        ret = gr_cl_register(cls, brick, path, log_file, log_level, retries)          if ret == -1:              cls.raise_changelog_err() @@ -63,14 +62,16 @@ class Changes(object):          def clsort(f):              return f.split('.')[-1]          changes = [] -        buf = create_string_buffer(b'\0' * 4096) +        buf = gr_create_string_buffer(4096)          call = cls._get_api('gf_changelog_next_change')          while True:              ret = call(buf, 4096)              if ret in (0, -1):                  break -            changes.append(buf.raw[:ret - 1].decode()) +            # py2 and py3 compatibility +            result = bytearray_to_str(buf.raw[:ret - 1]) +            changes.append(result)          if ret == -1:              cls.raise_changelog_err()          # cleanup tracker @@ -79,7 +80,7 @@ class Changes(object):      @classmethod      def cl_done(cls, clfile): -        ret = cls._get_api('gf_changelog_done')(clfile.encode()) +        ret = gr_cl_done(cls, clfile)          if ret == -1:              cls.raise_changelog_err() @@ -94,9 +95,8 @@ class Changes(object):      @classmethod      def cl_history_changelog(cls, changelog_path, start, end, num_parallel):          actual_end = c_ulong() -        ret = cls._get_api('gf_history_changelog')(changelog_path.encode(), start, end, -                                                   num_parallel, -                                                   byref(actual_end)) +        ret = gr_cl_history_changelog(cls, changelog_path, start, end, +                                      num_parallel, byref(actual_end))          if ret == -1:              cls.raise_changelog_err() @@ -118,14 +118,16 @@ class Changes(object):              return f.split('.')[-1]          changes = [] -        buf = create_string_buffer(b'\0' * 4096) +        buf = gr_create_string_buffer(4096)          call = cls._get_api('gf_history_changelog_next_change')          while True:              ret = call(buf, 4096)              if ret in (0, -1):                  break -            changes.append(buf.raw[:ret - 1].decode()) +            # py2 and py3 compatibility +            result = bytearray_to_str(buf.raw[:ret - 1]) +            changes.append(result)          if ret == -1:              cls.raise_changelog_err() @@ -133,6 +135,6 @@ class Changes(object):      @classmethod      def cl_history_done(cls, clfile): -        ret = cls._get_api('gf_history_changelog_done')(clfile.encode()) +        ret = gr_cl_history_done(cls, clfile)          if ret == -1:              cls.raise_changelog_err()  | 
