Loading cloudcontrol/server/db.py +14 −6 Original line number Diff line number Diff line Loading @@ -20,18 +20,25 @@ class SObject(TqlObject): def __init__(self, *args, **kwargs): super(SObject, self).__init__(*args, **kwargs) self._overridden = defaultdict(lambda: []) self._overridden = defaultdict(lambda: None) def register(self, tag, override=False): """ Register a tag on this object (or override). """ # If the tag must override another one, move the old one on the # overridden tags dict: if override: # The tag to register must override an eventual existing tag. # Overridden tag is moved in the overridden tags dict: if tag.name in self._tags: self._overridden[tag.name].append(self._tags[tag.name]) self._overridden[tag.name] = self._tags[tag.name] del self._tags[tag.name] elif tag.name in self._tags: # The tag to register is already overridden, we place it directly # on the overridden tags dict: if tag.name in self._overridden: raise KeyError('A tag with this name is already registered on this object') self._overridden[tag.name] = tag return return super(SObject, self).register(tag) def unregister(self, name, override=False): Loading @@ -40,14 +47,15 @@ class SObject(TqlObject): super(SObject, self).unregister(name) # If a tag is overriden, replace it on the tag list: if override and name in self._overridden: self._tags[name] = self._overridden[name].pop() self._tags[name] = self._overridden[name] del self._overridden[name] def is_overriding(self, name): """ Return True if a tag is overriding another one for the name. If the tag is not found, False is returned. """ return bool(self._overridden[name]) return self._overridden[name] is not None class CCSAsyncTagInterface(BaseTagInterface): Loading Loading
cloudcontrol/server/db.py +14 −6 Original line number Diff line number Diff line Loading @@ -20,18 +20,25 @@ class SObject(TqlObject): def __init__(self, *args, **kwargs): super(SObject, self).__init__(*args, **kwargs) self._overridden = defaultdict(lambda: []) self._overridden = defaultdict(lambda: None) def register(self, tag, override=False): """ Register a tag on this object (or override). """ # If the tag must override another one, move the old one on the # overridden tags dict: if override: # The tag to register must override an eventual existing tag. # Overridden tag is moved in the overridden tags dict: if tag.name in self._tags: self._overridden[tag.name].append(self._tags[tag.name]) self._overridden[tag.name] = self._tags[tag.name] del self._tags[tag.name] elif tag.name in self._tags: # The tag to register is already overridden, we place it directly # on the overridden tags dict: if tag.name in self._overridden: raise KeyError('A tag with this name is already registered on this object') self._overridden[tag.name] = tag return return super(SObject, self).register(tag) def unregister(self, name, override=False): Loading @@ -40,14 +47,15 @@ class SObject(TqlObject): super(SObject, self).unregister(name) # If a tag is overriden, replace it on the tag list: if override and name in self._overridden: self._tags[name] = self._overridden[name].pop() self._tags[name] = self._overridden[name] del self._overridden[name] def is_overriding(self, name): """ Return True if a tag is overriding another one for the name. If the tag is not found, False is returned. """ return bool(self._overridden[name]) return self._overridden[name] is not None class CCSAsyncTagInterface(BaseTagInterface): Loading