memory (disco): add nodeIdentifier parameter to getItems
This commit is contained in:
parent
1388ff8fac
commit
7ee4fee48c
1 changed files with 8 additions and 7 deletions
|
|
@ -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])
|
||||
|
|
|
|||
Loading…
Reference in a new issue