]> git.llucax.com Git - software/pymin.git/commitdiff
Merge or3st3s@azazel:/home/luca/repos/pymin
authorNicolas Emiliani <nemiliani@integratech.com.ar>
Wed, 10 Oct 2007 18:31:07 +0000 (15:31 -0300)
committerNicolas Emiliani <nemiliani@integratech.com.ar>
Wed, 10 Oct 2007 18:31:07 +0000 (15:31 -0300)
config.py
pymin/services/__init__.py
pymin/services/vrrp/__init__.py [new file with mode: 0644]

index ca0cc650e5bed824baa70fa742df40feba129999..9f2d257152a8502b9ddd139be18183537cd4cca3 100644 (file)
--- a/config.py
+++ b/config.py
@@ -25,6 +25,9 @@ class Root(Handler):
     proxy = ProxyHandler(
         pickle_dir = join(pickle_path, 'proxy'),
         config_dir = join(config_path, 'proxy'))
+    vrrp = VrrpHandler(
+        pickle_dir = join(pickle_path, 'vrrp'),
+        config_dir = join(config_path, 'vrrp'))
 
 bind_addr = \
 (
index a9f8d03feaaed1ff768dabd5c1db39016a5a506a..1d1ab1c7e5448be6f1f2dd8484d8260092cc821c 100644 (file)
@@ -5,4 +5,5 @@ from pymin.services.dns import DnsHandler
 from pymin.services.firewall import FirewallHandler
 from pymin.services.ip import IpHandler
 from pymin.services.proxy import ProxyHandler
+from pymin.services.vrrp import VrrpHandler
 
diff --git a/pymin/services/vrrp/__init__.py b/pymin/services/vrrp/__init__.py
new file mode 100644 (file)
index 0000000..8f5a003
--- /dev/null
@@ -0,0 +1,59 @@
+# vim: set encoding=utf-8 et sw=4 sts=4 :
+
+from os import path
+from subprocess import Popen, PIPE
+
+from pymin.seqtools import Sequence
+from pymin.dispatcher import Handler, handler, HandlerError
+from pymin.services.util import Restorable, TransactionalHandler, ParametersHandler, call
+
+__ALL__ = ('VrrpHandler')
+
+pid_filename = 'vrrp.pid'
+
+class VrrpHandler(Restorable, ParametersHandler, 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',
+                                    ),
+                            )
+
+    def __init__(self, pickle_dir='.', config_dir='.', pid_dir='.'):
+        self._persistent_dir = pickle_dir
+        self._pid_dir = pid_dir
+        self._restore()
+
+    @handler('Starts the service')
+    def start(self):
+        if self.params['prio'] != '':
+            #call(('vrrp','-i',self.params[dev],'-v',self.params[id],'-p',self.params[prio],self.params[ipaddress]))
+            print ('vrrp','-i',self.params['dev'],'-v',self.params['id'],'-p',self.params['prio'],self.params['ipaddress'])
+        else:
+            #call(('vrrp','-i',self.params[dev],'-v',self.params[id],self.params[ipaddress]))
+            print ('vrrp','-i',self.params['dev'],'-v',self.params['id'],self.params['ipaddress'])
+
+    @handler('Stop the service')
+    def stop(self):
+        try :
+            f = file(path.join(self._pid_dir, pid_filename ), 'r')
+            #call(('kill','<',f.read()))
+            print(('kill','<',f.read()))
+        except IOError:
+            pass
+
+    @handler('Reloads the service')
+    def reload(self):
+        self.stop()
+        self.start()
+
+
+if __name__ == '__main__':
+    v = VrrpHandler()
+    v.set('prio','10')
+    v.commit()
\ No newline at end of file