]> git.llucax.com Git - software/pymin.git/blobdiff - pymin/services/util.py
Give a nice error if a VPN key can't be readed (refs #22).
[software/pymin.git] / pymin / services / util.py
index 69864cf36c0949ada6ba4a55fed7ef6b8307a75a..32a82cf0668f6f5573b043184c79e188a9b37547 100644 (file)
@@ -17,7 +17,7 @@ from pymin.seqtools import Sequence
 #DEBUG = False
 DEBUG = True
 
 #DEBUG = False
 DEBUG = True
 
-__ALL__ = ('Error', 'ExecutionError', 'ItemError', 'ItemAlreadyExistsError',
+__all__ = ('Error', 'ExecutionError', 'ItemError', 'ItemAlreadyExistsError',
            'ItemNotFoundError', 'ContainerError', 'ContainerNotFoundError',
            'call', 'get_network_devices', 'Persistent', 'Restorable',
            'ConfigWriter', 'ServiceHandler', 'RestartHandler',
            'ItemNotFoundError', 'ContainerError', 'ContainerNotFoundError',
            'call', 'get_network_devices', 'Persistent', 'Restorable',
            'ConfigWriter', 'ServiceHandler', 'RestartHandler',
@@ -101,7 +101,7 @@ class ItemAlreadyExistsError(ItemError):
 
     def __init__(self, key):
         r"Initialize the object. See class documentation for more info."
 
     def __init__(self, key):
         r"Initialize the object. See class documentation for more info."
-        self.message = u'Item already exists: "%s"' % key
+        self.message = u'Item already exists: %s' % key
 
 class ItemNotFoundError(ItemError):
     r"""
 
 class ItemNotFoundError(ItemError):
     r"""
@@ -850,7 +850,9 @@ class ContainerSubHandler(SubHandler):
         # do we have the same item? then raise an error
         if key in self._vattr():
             log.debug(u'ContainerSubHandler.add: allready exists')
         # do we have the same item? then raise an error
         if key in self._vattr():
             log.debug(u'ContainerSubHandler.add: allready exists')
-            raise ItemAlreadyExistsError(item)
+            if not isinstance(self._attr(), dict):
+                key = self._attr().index(item)
+            raise ItemAlreadyExistsError(key)
         # do we have the same item, but logically deleted? then update flags
         if key in self._attr():
             log.debug(u'ContainerSubHandler.add: was deleted, undeleting it')
         # do we have the same item, but logically deleted? then update flags
         if key in self._attr():
             log.debug(u'ContainerSubHandler.add: was deleted, undeleting it')
@@ -916,7 +918,7 @@ class ContainerSubHandler(SubHandler):
         log.debug(u'ContainerSubHandler.clear()')
         # FIXME broken really, no _delete attribute is setted :S
         if isinstance(self._attr(), dict):
         log.debug(u'ContainerSubHandler.clear()')
         # FIXME broken really, no _delete attribute is setted :S
         if isinstance(self._attr(), dict):
-            self._attr.clear()
+            self._attr().clear()
         else:
             self._attr(list())
 
         else:
             self._attr(list())
 
@@ -1049,7 +1051,9 @@ class ComposedSubHandler(SubHandler):
         # do we have the same item? then raise an error
         if key in self._vattr(cont):
             log.debug(u'ComposedSubHandler.add: allready exists')
         # do we have the same item? then raise an error
         if key in self._vattr(cont):
             log.debug(u'ComposedSubHandler.add: allready exists')
-            raise ItemAlreadyExistsError(item)
+            if not isinstance(self._attr(), dict):
+                key = self._attr().index(item)
+            raise ItemAlreadyExistsError(key)
         # do we have the same item, but logically deleted? then update flags
         if key in self._attr(cont):
             log.debug(u'ComposedSubHandler.add: was deleted, undeleting it')
         # do we have the same item, but logically deleted? then update flags
         if key in self._attr(cont):
             log.debug(u'ComposedSubHandler.add: was deleted, undeleting it')