2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-07-31 18:19:40 +00:00
Commit Graph

92 Commits

Author SHA1 Message Date
Daniel Hilst 2d26dca480 Merge pull request #7614 from VersatusHPC/fix/xcatd-rpm-init-state
fix(packaging): preserve xcatd init state across RPM transactions
2026-07-24 12:25:28 -03:00
Daniel Hilst 4652a023c1 Merge pull request #7606 from VersatusHPC/refactor/dbobjutils-only-if-matcher
refactor(dbobjutils): reuse only-if matcher for table routing
2026-07-24 12:24:19 -03:00
Daniel Hilst bee8c529ea Merge pull request #7602 from VersatusHPC/fix/dhcp-ubuntu-backend-release
fix(dhcp): use complete Ubuntu release for backend selection
2026-07-24 11:24:18 -03:00
Daniel Hilst e469aff826 Merge pull request #7604 from VersatusHPC/refactor/dhcp-shared-mac-normalization
refactor(dhcp): reuse Kea MAC normalization
2026-07-24 11:24:08 -03:00
Vinícius Ferrão 5bfbc8edf6 Merge pull request #7627 from VersatusHPC/fix/ddns-net-dns-version-comparison
refactor(ddns): centralize Net::DNS version policy
2026-07-23 17:44:30 -03:00
Daniel Hilst de17401338 fix(xcat-core): run the integration testcase on pull requests too
The integration testcase was added without the ci_test label on the
grounds that the pull request workflow has no management node. That was
wrong: github_action_xcat_test.pl builds xCAT, installs it, runs
setup-local-client.sh and chtab, and leaves xcatd running, which makes
the runner a single node management node. Running the ci_test cases
against it is exactly what the fast regression stage already does.

Label the case ci_test so the integration tests get pull request
coverage as well. This also unlocks a test that had been skipping for a
fixable reason: each case is invoked through sudo, and
dhcp_kea_config_validation.t skips only because /etc/kea is not writable
by the unprivileged runner user, so as root it validates instead of
skipping.

Running the integration suite as root and the unit suite unprivileged is
the right way round. Integration tests legitimately need to write to
places like /etc/kea, whereas running the unit tests as root would let
permission-related assertions pass for the wrong reason.

Correct both READMEs, which carried the mistaken claim that the
integration tests do not run in CI.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-07-23 11:11:31 -03:00
Daniel Hilst 6ab9aca0b7 fix(xcat-core): split the source-only unit tests from the MN integration tests
Three of the files under xCAT-test/unit are not unit tests. They need an
installed management node rather than a checkout: copycds_packages_integrity.t
wants an /install populated by a real copycds, dhcp_kea_config_validation.t
wants a kea-dhcp4 binary that can read the config it generates, and
dhcp_kea_control_agent_smoke.t wants live kea-dhcp4 and kea-ctrl-agent
daemons running as root.

On a GitHub runner none of that exists, so all three plan skip_all. They were
the only three files skipping in the pull request run, which is not a
coincidence -- the skip is the symptom of them being filed in the wrong place.
A skipped test reports neither pass nor fail, so leaving them mixed in with
the unit tests trains the reader to scroll past skips in a directory where a
skip should mean something is wrong.

Move them to xCAT-test/integration, ship that directory alongside unit in
both the rpm and the deb, and drive it from a new xcattest testcase that
proves the installed copy on an MN. The case is deliberately not labelled
ci_test: the pull request workflow has no management node and must not pick
it up. check:rc==0 is the right gate for it -- prove exits non-zero on a real
failure, exits 0 when a test legitimately skips on a node without Kea, and
exits 2 if the directory is missing entirely, so a packaging regression still
fails the case.

Add a README.md to each directory recording which side of the line a new test
belongs on and how each suite is run.

xCAT-test/unit is now 44 files and 802 assertions with no skips at all; the
assertion count is unchanged, confirming the three moved files were
contributing nothing but skips.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-07-23 11:06:10 -03:00
Daniel Hilst a0d2322b71 fix(xcat-core): run every xCAT-test unit test in the GitHub CI
The 47 test files under xCAT-test/unit/ were shipped but almost never
executed on a pull request. Only three hand-written xcattest cases
reached them -- dhcp_unit, ipmi_unit and xcatprobe_unit -- and each
proved a single glob against the installed copy, so the majority of the
suite had never run at all. Real drift went unnoticed as a result:
ubuntu_subiquity_template.t still asserted the pre-86e77bcd7 shape of
compute.subiquity.tmpl and failed against the current template.

Run `prove xCAT-test/unit/*.t` directly from github_action_xcat_test.pl.
The tests resolve xCAT modules and fixture files relative to the repo
root through FindBin, so they must be proved from the checkout and not
from /opt/xcat/share/xcat/tools/autotest/unit; install_xcat() chdir's
away, hence the getcwd() captured up front. The step runs after the
install because the suite needs the perl dependencies xCAT pulls in
(Net::DNS, XML::Simple) and a usable xCAT database.

Drop the three prove testcases so their tests do not run twice, and
refresh the two stale ubuntu_subiquity_template.t assertions: the
identity section is now intentional (86e77bcd7) and the MAC
normalization gained cut filters ahead of the tr (c6e38483f), which the
loosened regex plus a new assertion for the suffix stripping now cover.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-07-23 09:14:03 -03:00
Vinícius Ferrão 55606618fd test(ddns): cover Net::DNS version thresholds 2026-07-22 14:45:12 -03:00
Vinícius Ferrão 6c26a10863 test(packaging): cover shared systemctl guard 2026-07-21 11:08:05 -03:00
Vinícius Ferrão 3505c24040 test(packaging): cover fresh legacy defaults 2026-07-21 11:08:04 -03:00
Vinícius Ferrão 0826a6b1ad test(packaging): prepare fresh legacy defaults 2026-07-21 11:08:04 -03:00
Vinícius Ferrão 9091b3f598 test(packaging): cover custom SysV runlevels 2026-07-21 11:08:04 -03:00
Vinícius Ferrão 7f44bd51bf test(packaging): cover legacy upgrade edge cases 2026-07-21 11:08:04 -03:00
Vinícius Ferrão 9bff441795 test(packaging): prepare legacy state resolution 2026-07-21 11:08:03 -03:00
Vinícius Ferrão 4efcd5132b test(packaging): cover managed xcatd init scripts 2026-07-21 11:08:03 -03:00
Vinícius Ferrão 11709a2221 test(packaging): prepare managed init ownership 2026-07-21 11:08:03 -03:00
Vinícius Ferrão 11f9cada05 test(packaging): cover RPM init transitions 2026-07-21 11:08:03 -03:00
Vinícius Ferrão 5a9c32e885 test(packaging): cover shared init management 2026-07-21 11:08:03 -03:00
Vinícius Ferrão 6d7de3a927 test(packaging): allow shared init state detection 2026-07-21 11:08:02 -03:00
Vinícius Ferrão 002634ef6b test(packaging): cover hybrid init targets 2026-07-21 11:08:02 -03:00
Vinícius Ferrão 8a4fe18cbf test(dbobjutils): cover literal only-if routing 2026-07-18 16:48:15 -03:00
Vinícius Ferrão a53853d919 test(dhcp): cover detected Ubuntu backend selection 2026-07-18 16:05:34 -03:00
Vinícius Ferrão a80e1e7cfa test(dhcp): isolate EL9 backend selection fixture 2026-07-18 16:05:00 -03:00
Vinícius Ferrão 138f3327b2 test(dhcp): cover Kea MAC normalization 2026-07-18 12:26:16 -03:00
Vinícius Ferrão 0ddc19e74b test(dhcp): cover shared version comparison 2026-07-18 01:48:05 -03:00
Daniel Hilst ec2bbb9a6a Merge pull request #7588 from VersatusHPC/fix/issue-6495-nfs-root-options
feat: add configurable NFS root options for statelite images
2026-07-17 23:46:14 -03:00
Daniel Hilst 419d6c262c Merge pull request #7596 from VersatusHPC/fix/issue-7593-systemd-packaging
fix: avoid sysvinit paths on systemd enabled systems
2026-07-17 21:35:45 -03:00
Vinícius Ferrão 68a4855c7f fix(statelite): reject invalid NFS root options early 2026-07-17 20:36:51 -03:00
Vinícius Ferrão 5fc111b3b3 Merge pull request #7590 from VersatusHPC/fix/issue-4082-makehosts-index 2026-07-17 20:12:54 -03:00
Vinícius Ferrão 08428ee667 Merge pull request #7589 from VersatusHPC/codex/issue-5843-copycds-sles-media 2026-07-17 19:41:09 -03:00
Daniel Hilst 428c63cdb1 Merge pull request #7598 from VersatusHPC/fix/issue-6498-mknb-xcatd-address
fix(mknb): avoid transient discovery addresses
2026-07-17 19:02:50 -03:00
Vinícius Ferrão cd799cd0e6 Merge pull request #7597 from VersatusHPC/feat/omapi-sha256-default
feat: use HMAC-SHA256 by default on new EL and Ubuntu sites
2026-07-17 18:23:33 -03:00
Vinícius Ferrão bca1f4ba9e Merge pull request #7599 from xcat2/fix/issue-7093-xcatprobe-ss
fix(xcatprobe): prefer ss for listener checks
2026-07-17 18:18:40 -03:00
Vinícius Ferrão c41b51a1d9 Merge pull request #7584 from VersatusHPC/feat/xcat-release-rpm
feat: add xCAT-release package for DNF systems
2026-07-17 15:32:11 -03:00
Vinícius Ferrão 99d76dae6c fix: capitalize xCAT
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-17 15:09:09 -03:00
Vinícius Ferrão 6d59e60331 build(xcatprobe): declare listener tool dependency 2026-07-17 14:32:16 -03:00
Vinícius Ferrão 73b9368ff3 fix(xcatprobe): report listener inspection errors 2026-07-17 14:31:01 -03:00
Daniel Hilst 4a1cf4b0e8 Merge pull request #7586 from VersatusHPC/fix/issue-7512-ipmi-rakp2
fix(xcat-server): retry suite 3 on zero RAKP2 HMAC
2026-07-17 13:26:00 -03:00
Vinícius Ferrão ea490e9d48 fix(packaging): create release alias after signing
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-17 12:32:59 -03:00
Vinícius Ferrão daddfe0fb9 fix(packaging): verify xCAT repository metadata
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-17 12:32:25 -03:00
Vinícius Ferrão d6ee28fa11 feat(packaging): add xcat-release repository package
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-17 12:32:25 -03:00
Vinícius Ferrão 0a6f4506f1 Merge pull request #7585 from VersatusHPC/fix/xcat-profile-errexit
fix(xcat-client): make profile probe safe under errexit
2026-07-17 12:23:52 -03:00
Vinícius Ferrão b46d28ae1d test(xcatprobe): cover command output capture 2026-07-17 10:42:02 -03:00
Vinícius Ferrão b4ce09e132 test(xcatprobe): cover TCP listener detection 2026-07-16 21:31:08 -03:00
Vinícius Ferrão 3f7619903c test(dhcp): isolate OMAPI policy fixtures 2026-07-16 18:43:56 -03:00
Vinícius Ferrão 49a86ff2f3 test(dhcp): preserve SUSE OMAPI compatibility
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-16 17:22:39 -03:00
Vinícius Ferrão 6e4cffddc3 feat(dhcp): default new Ubuntu sites to HMAC-SHA256
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-16 17:19:19 -03:00
Vinícius Ferrão 424b2e3e9b feat(dhcp): default new EL sites to HMAC-SHA256
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-16 17:18:13 -03:00
Vinícius Ferrão 6a3f71bf68 fix(packaging): avoid SysV init paths in modern DEBs 2026-07-16 01:43:16 -03:00