2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-10-21 15:18:19 +00:00
Commit Graph

28794 Commits

Author SHA1 Message Date
Daniel Hilst c8a20a1ea2 Merge pull request #7950 from VersatusHPC/fix/kit-rhel-release
fix(kit): compare the RHEL release as a number
2026-10-14 11:53:59 -03:00
Daniel Hilst 25a3c8e55d Merge pull request #7947 from VersatusHPC/fix/table-setattribswhere-cache
fix(table): refresh the cache after a conditional update or rollback
2026-10-14 11:53:16 -03:00
Daniel Hilst 675c9f3dfd Merge pull request #7946 from VersatusHPC/fix/kit-lock
fix(kit): refuse a kit command while another process holds the kit lock
2026-10-14 11:51:23 -03:00
Daniel Hilst 5c0944854f Merge pull request #7944 from VersatusHPC/fix/imgimport-extra-destination
fix(imgport): copy an extra file into its destination directory
2026-10-14 11:49:02 -03:00
Daniel Hilst 2c2ce39795 Merge pull request #7943 from VersatusHPC/fix/table-dbworker-exception
fix(table): pass an exception of the DB worker to its caller
2026-10-14 11:48:20 -03:00
Daniel Hilst 2ae9abbaf8 Merge pull request #7936 from VersatusHPC/refactor/r26-genesis-reuse
refactor(genesis): share runtime helpers and build policy
2026-10-14 11:47:15 -03:00
Daniel Hilst b1fd47ae17 Merge pull request #7938 from VersatusHPC/fix/packimage-image-dir-glob
fix(packimage): refuse an image directory that the shell would split
2026-10-14 11:46:58 -03:00
Daniel Hilst 82a658ff23 Merge pull request #7917 from VersatusHPC/test/r26-package-artifacts
test(packaging): exercise package and repository behavior
2026-10-14 11:44:03 -03:00
Daniel Hilst f631faa68d Merge pull request #7911 from VersatusHPC/test/r26-genesis-hardware-isolation
test(genesis): isolate BMC and adapter script checks
2026-10-14 11:41:58 -03:00
Daniel Hilst 1dc9eebb76 Merge pull request #7915 from VersatusHPC/test/r26-image-network-behavior
test(provisioning): exercise image and network callers
2026-10-14 11:41:06 -03:00
Daniel Hilst dafe7a4aeb Merge pull request #7922 from VersatusHPC/fix/xcattest-vmothersetting-restore
fix(xcat-test): the installation cases corrupt a versioned machine type in vmothersetting
2026-10-14 11:04:30 -03:00
Daniel Hilst 74ec6acdde Merge pull request #7900 from VersatusHPC/fix/x86-unstable-cases
fix(xcat-core): x86_64 CLI cases report failures the product does not have
2026-10-14 11:04:10 -03:00
Vinícius Ferrão 6147399387 test(kit): cover the RHEL release check of the kit commands
A kit command must run on RHEL 7, and must be refused on RHEL 8, 9, 10
and 11. The release check must leave SLES and Ubuntu alone.
2026-10-14 01:21:01 -03:00
Vinícius Ferrão bb94a545ff fix(kit): compare the RHEL release as a number
The kit commands refuse RHEL 8 and later, but compared the release as a
string. "10.1" sorts before "8", so the kit commands ran on RHEL 10.
They now compare the major release as a number.
2026-10-14 01:21:01 -03:00
Vinícius Ferrão 2d37c78b75 test(imgport): cover an extra file whose destination directory is missing
An extra file must go into its destination directory, which the import
creates with its missing parents. A file at the destination path, or at
a parent of it, must fail the import and stay as it was. A file name
with glob characters must stay literal. A failed backup of the previous
file must fail the import.
2026-10-14 00:46:41 -03:00
Vinícius Ferrão 085ee7991d fix(imgport): copy an extra file into its destination directory
imgexport records an extra file with its destination directory. When
that directory did not exist, imgimport copied the file to the path of
the directory, so the file took the name of the directory. When a file
was at that path, imgimport replaced it.

imgimport now creates the destination directory and its missing
parents, as it does for an extra directory. A file at that path fails
the import and stays as it was. The copy runs without a shell, so a
file name with glob characters cannot match another file. A failed
backup of the previous file now fails the import.
2026-10-14 00:46:24 -03:00
Vinícius Ferrão 3de07595b0 test(table): cover the cache after a rollback
A cached reader that saw an update before a rollback must see the
committed value after the rollback. This also holds when the rollback
goes through another table on the same handle, and after a table failed
to open on that handle.
2026-10-14 00:36:57 -03:00
Vinícius Ferrão 2b6fd9cd99 fix(table): refresh the cache after a rollback
rollback did not mark the caches of the rolled-back tables as stale. A
cached read after a write and before the rollback kept the rejected
value. Cached readers then got it for up to 5 seconds after the
rollback. MySQL and PostgreSQL share one handle among tables, so a
rollback through one table also undoes the changes of the others.

rollback now refreshes the cache of every table on its handle.
2026-10-14 00:36:57 -03:00
Vinícius Ferrão fae54f7a07 test(table): cover the cache after a conditional update
A reader that built the cache of a table must see a conditional update
of setAttribsWhere at once.
2026-10-14 00:36:57 -03:00
Vinícius Ferrão 68614e5433 fix(table): refresh the cache after a conditional update
setAttribsWhere did not mark the cache of its table as stale, as the
other writes of xCAT::Table do. A cached reader, such as the one that
gives nodes their postscripts, got the previous values for up to 5
seconds after an update. setAttribsWhere now refreshes the cache after
an update.
2026-10-14 00:36:56 -03:00
Vinícius Ferrão ffd47c001f test(table): cover an exception of the DB worker
A table call that dies in the DB worker must die in its caller with the
same message. The DB worker must then serve the next request.
2026-10-14 00:36:47 -03:00
Vinícius Ferrão 9019944fab test(kit): cover the kit lock of a kit command
A kit command must hold the kit lock while it runs, and release it
after. It must refuse to run while another process holds the lock, also
in a process that ran a kit command before. A kit command that another
kit command runs must go on under the lock of that command.
2026-10-13 23:34:39 -03:00
Vinícius Ferrão bb885f2767 fix(kit): refuse a kit command while another process holds the kit lock
kit.pm tested the bareword locked instead of $locked. The test was
always false, so a kit command never took the kit lock, and it ran also
while another process held the lock.

A kit command now takes the lock in one step, and fails while another
process holds it. The is_locked probe is gone, because its release
removed the lock file that another kit command could then hold. A kit
command that another kit command runs goes on under the lock of that
command.
2026-10-13 23:34:38 -03:00
Vinícius Ferrão f9691ce7ac fix(table): pass an exception of the DB worker to its caller
When a table call died in the DB worker of xcatd, the worker sent its
error in an array. dbc_submit dies only for a scalar reference, so the
caller got the error text as the result of the call. A failed commit or
write then looked like a success to the caller.

The worker now sends the error as a scalar reference, and dbc_submit
dies with it, as the call dies without the DB worker.
2026-10-13 23:14:17 -03:00
Vinícius Ferrão ead8e8d4cb docs(test): describe Genesis runtime and dialog checks 2026-10-13 22:16:51 -03:00
Vinícius Ferrão 28dc7a8059 test(genesis): execute the POWER metadata patch policy 2026-10-13 22:16:51 -03:00
Vinícius Ferrão 64b667f03b refactor(genesis): share the POWER metadata patch hook
Keep the machine-specific prepends and their existing patch guard. Both POWER targets call the same recipe function.
2026-10-13 22:16:51 -03:00
Vinícius Ferrão bc8d4e58d8 test(genesis): check resolved common machine policy 2026-10-13 22:16:51 -03:00
Vinícius Ferrão c66822cd60 refactor(genesis): share common machine image policy
Keep hardware and tuning settings in each machine. Use a common include for the repeated image and recommendation settings without changing their override semantics.
2026-10-13 22:16:50 -03:00
Vinícius Ferrão a1bb33d1d3 test(genesis): preserve status publication failure policies 2026-10-13 22:16:50 -03:00
Vinícius Ferrão 8f1ece8da7 refactor(genesis): share status publication across services
Preserve component labels, failure messages and exit policy at each caller. Give the runtime library its own package so discovery does not depend on the init package that already depends on discovery.
2026-10-13 22:16:50 -03:00
Vinícius Ferrão 2a201ab62c test(genesis): prepare shared runtime library fixtures 2026-10-13 22:16:50 -03:00
Vinícius Ferrão eaf95fb5bd test(genesis): exercise newt dialog navigation 2026-10-13 22:16:50 -03:00
Vinícius Ferrão 8d452b1035 refactor(genesis): share static console dialogs 2026-10-13 22:16:50 -03:00
Vinícius Ferrão 61a54fd773 test(genesis): cover action request policy and timeouts 2026-10-13 22:16:50 -03:00
Vinícius Ferrão 0adb4b87cf refactor(genesis): share action refresh requests 2026-10-13 22:16:49 -03:00
Vinícius Ferrão 3dd18b3996 test(genesis): exercise destiny transport and cleanup 2026-10-13 22:16:49 -03:00
Vinícius Ferrão d909b3f6fa refactor(genesis): share destiny protocol operations 2026-10-13 22:16:49 -03:00
Vinícius Ferrão a18d5b723f test(genesis): cover exporter artifact handling 2026-10-13 22:16:49 -03:00
Vinícius Ferrão 846515d019 refactor(genesis): share deploy artifact resolution 2026-10-13 22:16:49 -03:00
Vinícius Ferrão 045ee1c327 test(genesis): wait for recipe rejection diagnostics
BitBake can return a rejected parse before its error event arrives.
Keep the log assertion open until the expected diagnostic arrives or
its deadline expires.
2026-10-13 22:16:49 -03:00
Vinícius Ferrão c177137afa test(packaging): keep failures local to each test file 2026-10-13 11:39:40 -03:00
Vinícius Ferrão 1cf06e4f70 test(ci): keep package and unit results independent 2026-10-13 11:39:40 -03:00
Vinícius Ferrão c675b186fa test(packimage): cover an image directory with a space
packimage must refuse an image directory with a space, and leave the
directory or file that the first word of its path names. The previous
archive, the other formats and the image must stay.
2026-10-13 11:38:51 -03:00
Vinícius Ferrão 1a71d9d33c fix(packimage): refuse an image directory that the shell would split
packimage passes the image directory to shell commands without quotes,
such as the rm -rf of the xcatpost directory. It finds its abandoned
stages with glob. For an image directory such as
"/install/custom images/node", the shell and glob split the path at the
space, so packimage removed /install/custom with the images in it.

packimage now refuses an image directory whose path has a space or a
shell character, before it runs any command.
2026-10-13 11:38:51 -03:00
Vinícius Ferrão 9fca236b51 docs(test): describe native package checks 2026-10-13 11:38:44 -03:00
Vinícius Ferrão 32ccf13fbe test(installer): exercise Genesis package transactions 2026-10-13 11:38:11 -03:00
Vinícius Ferrão dbbdcddcb2 test(packaging): query resolved RPM dependencies 2026-10-13 11:38:11 -03:00
Vinícius Ferrão 709bf6b678 test(provisioning): keep prerequisite failures local to each file 2026-10-13 11:38:10 -03:00
Vinícius Ferrão e7c7babce0 test(build): exercise release repository finalization 2026-10-13 11:38:10 -03:00