def _wait_for_cancellation(stack, wait=5): # give enough time to wait till cancel is completed retries = CANCEL_RETRIES while retries > 0: retries -= 1 eventlet.sleep(wait) engines = db_api.engine_get_all_locked_by_stack( stack.context, stack.id) if not engines: return True return False
def _wait_for_cancellation(stack, wait=5): # give enough time to wait till cancel is completed retries = CANCEL_RETRIES while retries > 0: retries -= 1 eventlet.sleep(wait) engines = db_api.engine_get_all_locked_by_stack( stack.context, stack.id) if not engines: return True return False
def _cancel_workers(stack, tgm, local_engine_id, rpc_client): engines = db_api.engine_get_all_locked_by_stack(stack.context, stack.id) if not engines: return True # cancel workers running locally if local_engine_id in engines: _cancel_check_resource(stack.id, local_engine_id, tgm) engines.remove(local_engine_id) # cancel workers on remote engines for engine_id in engines: rpc_client.cancel_check_resource(stack.context, stack.id, engine_id) return _wait_for_cancellation(stack)
def _cancel_workers(stack, tgm, local_engine_id, rpc_client): engines = db_api.engine_get_all_locked_by_stack(stack.context, stack.id) if not engines: return True # cancel workers running locally if local_engine_id in engines: _cancel_check_resource(stack.id, local_engine_id, tgm) engines.remove(local_engine_id) # cancel workers on remote engines for engine_id in engines: rpc_client.cancel_check_resource(stack.context, stack.id, engine_id) return _wait_for_cancellation(stack)