def METHOD_NAME(self, bg_ops, timeout=1200):
    """
    Waits for threads to be completed
    Args:
        bg_ops (list): Futures
        timeout (int): Time in seconds to wait
    """
    self.OPERATION_COMPLETED = True
    for thread in bg_ops:
        sample = TimeoutSampler(timeout=timeout, sleep=10, func=thread.done)
        assert sample.wait_for_func_status(result=True)
        try:
            logger.info(f"Thread completed: {thread.result()}")
        except exceptions.CommandFailed:
            logger.exception("Thread failed to complete")
            raise
        except Exception:
            logger.exception("Found an exception")
            raise