From 0766c7213bc437de6eaed9ec7743cd4218b4c311 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Ferr=C3=A3o?= <2031761+viniciusferrao@users.noreply.github.com> Date: Fri, 2 Oct 2026 22:35:57 -0300 Subject: [PATCH] test(ci): prepare syslog for dispatch redaction checks Install rsyslog and create its xCAT log directory before installing xCAT. Wait for a unique syslog marker before changing test state, including when the log does not exist yet. Reuse that wait for the completion marker. --- .github/workflows/xcat_test.yml | 4 ++- .../integration/xcatd_dispatch_redaction.sh | 36 +++++++++++-------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/.github/workflows/xcat_test.yml b/.github/workflows/xcat_test.yml index e1bcb7c17..d3413d8d3 100644 --- a/.github/workflows/xcat_test.yml +++ b/.github/workflows/xcat_test.yml @@ -9,8 +9,10 @@ jobs: - name: Refresh package indexes run: sudo apt-get update - name: Install dependencies - run: sudo env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests bats bubblewrap rpm build-essential fakeroot reprepro devscripts debhelper libcapture-tiny-perl libfile-slurper-perl libjson-perl libyaml-pp-perl libparallel-forkmanager-perl libsoap-lite-perl libdbi-perl libcgi-pm-perl quilt openssh-server dpkg looptools genometools software-properties-common grub-common grub-efi-amd64-bin + run: sudo env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests bats bubblewrap rpm rsyslog build-essential fakeroot reprepro devscripts debhelper libcapture-tiny-perl libfile-slurper-perl libjson-perl libyaml-pp-perl libparallel-forkmanager-perl libsoap-lite-perl libdbi-perl libcgi-pm-perl quilt openssh-server dpkg looptools genometools software-properties-common grub-common grub-efi-amd64-bin - name: Enable postscript test namespaces run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 + - name: Prepare xCAT syslog directory + run: sudo install -d -o syslog -g adm -m 0750 /var/log/xcat - name: Run tests run: perl github_action_xcat_test.pl diff --git a/xCAT-test/integration/xcatd_dispatch_redaction.sh b/xCAT-test/integration/xcatd_dispatch_redaction.sh index 88348b55a..ac66b236c 100644 --- a/xCAT-test/integration/xcatd_dispatch_redaction.sh +++ b/xCAT-test/integration/xcatd_dispatch_redaction.sh @@ -11,7 +11,6 @@ fail() [ "$(id -u)" -eq 0 ] || fail 'Run this test as root on a management node.' log=/var/log/xcat/cluster.log -[ -r "$log" ] || fail "Cannot read $log" work=$(mktemp -d /tmp/xcat-redaction.XXXXXXXX) node=$(printf '%s' "xcat-redaction-${work##*.}" | tr '[:upper:]' '[:lower:]') restore_debug=0 @@ -33,6 +32,27 @@ cleanup() trap cleanup 0 trap 'exit 1' HUP INT TERM +wait_for_log() +{ + attempt=0 + while :; do + if [ -e "$log" ]; then + if grep -F "$1" "$log" > /dev/null; then + return + else + status=$? + [ "$status" -eq 1 ] || fail 'Cannot read the syslog marker.' + fi + fi + attempt=$((attempt + 1)) + [ "$attempt" -lt 30 ] || fail 'Timed out waiting for syslog.' + sleep 1 + done +} + +logger -p local4.debug -t xcat "$node ready" +wait_for_log "$node ready" + lsdef -t site -i xcatdebugmode > "$work/site" debug=$(sed -n 's/^[[:space:]]*xcatdebugmode=//p' "$work/site") mkdef "$node" groups=all mgt=ipmi @@ -44,19 +64,7 @@ lsdef "$node" -i bmcpassword > "$work/node" grep -Fx " bmcpassword=SEKRET-$node" "$work/node" > /dev/null || fail 'Logging changed the password stored by chdef.' logger -p local4.debug -t xcat "$node complete" - -attempt=0 -while :; do - if grep -F "$node complete" "$log" > /dev/null; then - break - else - status=$? - [ "$status" -eq 1 ] || fail 'Cannot read the syslog completion marker.' - fi - attempt=$((attempt + 1)) - [ "$attempt" -lt 30 ] || fail 'Timed out waiting for syslog.' - sleep 1 -done +wait_for_log "$node complete" grep -F "$node" "$log" > "$work/log" if grep -F "SEKRET-$node" "$work/log" > /dev/null; then