def get_devices_by_macaddr(macaddr, extensions, debug=False):
"""Returns all devices matching given MAC address."""
deferreds = []
for ext in extensions:
if hasattr(ext.obj, 'get_devices_by_macaddr'):
deferred = ext.obj.get_devices_by_macaddr(macaddr)
deferred.addErrback(stethoscope.api.utils.check_device_not_found)
deferred.addCallback(functools.partial(log_response, 'device',
ext.name + " ({!s})".format(macaddr), debug=debug))
deferreds.append(deferred)
deferred_list = defer.DeferredList(deferreds, consumeErrors=True)
deferred_list.addCallback(functools.partial(stethoscope.api.utils.filter_keyed_by_status,
["{!s}({!s})".format(ext.name, macaddr) for ext in extensions],
context=sys._getframe().f_code.co_name))
deferred_list.addCallback(lambda d: chain.from_iterable(d.values()))
deferred_list.addCallback(list)
return deferred_list
评论列表
文章目录