]> git.llucax.com Git - software/pymin.git/blobdiff - pymin/services/util.py
Improve WrongArgumentError class.
[software/pymin.git] / pymin / services / util.py
index 81b2767e4107ad99f73e364cc76b39996367874f..e5aa202281a63931a85c3caea44907305fbd7e18 100644 (file)
@@ -11,8 +11,8 @@ except ImportError:
 
 from pymin.dispatcher import Handler, handler, HandlerError
 
-#DEBUG = False
-DEBUG = True
+DEBUG = False
+#DEBUG = True
 
 __ALL__ = ('ServiceHandler', 'InitdHandler', 'Persistent', 'ConfigWriter',
             'Error', 'ReturnNot0Error', 'ExecutionError', 'call')
@@ -26,13 +26,7 @@ class Error(HandlerError):
 
     message - A descriptive error message.
     """
-
-    def __init__(self, message):
-        r"Initialize the object. See class documentation for more info."
-        self.message = message
-
-    def __str__(self):
-        return self.message
+    pass
 
 class ReturnNot0Error(Error):
     r"""
@@ -47,7 +41,7 @@ class ReturnNot0Error(Error):
         r"Initialize the object. See class documentation for more info."
         self.return_value = return_value
 
-    def __str__(self):
+    def __unicode__(self):
         return 'The command returned %d' % self.return_value
 
 class ExecutionError(Error):
@@ -66,7 +60,7 @@ class ExecutionError(Error):
         self.command = command
         self.error = error
 
-    def __str__(self):
+    def __unicode__(self):
         command = self.command
         if not isinstance(self.command, basestring):
             command = ' '.join(command)
@@ -221,13 +215,22 @@ class Restorable(Persistent):
         r"_restore() -> bool :: Restore persistent data or create a default."
         try:
             self._load()
+            # TODO tener en cuenta servicios que hay que levantar y los que no
+            if hasattr(self, 'commit'): # TODO deberia ser reload y/o algo para comandos
+                self.commit()
             return True
         except IOError:
             for (k, v) in self._restorable_defaults.items():
                 setattr(self, k, v)
+            # TODO tener en cuenta servicios que hay que levantar y los que no
+            if hasattr(self, 'commit'):
+                self.commit()
+                return False
             self._dump()
             if hasattr(self, '_write_config'):
                 self._write_config()
+            if hasattr(self, 'reload'):
+                self.reload()
             return False
 
 class ConfigWriter:
@@ -467,7 +470,7 @@ class TransactionalHandler(Handler):
             self._dump()
         if hasattr(self, '_write_config'):
             self._write_config()
-        if hasattr(self, '_reload'):
+        if hasattr(self, 'reload'):
             self.reload()
 
     @handler(u'Discard all the uncommited changes.')