From 3d8c97c1545e76c65841c507ee0e87fdd6281c8e Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Fri, 9 Jun 2023 19:14:02 +0200 Subject: [PATCH] fix: add support for http_proxy and https_proxy --- README.md | 4 +++- backend/.vscode/settings.json | 7 +------ .../parsers/windmill-parser-wasm/package-lock.json | 2 +- backend/windmill-worker/src/python_executor.rs | 1 + backend/windmill-worker/src/worker.rs | 12 ++++++++++-- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 5d6c7ebd17..aa7a511d84 100644 --- a/README.md +++ b/README.md @@ -362,7 +362,9 @@ it being synced automatically everyday. | EXIT_AFTER_NO_JOB_FOR_SECS | None | Exit worker if no job is received after duration in secs if defined | Worker | | OAUTH_JSON_AS_BASE64 | None | Base64 encoded JSON of the OAuth configuration. e.g `OAUTH_JSON_AS_BASE64=$(base64 oauth.json \| tr -d '\n')` to encode it | Server | | REQUEST_SIZE_LIMIT | 2097152 (2MB) | Max request size which impact the maximum size of resources and payload size of job args | Server | -| ACCEPT_INVALID_CERTS | false | Accept invalid certificates, including self-signed and expired certificates | Server | +| ACCEPT_INVALID_CERTS | false | Accept invalid certificates, including self-signed and expired certificates | Server | +| HTTP_PROXY | None | http_proxy | Server + Worker | +| HTTPS_PROXY | false | https_proxy | Server + Worker | ## Run a local dev setup diff --git a/backend/.vscode/settings.json b/backend/.vscode/settings.json index f85934fbfd..d9d4cdd047 100644 --- a/backend/.vscode/settings.json +++ b/backend/.vscode/settings.json @@ -1,10 +1,5 @@ { "python.analysis.typeCheckingMode": "basic", - "rust-analyzer.linkedProjects": [ - "./windmill-common/Cargo.toml", - "./parsers/windmill-parser-ts-wasm/Cargo.toml", - "./parsers/windmill-parser-ts-wasm/Cargo.toml", - "./parsers/windmill-parser-ts-wasm/Cargo.toml" - ], + "rust-analyzer.linkedProjects": ["./windmill-common/Cargo.toml"], "rust-analyzer.showUnlinkedFileNotification": false } diff --git a/backend/parsers/windmill-parser-wasm/package-lock.json b/backend/parsers/windmill-parser-wasm/package-lock.json index 5edc8bf89b..f88d35a75a 100644 --- a/backend/parsers/windmill-parser-wasm/package-lock.json +++ b/backend/parsers/windmill-parser-wasm/package-lock.json @@ -1,5 +1,5 @@ { - "name": "windmill-parser-ts-wasm", + "name": "windmill-parser-wasm", "lockfileVersion": 3, "requires": true, "packages": {} diff --git a/backend/windmill-worker/src/python_executor.rs b/backend/windmill-worker/src/python_executor.rs index 3bc28f1cd7..9f628ad80d 100644 --- a/backend/windmill-worker/src/python_executor.rs +++ b/backend/windmill-worker/src/python_executor.rs @@ -19,6 +19,7 @@ lazy_static::lazy_static! { static ref PYTHON_PATH: String = std::env::var("PYTHON_PATH").unwrap_or_else(|_| "/usr/local/bin/python3".to_string()); + static ref PIP_INDEX_URL: Option = std::env::var("PIP_INDEX_URL").ok(); static ref PIP_EXTRA_INDEX_URL: Option = std::env::var("PIP_EXTRA_INDEX_URL").ok(); static ref PIP_TRUSTED_HOST: Option = std::env::var("PIP_TRUSTED_HOST").ok(); diff --git a/backend/windmill-worker/src/worker.rs b/backend/windmill-worker/src/worker.rs index 0a07f53920..81565a28ab 100644 --- a/backend/windmill-worker/src/worker.rs +++ b/backend/windmill-worker/src/worker.rs @@ -175,7 +175,8 @@ lazy_static::lazy_static! { .and_then(|x| x.parse::().ok()) .unwrap_or(false); - + static ref HTTP_PROXY: Option = std::env::var("http_proxy").ok().or(std::env::var("HTTP_PROXY").ok()); + static ref HTTPS_PROXY: Option = std::env::var("https_proxy").ok().or(std::env::var("HTTPS_PROXY").ok()); pub static ref DENO_PATH: String = std::env::var("DENO_PATH").unwrap_or_else(|_| "/usr/bin/deno".to_string()); pub static ref NSJAIL_PATH: String = std::env::var("NSJAIL_PATH").unwrap_or_else(|_| "nsjail".to_string()); pub static ref PATH_ENV: String = std::env::var("PATH").unwrap_or_else(|_| String::new()); @@ -1278,7 +1279,7 @@ mount {{ }; // println!("handle lang job {:?}", SystemTime::now()); - let envs = if *CLOUD_HOSTED || envs.is_none() { + let mut envs = if *CLOUD_HOSTED || envs.is_none() { HashMap::new() } else { let mut hm = HashMap::new(); @@ -1294,6 +1295,13 @@ mount {{ hm }; + if let Some(ref env) = *HTTPS_PROXY { + envs.insert("HTTPS_PROXY".to_string(), env.to_string()); + } + if let Some(ref env) = *HTTP_PROXY { + envs.insert("HTTP_PROXY".to_string(), env.to_string()); + } + let result: error::Result = match language { None => { return Err(Error::ExecutionErr(