'Retrieve the given user\'s devices
Args:
user_id (str):
Returns:
defer.Deferred: list[dict[str, X]]: info on each device'

@defer.inlineCallbacks
def get_devices_by_user(self, user_id):

    device_map = (yield self.store.get_devices_by_user(user_id))
    ips = (yield self.store.get_last_client_ip_by_device(user_id, device_id=None))
    devices = device_map.values()
    for device in devices:
        _update_device_from_client_ips(device, ips)
    defer.returnValue(devices)
