diff options
author | Venky Shankar <venky@gluster.com> | 2011-09-28 16:38:00 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2011-10-20 23:26:23 -0700 |
commit | bdf20a205a4d67d5f6d3ac6010a34291c2822a80 (patch) | |
tree | 412c56b2d2f765011a7b158f4b31b75a7bffce2b /xlators/features/marker/utils/syncdaemon/resource.py | |
parent | 84ebee8c20ce667a5ec5fddc0aa47f8b5bef39f8 (diff) |
cli: add geo-replication log-rotate command
Rotating geo-replication master/monitor log files from cli.
On invocation, the log file for a given master-slave session
is backed up with the current timestamp suffixed to the file
name and signal is sent to gsyncd to start logging to a new
log file.
Sample commands:
* Rotate log file for this <master>:<slave> session:
gluster volume geo-replication <master> <slave> log-rotate
* Rotate log files for all session for master volume <master>
gluster volume geo-replication <master> log-rotate
* Rotate log files for all sessions:
gluster volume geo-replication log-rotate
Change-Id: I75f641b4e082a04d5373c18583ca4a1d9651d27a
BUG: 3519
Reviewed-on: http://review.gluster.com/529
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Csaba Henk <csaba@gluster.com>
Diffstat (limited to 'xlators/features/marker/utils/syncdaemon/resource.py')
-rw-r--r-- | xlators/features/marker/utils/syncdaemon/resource.py | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/xlators/features/marker/utils/syncdaemon/resource.py b/xlators/features/marker/utils/syncdaemon/resource.py index 3595f428fdd..3454c38234a 100644 --- a/xlators/features/marker/utils/syncdaemon/resource.py +++ b/xlators/features/marker/utils/syncdaemon/resource.py @@ -5,7 +5,6 @@ import stat import time import errno import struct -import select import socket import logging import tempfile @@ -18,7 +17,7 @@ import repce from repce import RepceServer, RepceClient from master import GMaster import syncdutils -from syncdutils import GsyncdError +from syncdutils import GsyncdError, select UrlRX = re.compile('\A(\w+)://([^ *?[]*)\Z') HostRX = re.compile('[a-z\d](?:[a-z\d.-]*[a-z\d])?', re.I) @@ -113,11 +112,11 @@ class Popen(subprocess.Popen): @classmethod def init_errhandler(cls): - """start the thread which hanldes children's error output""" + """start the thread which handles children's error output""" cls.errstore = {} def tailer(): while True: - for po in select.select([po.stderr for po in cls.errstore], [], []): + for po in select([po.stderr for po in cls.errstore], [], []): po.lock.acquire() try: la = cls.errstore.get(po) @@ -419,7 +418,7 @@ class SlaveLocal(object): logging.info("connection inactive for %d seconds, stopping" % int(gconf.timeout)) break else: - select.select((), (), ()) + select((), (), ()) class SlaveRemote(object): """mix-in class to implement an interface to a remote slave""" @@ -826,7 +825,7 @@ class SSH(AbstractUrl, SlaveRemote): i, o = ret inf = os.fdopen(i) repce.send(o, None, '__repce_version__') - select.select((inf,), (), ()) + select((inf,), (), ()) repce.recv(inf) # hack hack hack: store a global reference to the file # to save it from getting GC'd which implies closing it |