Updated final report out
Change-Id: I5c0a1e3fa99e798224b51bcd3bb2ca5bd764ad19
diff --git a/trsync/cmd/cli.py b/trsync/cmd/cli.py
index c2437d1..6d3753b 100644
--- a/trsync/cmd/cli.py
+++ b/trsync/cmd/cli.py
@@ -103,20 +103,28 @@
None if properties['snapshot_lifetime'] == 'None' \
else int(properties['snapshot_lifetime'])
- failed = dict()
+ report = dict()
+ exitcode = 0
for server in servers:
source = rsync_ops.RsyncOps(source_url)
source_url = source.url.url_dir()
- remote = rsync_mirror.TRsync(server, **properties)
+ report[server] = dict()
try:
+ remote = rsync_mirror.TRsync(server, **properties)
remote.push(source_url, mirror_name, symlinks=symlinks)
+ report[server]['success'] = True
except Exception as e:
- failed[server] = e.message
+ report[server]['success'] = False
+ report[server]['log'] = e.message
+ exitcode = 1
- if failed:
- for srv, msg in failed.items():
- self.log.error("Failed to push to {}".format(srv))
- sys.exit(1)
+ for srv, msg in report.items():
+ if msg['success']:
+ self.log.info('Push %s to %s: SUCCESS' % (source_url, srv))
+ else:
+ self.log.error('Push %s to %s: FAILED' % (source_url, srv))
+
+ sys.exit(exitcode)
class RemoveCmd(command.Command):
@@ -150,22 +158,29 @@
path = properties.pop('path', None)
if properties['extra'].startswith('\\'):
properties['extra'] = properties['extra'][1:]
- properties['init_directory_structure'] = False
properties['rsync_extra_params'] = properties.pop('extra')
- failed = dict()
+ report = dict()
+ exitcode = 0
for server in servers:
- remote = rsync_mirror.TRsync(server, **properties)
+ report[server] = dict()
+ self.log.info("Removing items {}".format(str(path)))
try:
- self.log.info("Removing items {}".format(str(path)))
+ remote = rsync_ops.RsyncOps(server, **properties)
remote.rm_all(path)
+ report[server]['success'] = True
except Exception as e:
- failed[server] = e.message
+ report[server]['success'] = False
+ report[server]['log'] = e.message
+ exitcode = 1
- if failed:
- for srv, msg in failed.items():
- self.log.error("Failed to remove at {}".format(srv))
- sys.exit(1)
+ for srv, msg in report.items():
+ if msg['success']:
+ self.log.info('Remove %s: SUCCESS' % (path))
+ else:
+ self.log.error('Remove %s: FAILED' % (path))
+
+ sys.exit(exitcode)
class TRsyncApp(app.App):