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

28808 Commits

Author SHA1 Message Date
Vinícius Ferrão 9d3b78ca08 test(boot): cover Genesis selection across installer consumers 2026-10-14 13:29:22 -03:00
Vinícius Ferrão 6713d01af3 refactor(boot): share Genesis artifact selection 2026-10-14 13:29:22 -03:00
Vinícius Ferrão eb76a33652 test(genesis): load production architecture and repository owners 2026-10-14 13:29:21 -03:00
Vinícius Ferrão 35d01515eb test(mknb): exercise compression and archive publication 2026-10-14 13:29:21 -03:00
Vinícius Ferrão 952787108e test(xnba): exercise generated boot scripts through nodeset 2026-10-14 12:37:32 -03:00
Daniel Hilst ba4824ef62 Merge pull request #7940 from VersatusHPC/fix/imgexport-destination
fix(imgport): write the imgexport bundle to its destination
2026-10-14 12:05:47 -03:00
Daniel Hilst bdd2a51efc Merge pull request #7945 from VersatusHPC/fix/imgimport-litefile-lookup
fix(imgport): quote the image column of the litefile lookup
2026-10-14 12:04:38 -03:00
Daniel Hilst 19d4b661af Merge pull request #7939 from middelkoopt/tm-configib-autoconnect
fix(postscripts/configib): turn autoconnect on when reusing a connection
2026-10-14 11:55:24 -03:00
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 bc5da0fe88 test(imgport): cover the column quoting of the litefile lookup
When the configured database is MySQL, the litefile lookup of a
statelite import must quote the image column with backticks. An ALL
entry must still cover the same file of the image.
2026-10-14 00:35:54 -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 9bfdadeaac fix(imgport): quote the image column of the litefile lookup
imgimport looked up the litefile entries for all images with "image" =
'ALL'. MySQL takes a double-quoted name for a string, so the lookup
found nothing, and imgimport added entries that an ALL entry already
covered. The lookup now quotes the column the way the database needs.
2026-10-13 23:22:01 -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