]> git.llucax.com Git - software/pymin.git/commitdiff
Modificacion al vrrp para start y stop
authorNicolas Emiliani <nemiliani@integratech.com.ar>
Wed, 10 Oct 2007 18:18:33 +0000 (15:18 -0300)
committerNicolas Emiliani <nemiliani@integratech.com.ar>
Wed, 10 Oct 2007 18:18:33 +0000 (15:18 -0300)
pymin/services/vrrp/__init__.py [new file with mode: 0644]

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