diff --git a/scripts/recover_ib_gateway_ready.sh b/scripts/recover_ib_gateway_ready.sh index bf687f6..74ff25f 100755 --- a/scripts/recover_ib_gateway_ready.sh +++ b/scripts/recover_ib_gateway_ready.sh @@ -34,8 +34,13 @@ wait_for_ready() { bash "${script_dir}/wait_for_ib_gateway_ready.sh" "${gateway_mode}" } +ensure_2fa_bot_running() { + CONTAINER_NAME="${container_name}" bash "${script_dir}/ensure_2fa_bot_running.sh" +} + echo "Ensuring ${container_name} is running before readiness check." docker compose up -d --no-build +ensure_2fa_bot_running if wait_for_ready "${initial_wait_seconds}"; then exit 0 @@ -44,6 +49,7 @@ fi echo "IB gateway API was not ready; restarting ${container_name} and retrying." >&2 docker compose ps >&2 || true docker compose restart "${container_name}" +ensure_2fa_bot_running if wait_for_ready "${restart_wait_seconds}"; then exit 0 @@ -51,6 +57,7 @@ fi echo "IB gateway API is still not ready; recreating ${container_name} and retrying." >&2 docker compose up -d --force-recreate --no-build "${container_name}" +ensure_2fa_bot_running if wait_for_ready "${recreate_wait_seconds}"; then exit 0 diff --git a/tests/test_gateway_recovery_scripts.sh b/tests/test_gateway_recovery_scripts.sh index 66fc6d1..31975a3 100644 --- a/tests/test_gateway_recovery_scripts.sh +++ b/tests/test_gateway_recovery_scripts.sh @@ -26,6 +26,9 @@ grep -Fq 'flock -w "${lock_wait_seconds}" 9' "$recover_script" grep -Fq 'docker compose restart "${container_name}"' "$recover_script" grep -Fq 'docker compose up -d --force-recreate --no-build "${container_name}"' "$recover_script" grep -Fq 'IB_GATEWAY_READY_TIMEOUT_SECONDS="${timeout_seconds}"' "$recover_script" +grep -Fq 'CONTAINER_NAME="${container_name}" bash "${script_dir}/ensure_2fa_bot_running.sh"' "$recover_script" +ensure_count="$(grep -c 'ensure_2fa_bot_running' "$recover_script")" +test "$ensure_count" -ge 4 grep -Fq 'swap_size_mib="${IB_GATEWAY_SWAP_SIZE_MIB:-2048}"' "$swap_script" grep -Fq 'fallocate -l "${swap_size_mib}M" "${swap_file}"' "$swap_script"