diff options
| -rw-r--r-- | extras/Makefile.am | 5 | ||||
| -rw-r--r-- | extras/glusterfs-georep-logrotate | 18 | ||||
| -rw-r--r-- | geo-replication/syncdaemon/gsyncd.py | 21 | ||||
| -rw-r--r-- | geo-replication/syncdaemon/monitor.py | 13 | ||||
| -rw-r--r-- | glusterfs.spec.in | 2 | 
5 files changed, 42 insertions, 17 deletions
diff --git a/extras/Makefile.am b/extras/Makefile.am index 1ccd9dbd9bf..cf619329b75 100644 --- a/extras/Makefile.am +++ b/extras/Makefile.am @@ -6,7 +6,7 @@ SUBDIRS = init.d systemd benchmarking hook-scripts $(OCF_SUBDIR) LinuxRPM geo-re  confdir = $(sysconfdir)/glusterfs  conf_DATA = glusterfs-logrotate gluster-rsyslog-7.2.conf gluster-rsyslog-5.8.conf \ -	logger.conf.example +	logger.conf.example glusterfs-georep-logrotate  voldir = $(sysconfdir)/glusterfs  vol_DATA = glusterd.vol @@ -16,4 +16,5 @@ EXTRA_DIST = specgen.scm MacOSX/Portfile glusterfs-mode.el glusterfs.vim  \  	backend-cleanup.sh disk_usage_sync.sh quota-remove-xattr.sh       \  	quota-metadata-cleanup.sh glusterfs-logrotate clear_xattrs.sh     \  	group-virt.example glusterd-sysconfig gluster-rsyslog-7.2.conf    \ -	gluster-rsyslog-5.8.conf logger.conf.example glusterd.vol +	gluster-rsyslog-5.8.conf logger.conf.example glusterd.vol         \ +	glusterfs-georep-logrotate diff --git a/extras/glusterfs-georep-logrotate b/extras/glusterfs-georep-logrotate new file mode 100644 index 00000000000..6a69ab1e35a --- /dev/null +++ b/extras/glusterfs-georep-logrotate @@ -0,0 +1,18 @@ + +rotate 52 +missingok + +compress +delaycompress +notifempty + +/var/log/glusterfs/geo-replication/*/*.log { +} + + +/var/log/glusterfs/geo-replication-slaves/*.log { +} + + +/var/log/glusterfs/geo-replication-slaves/*/*.log { +} diff --git a/geo-replication/syncdaemon/gsyncd.py b/geo-replication/syncdaemon/gsyncd.py index b460c6c6dbc..7fcc3165ac9 100644 --- a/geo-replication/syncdaemon/gsyncd.py +++ b/geo-replication/syncdaemon/gsyncd.py @@ -12,7 +12,7 @@ import optparse  import fcntl  import fnmatch  from optparse import OptionParser, SUPPRESS_HELP -from logging import Logger +from logging import Logger, handlers  from errno import EEXIST, ENOENT  from ipaddr import IPAddress, IPNetwork @@ -58,7 +58,24 @@ class GLogger(Logger):          logging.root = cls("root", lvl)          logging.setLoggerClass(cls)          logging.getLogger().handlers = [] -        logging.basicConfig(**lprm) +        logging.getLogger().setLevel(lprm['level']) + +        if 'filename' in lprm: +            try: +                logging_handler = handlers.WatchedFileHandler(lprm['filename']) +                formatter = logging.Formatter(fmt=lprm['format'], +                datefmt=lprm['datefmt']) +                logging_handler.setFormatter(formatter) +                logging.getLogger().addHandler(logging_handler) +            except AttributeError: +                # Python version < 2.6 will not have WatchedFileHandler +                # so fallback to logging without any handler. +                # Note: logrotate will not work if Python version is < 2.6 +                logging.basicConfig(**lprm) +        else: +            # If filename not passed(not available in lprm) then it may be +            # streaming.(Ex: {"stream": "/dev/stdout"}) +            logging.basicConfig(**lprm)      @classmethod      def _gsyncd_loginit(cls, **kw): diff --git a/geo-replication/syncdaemon/monitor.py b/geo-replication/syncdaemon/monitor.py index f6c79753d35..0c3a42fa6b7 100644 --- a/geo-replication/syncdaemon/monitor.py +++ b/geo-replication/syncdaemon/monitor.py @@ -176,19 +176,6 @@ class Monitor(object):          return ret      def multiplex(self, wspx, suuid): -        def sigcont_handler(*a): -            """ -            Re-init logging and send group kill signal -            """ -            md = gconf.log_metadata -            logging.shutdown() -            lcls = logging.getLoggerClass() -            lcls.setup(label=md.get('saved_label'), **md) -            pid = os.getpid() -            os.kill(-pid, signal.SIGUSR1) -        signal.signal(signal.SIGUSR1, lambda *a: ()) -        signal.signal(signal.SIGCONT, sigcont_handler) -          argv = sys.argv[:]          for o in ('-N', '--no-daemon', '--monitor'):              while o in argv: diff --git a/glusterfs.spec.in b/glusterfs.spec.in index 8940fdc0fed..c59a159bdc6 100644 --- a/glusterfs.spec.in +++ b/glusterfs.spec.in @@ -545,6 +545,8 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha  # geo-rep ghosts  %{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd/geo-replication  touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf +%{__install} -D -p -m 0644 extras/glusterfs-georep-logrotate \ +    %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep  %endif  %if ( 0%{!?_without_syslog:1} )  | 
