Commit a1435c6d authored by Anael Beutot's avatar Anael Beutot
Browse files

Changed tag handling.

parent cffa3cba
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ class DefaultHandler(RpcHandler):
        :param iterable tags: list of tags to return
        :param iterable noresolve_tags: list of tags to not return
        """
        return get_tags(self, tags, noresolve_tags)
        return get_tags(self.tags, tags, noresolve_tags)

    def set_tag(self, tag):
        self.tags[tag.name] = tag
+8 −8
Original line number Diff line number Diff line
@@ -87,28 +87,28 @@ def tag_inspector(mod, parent=None):
    return tags


def get_tags(obj, tags, noresolve_tags):
def get_tags(tags_dict, tags=None, noresolve_tags=None):
    """Helper to get tags.

    :param obj: object with a dict ``tags`` attribute
    :param tags: List of tags to get (None mean all tags)
    :param noresolve_tags: List of tags to exclude from result
    :param tags_dict: dict containing :class:`Tag` objects
    :param tags: list of tags to get (None mean all tags)
    :param noresolve_tags: list of tags to exclude from result
    """
    logger.debug('Tags request: %s, %s', unicode(tags), unicode(noresolve_tags))

    tags = set(tags) - set(noresolve_tags) if tags is not None else None

    if tags is None:
        tags = obj.tags.iterkeys()
        tags = tags_dict.iterkeys()
    else:
        tags = tags & set(obj.tags)
        tags = tags & set(tags_dict)

    profile = time.time()
    result = dict((
        t,  # tag name
        dict(
            value=obj.tags[t].value,
            ttl=obj.tags[t].ttl,
            value=tags_dict[t].value,
            ttl=tags_dict[t].ttl,
        ),
    ) for t in tags)