diff options
| -rw-r--r-- | geo-replication/syncdaemon/gsyncd.py | 2 | ||||
| -rw-r--r-- | geo-replication/syncdaemon/resource.py | 19 | 
2 files changed, 20 insertions, 1 deletions
diff --git a/geo-replication/syncdaemon/gsyncd.py b/geo-replication/syncdaemon/gsyncd.py index 0aefe7e2c44..41055eaae64 100644 --- a/geo-replication/syncdaemon/gsyncd.py +++ b/geo-replication/syncdaemon/gsyncd.py @@ -233,6 +233,8 @@ def main_i():      op.add_option('--use-rsync-xattrs', default=False, action='store_true')      op.add_option('--sync-xattrs', default=True, action='store_true')      op.add_option('--sync-acls', default=True, action='store_true') +    op.add_option('--log-rsync-performance', default=False, +                  action='store_true')      op.add_option('--pause-on-start', default=False, action='store_true')      op.add_option('-L', '--log-level', metavar='LVL')      op.add_option('-r', '--remote-gsyncd', metavar='CMD', diff --git a/geo-replication/syncdaemon/resource.py b/geo-replication/syncdaemon/resource.py index a1281012264..8bb1619b532 100644 --- a/geo-replication/syncdaemon/resource.py +++ b/geo-replication/syncdaemon/resource.py @@ -833,12 +833,29 @@ class SlaveRemote(object):              (boolify(gconf.sync_xattrs) and ['--xattrs'] or []) + \              (boolify(gconf.sync_acls) and ['--acls'] or []) + \              ['.'] + list(args) -        po = Popen(argv, stdin=subprocess.PIPE, stderr=subprocess.PIPE) +        po = Popen(argv, stdin=subprocess.PIPE, stdout=subprocess.PIPE, +                   stderr=subprocess.PIPE)          for f in files:              po.stdin.write(f)              po.stdin.write('\0')          po.stdin.close() + +        if gconf.log_rsync_performance: +            out = po.stdout.read() +            rsync_msg = [] +            for line in out.split("\n"): +                if line.startswith("Number of files:") or \ +                   line.startswith("Number of regular files transferred:") or \ +                   line.startswith("Total file size:") or \ +                   line.startswith("Total transferred file size:") or \ +                   line.startswith("Literal data:") or \ +                   line.startswith("Matched data:") or \ +                   line.startswith("Total bytes sent:") or \ +                   line.startswith("Total bytes received:") or \ +                   line.startswith("sent "): +                    rsync_msg.append(line) +            logging.info("rsync performance: %s" % ", ".join(rsync_msg))          po.wait()          po.terminate_geterr(fail_on_err=False)  | 
