2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-09-30 14:55:16 +00:00

fix(xcat-core): the genesis lzma case passes when mknb writes no lzma image

nodeset_shell_lzma asserts "output=~genesis" on "ls -l
/tftpboot/xcat/genesis.fs.*.lzma". The path in the command holds the string
the check looks for, so the error "ls: cannot access
'/tftpboot/xcat/genesis.fs.*.lzma'" matches too. The check is green whether
mknb wrote the lzma image or not. Removing the "xz --format=lzma" fallback
from genesis_lzma_command in mknb.pm makes mknb write only the gz image, and
this check still passes.

The same case starts with a "yum install" of xz-lzma-compat from a
rpmfind.net CentOS 8-Stream PowerTools URL. No check follows it. The URL
returns 404 since CentOS 8-Stream went end of life, so the step has done
nothing for a long time.

The check is now "rc==0". ls returns 2 when the glob matches no file, so the
check is red exactly when mknb wrote no lzma image. The dead install and its
paired "yum remove" are deleted rather than gated, because
genesis_lzma_command falls back to "xz --format=lzma" and xz is present on
every EL management node: the lzma image the case tests is produced without
the package.

Verified with the runcmd and check-evaluation code lifted out of
xCAT-test/xcattest. With the lzma image present both checks are green. With
only the gz image present the old check stays green and "rc==0" is red.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
(cherry picked from commit 942729abecde9cad7c7ac7adcdbe270d97a79051)
This commit is contained in:
Daniel Hilst
2026-09-04 19:26:49 -03:00
parent 0b31e2146e
commit c406d93bce
+2 -4
View File
@@ -2,14 +2,13 @@ start:nodeset_shell_lzma
os:rhels8
label:others,genesis
description: verify could log in genesis shell lzma compression
cmd:if [[ "__GETNODEATTR($$CN,os)__" =~ "rhel" ]]; then yum install -y https://rpmfind.net/linux/centos/8-stream/PowerTools/__GETNODEATTR($$CN,arch)__/os/Packages/xz-lzma-compat-5.2.4-3.el8.__GETNODEATTR($$CN,arch)__.rpm; elif rpm -q xz; then yum download https://rpmfind.net/linux/centos/8-stream/PowerTools/__GETNODEATTR($$CN,arch)__/os/Packages/xz-lzma-compat-5.2.4-3.el8.__GETNODEATTR($$CN,arch)__.rpm; rpm -ivh --nodeps xz-lzma-compat-5.2.4-3.el8.__GETNODEATTR($$CN,arch)__.rpm; fi
#Generate genesis network boot with lzma compression
cmd:mknb __GETNODEATTR($$CN,arch)__
check:rc==0
cmd:nodeset $$CN shell
check:rc==0
cmd:ls -l /tftpboot/xcat/genesis.fs.*.lzma
check:output=~genesis
check:rc==0
cmd:find /tftpboot -type f -name $$CN | xargs grep "lzma"
check:output=~genesis
cmd:perl /opt/xcat/share/xcat/tools/autotest/testcase/genesis/genesistest.pl -n $$CN -g
@@ -19,8 +18,7 @@ check:rc==0
cmd:perl /opt/xcat/share/xcat/tools/autotest/testcase/genesis/genesistest.pl -n $$CN -c
check:rc==0
cmd:cat /tmp/genesistestlog/*
#Remove lzma compression RPM, cleanup and generate default gz genesis network boot
cmd:yum remove -y xz-lzma-compat
#Cleanup and generate the default gz genesis network boot
cmd:rm -f /tftpboot/xcat/genesis.fs.*.lzma
cmd:mknb __GETNODEATTR($$CN,arch)__
end