]> git.llucax.com Git - software/pymin.git/commitdiff
Add RestartHandler and ReloadHandler to pymin.services.util.
authorLeandro Lucarella <llucax@gmail.com>
Mon, 15 Oct 2007 04:25:27 +0000 (01:25 -0300)
committerLeandro Lucarella <llucax@gmail.com>
Mon, 15 Oct 2007 04:25:27 +0000 (01:25 -0300)
RestartHandler adds a command restart() that calls stop() and then start().

ReloadHandler adds a command reload() that calls restart().

This are utility classes to automatically handler restart and reload
commands on services that don't support them directly.

pymin/services/util.py

index 8d3775ecaa61a2f0e1f12fcd1ff718035b72c424..3e3987896e1d2691fa7350d97f9fb6cba2e70707 100644 (file)
@@ -15,10 +15,10 @@ from pymin.dispatcher import Handler, handler, HandlerError, \
 #DEBUG = False
 DEBUG = True
 
-__ALL__ = ('ServiceHandler', 'InitdHandler', 'SubHandler', 'DictSubHandler',
-            'ListSubHandler', 'Persistent', 'ConfigWriter', 'Error',
-            'ReturnNot0Error', 'ExecutionError', 'ItemError',
-            'ItemAlreadyExistsError', 'ItemNotFoundError', 'call')
+__ALL__ = ('ServiceHandler', 'RestartHandler', 'ReloadHandler', 'InitdHandler',
+            'SubHandler', 'DictSubHandler', 'ListSubHandler', 'Persistent',
+            'ConfigWriter', 'Error', 'ReturnNot0Error', 'ExecutionError',
+            'ItemError', 'ItemAlreadyExistsError', 'ItemNotFoundError', 'call')
 
 class Error(HandlerError):
     r"""
@@ -447,6 +447,32 @@ class ServiceHandler(Handler):
         r"reload() -> None :: Reload the configuration of the service."
         call(self._service_reload)
 
+class RestartHandler(Handler):
+    r"""RestartHandler() -> RestartHandler :: Provides generic restart command.
+
+    This is a helper class to inherit from to automatically add a restart
+    command that first stop the service and then starts it again (using start
+    and stop commands respectively).
+    """
+
+    @handler(u'Restart the service (alias to stop + start).')
+    def restart(self):
+        r"restart() -> None :: Restart the service calling stop() and start()."
+        self.stop()
+        self.start()
+
+class ReloadHandler(Handler):
+    r"""ReloadHandler() -> ReloadHandler :: Provides generic reload command.
+
+    This is a helper class to inherit from to automatically add a reload
+    command that calls restart.
+    """
+
+    @handler(u'Reload the service config (alias to restart).')
+    def reload(self):
+        r"reload() -> None :: Reload the configuration of the service."
+        self.restart()
+
 class InitdHandler(Handler):
     r"""InitdHandler([initd_name[, initd_dir]]) -> InitdHandler.