]> git.llucax.com Git - software/pymin.git/blobdiff - services/vrrp/__init__.py
Fix example configuration file for development.
[software/pymin.git] / services / vrrp / __init__.py
index 5ddbbafbc8716f66387941a10d80dc07cdc44801..0d71b88f3fa7b66315bf20df2ebb4f085086f08e 100644 (file)
@@ -1,81 +1,20 @@
 # vim: set encoding=utf-8 et sw=4 sts=4 :
 
 # vim: set encoding=utf-8 et sw=4 sts=4 :
 
-from pymin import procman
-from pymin.service.util import Restorable, TransactionalHandler, \
-                               ReloadHandler, RestartHandler, \
-                               ServiceHandler, ParametersHandler
-
-# Logger
-import logging ; log = logging.getLogger('pymin.services.vrrp')
-
-__all__ = ('VrrpHandler', 'get_service')
-
+from formencode import validators as V
+from pymin.config import Option
+from handler import VrrpHandler
+
+def setup_service(options, config):
+    options.add_group('vrrp', 'Virtual Router Redundancy service', [
+        Option('pickle_dir', V.String, metavar='DIR',
+               help='store persistent data in DIR directory'),
+        Option('config_dir', V.String, metavar='DIR',
+               help='write config file in DIR directory'),
+        Option('pid_dir', V.String, metavar='DIR',
+               help='write PID file in DIR directory'),
+    ])
 
 def get_service(config):
 
 def get_service(config):
-    return VrrpHandler(config.vrrp.pickle_dir, config.vrrp.config_dir)
-
-
-# FIXME the the command should not use new parameters unless commit where called
-#       i.e. integrate commit with procman to update internal procman parameters.
-class VrrpHandler(Restorable, ParametersHandler, ReloadHandler, RestartHandler,
-                        ServiceHandler, TransactionalHandler):
-
-    handler_help = u"Manage VRRP service"
-
-    _persistent_attrs = ['params']
-
-    _restorable_defaults = dict(
-        params = dict(
-                ipaddress = '192.168.0.1',
-                id        = '1',
-                prio      = '',
-                dev       = 'eth0',
-                persist   = True,
-            ),
-        )
-
-    @property
-    def _command(self):
-        command = ['vrrpd', '-i', self.params['dev'], '-v', self.params['id']]
-        if self.params['prio']:
-            command.extend(('-p', self.params['prio']))
-        command.append(self.params['ipaddress'])
-        return command
-
-    def _service_start(self):
-        log.debug(u'VrrpHandler._service_start()')
-        procinfo = procman.get('vrrp')
-        procinfo.command = self._command
-        procinfo.persist = self.params['persist']
-        procman.start('vrrp')
-
-    def _service_stop(self):
-        log.debug(u'VrrpHandler._service_stop()')
-        procman.stop('vrrp')
-
-    def _service_restart(self):
-        procinfo = procman.get('vrrp')
-        procinfo.command = self._command
-        procinfo.persist = self.params['persist']
-        procman.restart('vrrp')
-
-    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
-        procman.register('vrrp', None)
-        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()
+    return VrrpHandler(config.vrrp.pickle_dir, config.vrrp.config_dir,
+                       config.vrrp.pid_dir)