From a29c5aacf1b5169ef085e8c476dd693474151904 Mon Sep 17 00:00:00 2001 From: Tomasz Gromadzki Date: Mon, 20 Apr 2026 15:32:52 +0200 Subject: [PATCH 1/4] SRE-3734 ci: force direct access to CI artifactory Configure NO_PROXY along with HTTPS_PROXY to redirect traffic directly to DAOS CI artifactory, bypassing the proxy. Signed-off-by: Tomasz Gromadzki Priority: 2 Skip-func-test-leap15: false Skip-func-hw-test-medium: false Skip-func-hw-test-medium-vmd: false Skip-func-hw-test-medium-verbs-provider: false Skip-func-hw-test-medium-ucx-provider: false Skip-func-hw-test-large: false --- ci/functional/test_main.sh | 1 + ci/functional/test_main_node.sh | 7 ++++--- ci/unit/test_main.sh | 9 +++++---- ci/unit/test_main_node.sh | 5 ++++- ci/unit/test_nlt.sh | 1 + ci/unit/test_nlt_node.sh | 5 ++++- ftest.sh | 4 +++- src/tests/ftest/scripts/main.sh | 4 ++++ 8 files changed, 26 insertions(+), 10 deletions(-) diff --git a/ci/functional/test_main.sh b/ci/functional/test_main.sh index aa056248bcc..41dd7d83f6d 100755 --- a/ci/functional/test_main.sh +++ b/ci/functional/test_main.sh @@ -118,6 +118,7 @@ if "$hardware_ok"; then WITH_VALGRIND=\"${WITH_VALGRIND:-}\" \ STAGE_NAME=\"${STAGE_NAME}\" \ DAOS_HTTPS_PROXY=\"${DAOS_HTTPS_PROXY:-}\" \ + DAOS_NO_PROXY=\"${DAOS_NO_PROXY:-}\" \ $(cat ci/functional/test_main_node.sh)" else ./ftest.sh "$test_tag" "$tnodes" "${FTEST_ARG:-}" diff --git a/ci/functional/test_main_node.sh b/ci/functional/test_main_node.sh index eef10297940..8adbd80816e 100755 --- a/ci/functional/test_main_node.sh +++ b/ci/functional/test_main_node.sh @@ -1,7 +1,7 @@ #!/bin/bash # # Copyright 2020-2022 Intel Corporation. -# Copyright 2025 Hewlett Packard Enterprise Development LP +# Copyright 2025-2026 Hewlett Packard Enterprise Development LP # # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -16,5 +16,6 @@ export REMOTE_ACCT=jenkins export WITH_VALGRIND="$WITH_VALGRIND" export STAGE_NAME="$STAGE_NAME" -DAOS_HTTPS_PROXY="${DAOS_HTTPS_PROXY:-}" /usr/lib/daos/TESTING/ftest/ftest.sh \ - "$TEST_TAG" "$TNODES" "$FTEST_ARG" +DAOS_HTTPS_PROXY="${DAOS_HTTPS_PROXY:-}" \ +DAOS_NO_PROXY="${DAOS_NO_PROXY:-}" \ +/usr/lib/daos/TESTING/ftest/ftest.sh "$TEST_TAG" "$TNODES" "$FTEST_ARG" diff --git a/ci/unit/test_main.sh b/ci/unit/test_main.sh index d7bbdb5358a..7e2adf12dc9 100755 --- a/ci/unit/test_main.sh +++ b/ci/unit/test_main.sh @@ -1,7 +1,7 @@ #!/bin/bash # # Copyright 2020-2023 Intel Corporation. -# Copyright 2025 Hewlett Packard Enterprise Development LP +# Copyright 2025-2026 Hewlett Packard Enterprise Development LP # # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -43,9 +43,10 @@ NODE=${NODELIST%%,*} rsync -rlpt -z -e "ssh $SSH_KEY_ARGS" . jenkins@"$NODE":build/ # shellcheck disable=SC2029 -ssh -tt "$SSH_KEY_ARGS" jenkins@"$NODE" "HOSTNAME=$HOSTNAME \ - HOSTPWD=$PWD \ +ssh -tt "$SSH_KEY_ARGS" jenkins@"$NODE" "HOSTNAME=$HOSTNAME \ + HOSTPWD=$PWD \ WITH_VALGRIND=$WITH_VALGRIND \ DAOS_HTTPS_PROXY=\"${DAOS_HTTPS_PROXY:-}\" \ - BDEV_TEST=$BDEV_TEST \ + DAOS_NO_PROXY=\"${DAOS_NO_PROXY:-}\" \ + BDEV_TEST=$BDEV_TEST \ ./build/ci/unit/test_main_node.sh" diff --git a/ci/unit/test_main_node.sh b/ci/unit/test_main_node.sh index ad03978ee84..c726fc205f9 100755 --- a/ci/unit/test_main_node.sh +++ b/ci/unit/test_main_node.sh @@ -97,5 +97,8 @@ pip install --upgrade pip pip install --requirement requirements-utest.txt pip install /opt/daos/lib/daos/python/ -HTTPS_PROXY="${DAOS_HTTPS_PROXY:-}" utils/run_utest.py $RUN_TEST_VALGRIND \ +HTTPS_PROXY="${DAOS_HTTPS_PROXY:-}" \ +NO_PROXY="${DAOS_NO_PROXY:-}" \ +no_proxy="${DAOS_NO_PROXY:-}" \ +utils/run_utest.py $RUN_TEST_VALGRIND \ --no-fail-on-error $VDB_ARG --log_dir="$test_log_dir" $SUDO_ARG diff --git a/ci/unit/test_nlt.sh b/ci/unit/test_nlt.sh index a5f50545a15..b8176aca873 100755 --- a/ci/unit/test_nlt.sh +++ b/ci/unit/test_nlt.sh @@ -15,4 +15,5 @@ rsync -rlpt -z -e "ssh $SSH_KEY_ARGS" .build_vars* opt-daos.tar utils requiremen # shellcheck disable=SC2029 ssh -tt "$SSH_KEY_ARGS" jenkins@"$NODE" "DAOS_HTTPS_PROXY=\"${DAOS_HTTPS_PROXY:-}\" \ + DAOS_NO_PROXY=\"${DAOS_NO_PROXY:-}\" \ $(cat "$mydir/test_nlt_node.sh")" diff --git a/ci/unit/test_nlt_node.sh b/ci/unit/test_nlt_node.sh index 730dea30423..bab439e727c 100755 --- a/ci/unit/test_nlt_node.sh +++ b/ci/unit/test_nlt_node.sh @@ -45,5 +45,8 @@ pip install /opt/daos/lib/daos/python/ sudo prlimit --nofile=1024:262144 --pid $$ prlimit -n -HTTPS_PROXY="${DAOS_HTTPS_PROXY:-}" ./utils/node_local_test.py --max-log-size 1950MiB \ +HTTPS_PROXY="${DAOS_HTTPS_PROXY:-}" \ + NO_PROXY="${DAOS_NO_PROXY:-}" \ + no_proxy="${DAOS_NO_PROXY:-}" \ + ./utils/node_local_test.py --max-log-size 1950MiB \ --dfuse-dir /localhome/jenkins/ --log-usage-save nltir.xml --log-usage-export nltr.json all diff --git a/ftest.sh b/ftest.sh index de5f61a6c24..9083112f603 100755 --- a/ftest.sh +++ b/ftest.sh @@ -1,7 +1,7 @@ #!/bin/bash # /* # * (C) Copyright 2016-2022 Intel Corporation. -# * Copyright 2025 Hewlett Packard Enterprise Development LP +# * Copyright 2025-2026 Hewlett Packard Enterprise Development LP # * # * SPDX-License-Identifier: BSD-2-Clause-Patent # */ @@ -114,6 +114,7 @@ shift || true args+=" $*" _DAOS_HTTPS_PROXY=${DAOS_HTTPS_PROXY:-} +_DAOS_NO_PROXY=${DAOS_NO_PROXY:-} # shellcheck disable=SC2029 # shellcheck disable=SC2086 if ! ssh -A $SSH_KEY_ARGS ${REMOTE_ACCT:-jenkins}@"${nodes[0]}" \ @@ -130,6 +131,7 @@ if ! ssh -A $SSH_KEY_ARGS ${REMOTE_ACCT:-jenkins}@"${nodes[0]}" \ WITH_VALGRIND=\"$WITH_VALGRIND\" STAGE_NAME=\"$STAGE_NAME\" DAOS_HTTPS_PROXY=\"$_DAOS_HTTPS_PROXY\" + DAOS_NO_PROXY=\"$_DAOS_NO_PROXY\" $(sed -e '1,/^$/d' "$SCRIPT_LOC"/main.sh)"; then rc=${PIPESTATUS[0]} if ${SETUP_ONLY:-false}; then diff --git a/src/tests/ftest/scripts/main.sh b/src/tests/ftest/scripts/main.sh index 3f3e2c7cb69..598d12e7b25 100755 --- a/src/tests/ftest/scripts/main.sh +++ b/src/tests/ftest/scripts/main.sh @@ -102,6 +102,10 @@ if [ -n "$DAOS_HTTPS_PROXY" ]; then # shellcheck disable=SC2154 export HTTPS_PROXY="${DAOS_HTTPS_PROXY:-""}" fi +if [ -n "${DAOS_NO_PROXY:-}" ]; then + export NO_PROXY="${DAOS_NO_PROXY}" + export no_proxy="${DAOS_NO_PROXY}" +fi launch_node_args="-ts ${TEST_NODES}" if [ "${STAGE_NAME}" == "Functional Hardware 24" ]; then From a18a6b62bc7f6e5fb1a8d7c11a2da7a7df100d7c Mon Sep 17 00:00:00 2001 From: Tomasz Gromadzki Date: Mon, 20 Apr 2026 22:17:33 +0200 Subject: [PATCH 2/4] SRE-3742 ci: no_proxy for direct artifactory access in the Python Bandit check stage (#18045) In the Python Bandit check stage: add no_proxy to access artifactory directly as an access via proxy does not work. Signed-off-by: Tomasz Gromadzki Priority: 2 Skip-build: true Skip-unit-tests:true Skip-unit-test: true Skip-NLT: true Skip-unit-test-memcheck: true Skip-test: true Skip-func-test: true Skip-func-vm: true Skip-fault-injection-test: true Skip-test-el-9-rpms: true Skip-test-leap-15-rpms: true Skip-func-hw-test: true --- utils/docker/Dockerfile.code_scanning | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/utils/docker/Dockerfile.code_scanning b/utils/docker/Dockerfile.code_scanning index a46acf6df55..dce9f26fdb3 100644 --- a/utils/docker/Dockerfile.code_scanning +++ b/utils/docker/Dockerfile.code_scanning @@ -16,6 +16,16 @@ ARG CB0 # Use local repo server if present ARG REPO_FILE_URL ARG DAOS_LAB_CA_FILE_URL + +# Accept DAOS_NO_PROXY at build time +ARG DAOS_NO_PROXY +# Propagate into the build environment +ENV no_proxy=${DAOS_NO_PROXY} +ENV NO_PROXY=${DAOS_NO_PROXY} +# Persist into /etc/environment for use by shells and services +RUN echo "no_proxy=${DAOS_NO_PROXY}" >> /etc/environment && \ + echo "NO_PROXY=${DAOS_NO_PROXY}" >> /etc/environment + # script to install OS updates basic tools and daos dependencies # COPY ./utils/scripts/install-fedora.sh /tmp/install.sh # script to setup local repo if available From 9bb7b12b026db192e9358a0fb7c6b5b255702186 Mon Sep 17 00:00:00 2001 From: Tomasz Gromadzki Date: Tue, 21 Apr 2026 09:08:14 +0200 Subject: [PATCH 3/4] Trigger build Priority: 2 Signed-off-by: Tomasz Gromadzki From f2d4a3fc1202bdbb2f586cabc363ab3465a3382a Mon Sep 17 00:00:00 2001 From: Tomasz Gromadzki Date: Wed, 29 Apr 2026 18:24:25 +0200 Subject: [PATCH 4/4] SRE-3734 ci: ftest: force direct access to CI artifactory (#18048) Configure NO_PROXY along with HTTPS_PROXY to redirect traffic directly to DAOS CI artifactory, bypassing the proxy. Signed-off-by: Tomasz Gromadzki --- ci/functional/test_main_node.sh | 4 ++-- ci/unit/test_main_node.sh | 1 - ci/unit/test_nlt_node.sh | 1 - src/tests/ftest/dfuse/daos_build.py | 5 +++-- src/tests/ftest/scripts/main.sh | 5 ++--- utils/node_local_test.py | 3 +++ utils/run_utest.py | 5 ++++- 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/ci/functional/test_main_node.sh b/ci/functional/test_main_node.sh index 8adbd80816e..8d185787c78 100755 --- a/ci/functional/test_main_node.sh +++ b/ci/functional/test_main_node.sh @@ -16,6 +16,6 @@ export REMOTE_ACCT=jenkins export WITH_VALGRIND="$WITH_VALGRIND" export STAGE_NAME="$STAGE_NAME" -DAOS_HTTPS_PROXY="${DAOS_HTTPS_PROXY:-}" \ -DAOS_NO_PROXY="${DAOS_NO_PROXY:-}" \ +export DAOS_HTTPS_PROXY="${DAOS_HTTPS_PROXY:-}" +export DAOS_NO_PROXY="${DAOS_NO_PROXY:-}" /usr/lib/daos/TESTING/ftest/ftest.sh "$TEST_TAG" "$TNODES" "$FTEST_ARG" diff --git a/ci/unit/test_main_node.sh b/ci/unit/test_main_node.sh index c726fc205f9..d8568577a5b 100755 --- a/ci/unit/test_main_node.sh +++ b/ci/unit/test_main_node.sh @@ -99,6 +99,5 @@ pip install /opt/daos/lib/daos/python/ HTTPS_PROXY="${DAOS_HTTPS_PROXY:-}" \ NO_PROXY="${DAOS_NO_PROXY:-}" \ -no_proxy="${DAOS_NO_PROXY:-}" \ utils/run_utest.py $RUN_TEST_VALGRIND \ --no-fail-on-error $VDB_ARG --log_dir="$test_log_dir" $SUDO_ARG diff --git a/ci/unit/test_nlt_node.sh b/ci/unit/test_nlt_node.sh index bab439e727c..62a734f3bcf 100755 --- a/ci/unit/test_nlt_node.sh +++ b/ci/unit/test_nlt_node.sh @@ -47,6 +47,5 @@ prlimit -n HTTPS_PROXY="${DAOS_HTTPS_PROXY:-}" \ NO_PROXY="${DAOS_NO_PROXY:-}" \ - no_proxy="${DAOS_NO_PROXY:-}" \ ./utils/node_local_test.py --max-log-size 1950MiB \ --dfuse-dir /localhome/jenkins/ --log-usage-save nltir.xml --log-usage-export nltr.json all diff --git a/src/tests/ftest/dfuse/daos_build.py b/src/tests/ftest/dfuse/daos_build.py index dceba07d233..c336e0ca8f9 100644 --- a/src/tests/ftest/dfuse/daos_build.py +++ b/src/tests/ftest/dfuse/daos_build.py @@ -1,6 +1,6 @@ """ (C) Copyright 2020-2024 Intel Corporation. - (C) Copyright 2025 Hewlett Packard Enterprise Development LP + (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP (C) Copyright 2025 Google LLC SPDX-License-Identifier: BSD-2-Clause-Patent @@ -104,7 +104,8 @@ def run_build_test(self, cache_mode, il_lib=None, run_on_vms=False): remote_env['PATH'] = f"{os.path.join(mount_dir, 'venv', 'bin')}:$PATH" remote_env['VIRTUAL_ENV'] = os.path.join(mount_dir, 'venv') remote_env['COVFILE'] = os.environ['COVFILE'] - remote_env['HTTPS_PROXY'] = os.environ['HTTPS_PROXY'] + remote_env['HTTPS_PROXY'] = os.environ.get('HTTPS_PROXY', '') + remote_env['NO_PROXY'] = os.environ.get('NO_PROXY', '') if il_lib is not None: remote_env['LD_PRELOAD'] = os.path.join(self.prefix, 'lib64', il_lib) diff --git a/src/tests/ftest/scripts/main.sh b/src/tests/ftest/scripts/main.sh index 598d12e7b25..b8d0d58ef8f 100755 --- a/src/tests/ftest/scripts/main.sh +++ b/src/tests/ftest/scripts/main.sh @@ -102,9 +102,8 @@ if [ -n "$DAOS_HTTPS_PROXY" ]; then # shellcheck disable=SC2154 export HTTPS_PROXY="${DAOS_HTTPS_PROXY:-""}" fi -if [ -n "${DAOS_NO_PROXY:-}" ]; then - export NO_PROXY="${DAOS_NO_PROXY}" - export no_proxy="${DAOS_NO_PROXY}" +if [ -n "$DAOS_NO_PROXY" ]; then + export NO_PROXY="${DAOS_NO_PROXY:-""}" fi launch_node_args="-ts ${TEST_NODES}" diff --git a/utils/node_local_test.py b/utils/node_local_test.py index b64ba130a87..724843e87b5 100755 --- a/utils/node_local_test.py +++ b/utils/node_local_test.py @@ -442,6 +442,9 @@ def get_base_env(clean=False): http_proxy = os.environ.get('HTTPS_PROXY') if http_proxy: env['HTTPS_PROXY'] = http_proxy + no_proxy = os.environ.get('NO_PROXY') + if no_proxy: + env['NO_PROXY'] = no_proxy # Enable this to debug memory errors, it has a performance impact but will scan the heap # for corruption. See DAOS-12735 for why this can cause problems in practice. diff --git a/utils/run_utest.py b/utils/run_utest.py index 39261be2a51..f16288d4d79 100755 --- a/utils/run_utest.py +++ b/utils/run_utest.py @@ -2,7 +2,7 @@ """ Copyright 2023-2024 Intel Corporation. Copyright 2025 Google LLC - Copyright 2025 Hewlett Packard Enterprise Development LP + Copyright 2025-2026 Hewlett Packard Enterprise Development LP All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -364,6 +364,9 @@ def __init__(self, suite, config, path_info, args): http_proxy = os.environ.get('HTTPS_PROXY') if http_proxy: self.env['HTTPS_PROXY'] = http_proxy + no_proxy = os.environ.get('NO_PROXY') + if no_proxy: + self.env['NO_PROXY'] = no_proxy def log_dir(self): """Return the log directory"""