diff --git a/Cargo.lock b/Cargo.lock index 42d32fbfbf..0bff8583a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6349,7 +6349,7 @@ dependencies = [ [[package]] name = "nym-node-status-agent" -version = "1.0.0-rc.1" +version = "1.0.0-rc.2" dependencies = [ "anyhow", "clap", diff --git a/nym-node-status-api/nym-node-status-agent/Cargo.toml b/nym-node-status-api/nym-node-status-agent/Cargo.toml index d9f11f518e..5e01d55df7 100644 --- a/nym-node-status-api/nym-node-status-agent/Cargo.toml +++ b/nym-node-status-api/nym-node-status-agent/Cargo.toml @@ -3,7 +3,7 @@ [package] name = "nym-node-status-agent" -version = "1.0.0-rc.1" +version = "1.0.0-rc.2" authors.workspace = true repository.workspace = true homepage.workspace = true diff --git a/nym-node-status-api/nym-node-status-agent/run.sh b/nym-node-status-api/nym-node-status-agent/run.sh index f3900ec227..a01e513a1c 100755 --- a/nym-node-status-api/nym-node-status-agent/run.sh +++ b/nym-node-status-api/nym-node-status-agent/run.sh @@ -1,9 +1,9 @@ #!/bin/bash set -eu -export ENVIRONMENT=${ENVIRONMENT:-"sandbox"} +export ENVIRONMENT=${ENVIRONMENT:-"mainnet"} -probe_git_ref="nym-vpn-core-v1.1.0" +probe_git_ref="nym-vpn-core-v1.3.2" crate_root=$(dirname $(realpath "$0")) monorepo_root=$(realpath "${crate_root}/../..") @@ -21,6 +21,7 @@ export NODE_STATUS_AGENT_SERVER_ADDRESS="http://127.0.0.1" export NODE_STATUS_AGENT_SERVER_PORT="8000" export NODE_STATUS_AGENT_PROBE_PATH="$crate_root/nym-gateway-probe" export NODE_STATUS_AGENT_AUTH_KEY="BjyC9SsHAZUzPRkQR4sPTvVrp4GgaquTh5YfSJksvvWT" +export NODE_STATUS_AGENT_PROBE_EXTRA_ARGS="netstack-download-timeout-sec=30,netstack-num-ping=2,netstack-send-timeout-sec=1,netstack-recv-timeout-sec=1" workers=${1:-1} echo "Running $workers workers in parallel" @@ -54,7 +55,7 @@ function swarm() { echo "All agents completed" } -# copy_gw_probe +copy_gw_probe build_agent swarm $workers diff --git a/nym-node-status-api/nym-node-status-agent/src/cli/mod.rs b/nym-node-status-api/nym-node-status-agent/src/cli/mod.rs index 5b7b7beadb..75601548ed 100644 --- a/nym-node-status-api/nym-node-status-agent/src/cli/mod.rs +++ b/nym-node-status-api/nym-node-status-agent/src/cli/mod.rs @@ -35,6 +35,13 @@ pub(crate) enum Command { /// path of binary to run #[arg(long, env = "NODE_STATUS_AGENT_PROBE_PATH")] probe_path: String, + + #[arg( + long, + env = "NODE_STATUS_AGENT_PROBE_EXTRA_ARGS", + value_delimiter = ',' + )] + probe_extra_args: Vec, }, GenerateKeypair { @@ -51,11 +58,13 @@ impl Args { server_port, ns_api_auth_key, probe_path, + probe_extra_args, } => run_probe::run_probe( server_address, server_port.to_owned(), ns_api_auth_key, probe_path, + probe_extra_args, ) .await .inspect_err(|err| { diff --git a/nym-node-status-api/nym-node-status-agent/src/cli/run_probe.rs b/nym-node-status-api/nym-node-status-agent/src/cli/run_probe.rs index e9b7eaf44a..8cf779cfbc 100644 --- a/nym-node-status-api/nym-node-status-agent/src/cli/run_probe.rs +++ b/nym-node-status-api/nym-node-status-agent/src/cli/run_probe.rs @@ -7,6 +7,7 @@ pub(crate) async fn run_probe( server_port: u16, ns_api_auth_key: &str, probe_path: &str, + probe_extra_args: &Vec, ) -> anyhow::Result<()> { let auth_key = PrivateKey::from_base58_string(ns_api_auth_key) .context("Couldn't parse auth key, exiting")?; @@ -19,7 +20,7 @@ pub(crate) async fn run_probe( tracing::info!("Probe version:\n{}", version); if let Some(testrun) = ns_api_client.request_testrun().await? { - let log = probe.run_and_get_log(&Some(testrun.gateway_identity_key)); + let log = probe.run_and_get_log(&Some(testrun.gateway_identity_key), probe_extra_args); ns_api_client .submit_results(testrun.testrun_id, log, testrun.assigned_at_utc) diff --git a/nym-node-status-api/nym-node-status-agent/src/probe.rs b/nym-node-status-api/nym-node-status-agent/src/probe.rs index f779f3af53..596dfaa34c 100644 --- a/nym-node-status-api/nym-node-status-agent/src/probe.rs +++ b/nym-node-status-api/nym-node-status-agent/src/probe.rs @@ -29,7 +29,11 @@ impl GwProbe { } } - pub(crate) fn run_and_get_log(&self, gateway_key: &Option) -> String { + pub(crate) fn run_and_get_log( + &self, + gateway_key: &Option, + probe_extra_args: &Vec, + ) -> String { let mut command = std::process::Command::new(&self.path); command.stdout(std::process::Stdio::piped()); @@ -37,6 +41,16 @@ impl GwProbe { command.arg("--gateway").arg(gateway_id); } + tracing::info!("Extra args for the probe:"); + for arg in probe_extra_args { + let mut split = arg.splitn(2, '='); + let name = split.next().unwrap_or_default(); + let value = split.next().unwrap_or_default(); + tracing::info!("{} {}", name, value); + + command.arg(format!("--{name}")).arg(value); + } + match command.spawn() { Ok(child) => { if let Ok(output) = child.wait_with_output() { diff --git a/nym-node-status-api/nym-node-status-api/launch_node_status_api.sh b/nym-node-status-api/nym-node-status-api/launch_node_status_api.sh index eca23c67a8..b8a16eb3ce 100755 --- a/nym-node-status-api/nym-node-status-api/launch_node_status_api.sh +++ b/nym-node-status-api/nym-node-status-api/launch_node_status_api.sh @@ -3,7 +3,7 @@ set -e user_rust_log_preference=$RUST_LOG -export ENVIRONMENT=${ENVIRONMENT:-"sandbox"} +export ENVIRONMENT=${ENVIRONMENT:-"mainnet"} export NYM_API_CLIENT_TIMEOUT=60 export EXPLORER_CLIENT_TIMEOUT=60 export NODE_STATUS_API_TESTRUN_REFRESH_INTERVAL=120