'Go through all of the reservations and filter to only return those
associated with the given instance_ids.'

def get_reservations_by_instance_ids(self, instance_ids, filters=None):

    reservations = []
    for reservation in self.all_reservations(make_copy=True):
        reservation_instance_ids = [instance.id for instance in reservation.instances]
        matching_reservation = any(((instance_id in reservation_instance_ids) for instance_id in instance_ids))
        if matching_reservation:
            reservation.instances = [instance for instance in reservation.instances if (instance.id in instance_ids)]
            reservations.append(reservation)
    found_instance_ids = [instance.id for reservation in reservations for instance in reservation.instances]
    if (len(found_instance_ids) != len(instance_ids)):
        invalid_id = list(set(instance_ids).difference(set(found_instance_ids)))[0]
        raise InvalidInstanceIdError(invalid_id)
    if (filters is not None):
        reservations = filter_reservations(reservations, filters)
    return reservations
