X-Git-Url: https://git.llucax.com/software/pymin.git/blobdiff_plain/07a7ae61f3af4fa685077e3b7e5c59f09f8a143f..0f47546178ff84527aeba43e56af035d4879c9c6:/pymin/services/util.py?ds=sidebyside diff --git a/pymin/services/util.py b/pymin/services/util.py index 21afa63..00f2385 100644 --- a/pymin/services/util.py +++ b/pymin/services/util.py @@ -17,7 +17,7 @@ from pymin.seqtools import Sequence #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', @@ -101,7 +101,7 @@ class ItemAlreadyExistsError(ItemError): 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""" @@ -156,10 +156,11 @@ class Device(Sequence): self.name = name self.mac = mac self.ppp = ppp + self.active = True self.addrs = dict() self.routes = list() def as_tuple(self): - return (self.name, self.mac, self.addrs) + return (self.name, self.mac, self.active, self.addrs) @@ -361,7 +362,7 @@ class Restorable(Persistent): return False class ConfigWriter: - r"""ConfigWriter([initd_name[, initd_dir]]) -> ConfigWriter. + r"""ConfigWriter([files[, cfg_dir[, tpl_dir]]]) -> ConfigWriter. This is a helper class to inherit from to automatically handle configuration generation. Mako template system is used for configuration @@ -849,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') - 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') @@ -915,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): - self._attr.clear() + self._attr().clear() else: self._attr(list()) @@ -1048,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') - 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')