X-Git-Url: https://git.llucax.com/software/pymin.git/blobdiff_plain/0dcb923d42a7489756eddd83a13a3059d8a24b2a..7c760d8e7832391621b67cabe629f46e6b5959d1:/pymin/services/vrrp/__init__.py diff --git a/pymin/services/vrrp/__init__.py b/pymin/services/vrrp/__init__.py index c8563a6..4739c52 100644 --- a/pymin/services/vrrp/__init__.py +++ b/pymin/services/vrrp/__init__.py @@ -4,6 +4,7 @@ import os from os import path from signal import SIGTERM from subprocess import Popen, PIPE +import logging ; log = logging.getLogger('pymin.services.vrrp') from pymin.seqtools import Sequence from pymin.dispatcher import Handler, handler, HandlerError @@ -13,8 +14,6 @@ from pymin.services.util import Restorable, TransactionalHandler, \ __ALL__ = ('VrrpHandler',) -pid_filename = 'vrrp.pid' - class VrrpHandler(Restorable, ParametersHandler, ReloadHandler, RestartHandler, ServiceHandler, TransactionalHandler): @@ -31,6 +30,7 @@ class VrrpHandler(Restorable, ParametersHandler, ReloadHandler, RestartHandler, ) def _service_start(self): + log.debug(u'VrrpHandler._service_start()') if self.params['prio'] != '': call(('vrrp', '-i', self.params['dev'], '-v', self.params['id'], '-p', self.params['prio'], self.params['ipaddress'])) @@ -39,20 +39,34 @@ class VrrpHandler(Restorable, ParametersHandler, ReloadHandler, RestartHandler, self.params['ipaddress'])) def _service_stop(self): + log.debug(u'VrrpHandler._service_stop()') try: - pid = file(path.join(self._pid_dir, pid_filename )).read().strip() - os.kill(int(pid), SIGTERM) - except (IOError, OSError): - # TODO log - pass + pid_filename = 'vrrpd_%(dev)s_%(id)s.pid' % self.params + log.debug(u'VrrpHandler._service_stop: getting pid from %r', + pid_filename) + pid = file(path.join(self._pid_dir, pid_filename )).read() + pid = int(pid.strip()) + log.debug(u'VrrpHandler._service_stop: killing pid %r', pid) + os.kill(pid, SIGTERM) + except (IOError, OSError), e: + log.debug(u'VrrpHandler._service_stop: error %r', e) def __init__(self, pickle_dir='.', config_dir='.', pid_dir='.'): + log.debug(u'VrrpHandler(%r, %r, $r)', pickle_dir, config_dir, pid_dir) self._persistent_dir = pickle_dir self._pid_dir = pid_dir ServiceHandler.__init__(self) if __name__ == '__main__': + + logging.basicConfig( + level = logging.DEBUG, + format = '%(asctime)s %(levelname)-8s %(message)s', + datefmt = '%H:%M:%S', + ) + v = VrrpHandler() - v.set('prio','10') - v.commit() \ No newline at end of file + v.set('prio', '10') + v.commit() +