2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-10-22 07:38:08 +00:00

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.
This commit is contained in:
Vinícius Ferrão
2026-10-02 22:35:57 -03:00
parent fd0e28bf4b
commit 0766c7213b
2 changed files with 25 additions and 15 deletions
+3 -1
View File
@@ -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
@@ -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