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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user