diff --git a/src/memory/disco.py b/src/memory/disco.py index 06868ef8..8d1c7c30 100755 --- a/src/memory/disco.py +++ b/src/memory/disco.py @@ -116,10 +116,11 @@ class Discovery(object): return d @defer.inlineCallbacks - def getItems(self, jid_=None, profile_key=C.PROF_KEY_NONE): + def getItems(self, jid_=None, nodeIdentifier='', profile_key=C.PROF_KEY_NONE): """get disco items from jid_, cache them for our own server - @param jid_: jid of the target, or None for profile's server + @param jid_ (jid.JID): jid of the target, or None for profile's server + @param nodeIdentifier (str): optional node identifier @param profile_key: %(doc_profile_key)s @return: a Deferred which fire disco.DiscoItems """ @@ -132,10 +133,10 @@ class Discovery(object): log.debug("[%s] disco items are in cache" % jid_.full()) except KeyError: log.debug("Caching [%s] disco items" % jid_.full()) - items = yield client.disco.requestItems(jid_) + items = yield client.disco.requestItems(jid_, nodeIdentifier) self.host.memory.updateEntityData(jid_, "DISCO_ITEMS", items, client.profile) else: - items = yield client.disco.requestItems(jid_) + items = yield client.disco.requestItems(jid_, nodeIdentifier) defer.returnValue(items) @@ -168,7 +169,7 @@ class Discovery(object): defers_list.append(info_d) return defer.DeferredList(defers_list) - d = self.getItems(jid_, profile_key) + d = self.getItems(jid_, profile_key=profile_key) d.addCallback(gotItems) d.addCallback(lambda dummy: found_entities) reactor.callLater(TIMEOUT, d.cancel) # FIXME: one bad service make a general timeout @@ -213,7 +214,7 @@ class Discovery(object): defer_list.append(infos_d) return defer.DeferredList(defer_list) - d = self.getItems(jid_, profile_key) + d = self.getItems(jid_, profile_key=profile_key) d.addCallback(gotItems) d.addCallback(lambda dummy: found_entities) reactor.callLater(TIMEOUT, d.cancel) # FIXME: one bad service make a general timeout @@ -261,5 +262,5 @@ class Discovery(object): @return: list of tu""" entity = jid.JID(entity_jid_s) - disco_items = yield self.getItems(entity, profile_key) + disco_items = yield self.getItems(entity, profile_key=profile_key) defer.returnValue([(item.entity.full(), item.nodeIdentifier or '', item.name or '') for item in disco_items])