Py3 adaptation

    Unrelated: RE-00

Change-Id: Id2f8f330003a7b53a7fbd11057113b0192376c74
diff --git a/requirements.txt b/requirements.txt
index eb04d44..2854391 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,3 +5,4 @@
 cmd2<0.9.0
 pbr>=1.6
 cliff>=1.4.5
+future
diff --git a/trsync/cmd/cli.py b/trsync/cmd/cli.py
index d283f42..983d5d2 100644
--- a/trsync/cmd/cli.py
+++ b/trsync/cmd/cli.py
@@ -119,7 +119,7 @@
                 report[server]['success'] = True
             except Exception as e:
                 report[server]['success'] = False
-                report[server]['log'] = e.message
+                report[server]['log'] = e
                 exitcode = 1
 
         for srv, msg in report.items():
@@ -200,7 +200,7 @@
                 report[server]['success'] = True
             except Exception as e:
                 report[server]['success'] = False
-                report[server]['log'] = e.message
+                report[server]['log'] = e
                 exitcode = 1
 
         for srv, msg in report.items():
@@ -259,7 +259,7 @@
                 report[server]['success'] = True
             except Exception as e:
                 report[server]['success'] = False
-                report[server]['log'] = e.message
+                report[server]['log'] = e
                 exitcode = 1
 
         for srv, msg in report.items():
diff --git a/trsync/cmd/trsync_push.py b/trsync/cmd/trsync_push.py
index 453d207..b730983 100755
--- a/trsync/cmd/trsync_push.py
+++ b/trsync/cmd/trsync_push.py
@@ -112,7 +112,7 @@
         try:
             remote.push(source_dir, mirror_name, symlinks=symlinks)
         except Exception as e:
-            print(e.message)
+            print(e)
             failed.append(server)
 
     if failed:
diff --git a/trsync/cmd/trsync_remove.py b/trsync/cmd/trsync_remove.py
index 95af858..7c91fdf 100755
--- a/trsync/cmd/trsync_remove.py
+++ b/trsync/cmd/trsync_remove.py
@@ -66,7 +66,7 @@
             print("Removing items {}".format(str(path)))
             remote.rm_all(path)
         except Exception as e:
-            print(e.message)
+            print(e)
             failed.append(server)
 
     if failed:
diff --git a/trsync/objects/rsync_mirror.py b/trsync/objects/rsync_mirror.py
index 599500d..d37bf9b 100644
--- a/trsync/objects/rsync_mirror.py
+++ b/trsync/objects/rsync_mirror.py
@@ -189,12 +189,12 @@
         new_snapshots = list()
         for s in snapshots:
             s_date = datetime.datetime.strptime(
-                s,
+                s.decode('utf8'),
                 '{}-{}'.format(repo_name,
                                self.timestamp.snapshot_stamp_format)
             )
             s_date = datetime.datetime.combine(s_date, datetime.time(0))
-            s_path = self.url.a_file(self._snapshots_dir, s)
+            s_path = self.url.a_file(self._snapshots_dir, s.decode('utf8'))
             if s_date < warn_date:
                 s_links = [_[0] for _ in links
                            if _[1] == s
diff --git a/trsync/objects/rsync_ops.py b/trsync/objects/rsync_ops.py
index ff79eb4..616020b 100644
--- a/trsync/objects/rsync_ops.py
+++ b/trsync/objects/rsync_ops.py
@@ -90,7 +90,7 @@
         pattern = re.compile(pattern)
         out = [_ for _ in out.splitlines()
                if (_.split()[-1] != '.') and
-               (pattern.match(_.split()[-1]) is not None)]
+               (pattern.match(_.split()[-1].decode('utf8')) is not None)]
         return out
 
     def ls(self, path=None, pattern=r'.*'):
@@ -100,12 +100,12 @@
 
     def ls_dirs(self, path=None, pattern=r'.*'):
         out = self._ls(path, pattern=pattern)
-        out = [_.split()[-1] for _ in out if _.startswith('d')]
+        out = [_.split()[-1] for _ in out if _.startswith(b'd')]
         return out
 
     def ls_symlinks(self, path=None, pattern=r'.*'):
         out = self._ls(path, pattern=pattern, opts='-l')
-        out = [_.split()[-3:] for _ in out if _.startswith('l')]
+        out = [_.split()[-3:] for _ in out if _.startswith(b'l')]
         out = [[_[0], _[-1]] for _ in out]
         return out
 
diff --git a/trsync/objects/rsync_url.py b/trsync/objects/rsync_url.py
index 5a1919a..eb41091 100644
--- a/trsync/objects/rsync_url.py
+++ b/trsync/objects/rsync_url.py
@@ -18,6 +18,7 @@
 import re
 
 from trsync.utils import utils as utils
+from builtins import range as xrange
 
 
 logger = utils.logger.getChild('RsyncUrl')
diff --git a/trsync/tests/functional/rsync_remotes/rsync2.py b/trsync/tests/functional/rsync_remotes/rsync2.py
index d6f6082..86acb5b 100644
--- a/trsync/tests/functional/rsync_remotes/rsync2.py
+++ b/trsync/tests/functional/rsync_remotes/rsync2.py
@@ -25,6 +25,7 @@
 
 from trsync.utils import shell as shell
 from trsync.utils.utils import bunch as bunch
+from builtins import range as xrange
 
 
 logging.basicConfig()
diff --git a/trsync/tests/functional/test_utils.py b/trsync/tests/functional/test_utils.py
index 8ee12d6..fca1b05 100644
--- a/trsync/tests/functional/test_utils.py
+++ b/trsync/tests/functional/test_utils.py
@@ -17,6 +17,7 @@
 import unittest
 
 from trsync.utils import utils as utils
+from builtins import range as xrange
 
 
 logger = utils.logger.getChild('TestUtils')