2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-08-04 16:36:58 +00:00
Commit Graph

3352 Commits

Author SHA1 Message Date
Vinícius Ferrão 781d5e4163 fix(dhcp): preserve Kea reservations on makedhcp -n 2026-07-31 15:22:19 -03:00
Daniel Hilst eb76ddfbb6 Merge pull request #7673 from VersatusHPC/refactor/network-address-accumulation
refactor(network): centralize address accumulation
2026-07-27 15:32:09 -03:00
Daniel Hilst d4d9d5c859 Merge pull request #7690 from VersatusHPC/harvest/port80
fix(netboot): omit the default HTTP port from generated boot URLs
2026-07-27 15:15:18 -03:00
Daniel Hilst 8fc3a309a0 Merge pull request #7670 from VersatusHPC/harvest/macmap-cumulus-breakout
fix(MacMap): discover nodes on Cumulus breakout ports (swpNsM)
2026-07-27 11:09:39 -03:00
Daniel Hilst d28e7b39e2 Merge pull request #7643 from VersatusHPC/harvest/docs-manpage-clarifications
docs: port man-page clarifications from lenovobuild
2026-07-27 07:52:47 -03:00
Vinícius Ferrão 39f721713e fix(netboot): omit the default HTTP port from generated boot URLs
Boot URLs handed to nodes always carried an explicit :80 even when the HTTP
server listens on the default port. grub2.pm already omits the port when it is
80; make the xNBA, genesis and DHCP boot URLs consistent with it.

$portsuffix is empty when site.httpport is unset or 80 and ":<port>" otherwise,
so a non-default port is unchanged. Covers the ISC and Kea paths in dhcp.pm,
xnba.pm, mknb.pm, and the Kea xNBA client classes in BootPolicy.pm.

dhcp_boot_policy.t and mknb_xcatd_address.t follow the new URLs and gain cases
for a non-default and an unset port. The floating-address guard in
mknb_xcatd_address.t also drops :80 so that it keeps matching.

Recovered from the unmerged lenovobuild branch (cd61fd9d, a2f77ea9, 1035841b,
b7db0e2, 792fe6d).

Co-authored-by: Jarrod Johnson <10814490+jjohnson42@users.noreply.github.com>
2026-07-26 03:14:50 -03:00
Vinícius Ferrão a44e9fd819 refactor(kea): centralize service account lookup 2026-07-25 01:26:45 -03:00
Vinícius Ferrão 543eab3bdc fix(dhcp): reuse Kea control socket paths 2026-07-25 01:26:45 -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 0d97006e1d Merge pull request #7618 from VersatusHPC/harvest/formatnetmask-undef-guard
fix(NetworkUtils): guard formatNetmask against an undefined mask
2026-07-24 12:06:58 -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
Vinícius Ferrão 53c755fb28 refactor(network): centralize address accumulation 2026-07-23 21:13:26 -03:00
Vinícius Ferrão 93c5f3f04a fix(MacMap): discover nodes on Cumulus breakout ports (swpNsM)
Cumulus switch MAC discovery matched the fdb port with a regex that only
accepted a plain numeric swp name (dev swp([0-9]+)), then guessed among
swp5/05/swp05 formats. A node on a breakout port (swp1s0, swp1s1, ...) never
matched, so it was silently not discovered. Match any swp name (dev (swp[^ ]+))
and use it directly, dropping the format-guessing.

Gated: this whole block runs only for switchtype eq 'onie' (Cumulus/ONIE
switches); SNMP switches use a separate path and are unaffected.

Validated against real 'bridge fdb show' output (the stock iproute2 command
Cumulus runs over SSH): the old regex parses only 'dev swp1' and drops
'dev swp1s0'; the new regex parses both. Confirmed the environment on a booted
NVIDIA Cumulus VX 5.10.

Recovered from the unmerged lenovobuild branch (72d68bc7).
2026-07-23 20:39:52 -03:00
Vinícius Ferrão de3d68dd1d docs: port man-page clarifications from lenovobuild
Recover several man-page clarifications that never merged from the lenovobuild
branch.  All are documentation-only -- the man .pod sources with their
generated .rst, plus the networks-table description in Schema.pm:

  * makedhcp / nodeset: note that UEFI boot directives are intentionally
    omitted when nodetype.os names an OS without UEFI support, even for
    'nodeset shell'.
  * networks table dhcpserver: warn that it should be set only for service
    node operation and that <xcatmaster> is not a valid value.
  * noderange: clarify that the syntax is for xCAT.
  * reventlog: note that unimplemented sensor types yield 'No Mappings Found'
    and point to confluent's nodeeventlog facility.
  * rcons: document confluent console auto-reconnect (a randomized 2-4 minute
    retry, or 'ctrl-e o a' to force one); the original's stray backtick markup
    is corrected.

Recovered from the unmerged lenovobuild branch (originals 2d4f12f4, 760f2f8b,
23d63d59, 44b47c44, c63d780f, db4dc42b).

Co-authored-by: Jarrod Johnson <10814490+jjohnson42@users.noreply.github.com>
2026-07-22 22:00:51 -03:00
Vinícius Ferrão 2d294ae8f7 fix(NetworkUtils): guard formatNetmask against an undefined mask
formatNetmask() uses its first argument immediately (inet_aton($mask),
2**$mask, hex $mask) with no check that it is defined. Callers that pass an
undefined mask trigger "Use of uninitialized value" warnings and a
meaningless result instead of a clean failure.

Return undef up front when $mask is not defined.

Recovered from the unmerged lenovobuild branch (original acbbeb86).

Co-authored-by: Jarrod Johnson <10814490+jjohnson42@users.noreply.github.com>
2026-07-21 14:59:01 -03:00
Vinícius Ferrão 9b2c3e88ce Merge pull request #6793 from gurevichmark/secure_of
feat: Secured OF prompt
2026-07-20 12:09:35 -03:00
Vinícius Ferrão fd32ae6860 refactor(dbobjutils): reuse only-if matcher for table routing 2026-07-18 16:46:49 -03:00
Vinícius Ferrão c340abd543 fix(dhcp): use complete Ubuntu release for backend selection 2026-07-18 16:05:34 -03:00
Vinícius Ferrão 5467c1aef9 refactor(dhcp): reuse shared version comparison 2026-07-18 01:46:55 -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
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 c362904e0d docs(dhcp): clarify legacy OMAPI FIPS limits
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-17 16:09:05 -03:00
Vinícius Ferrão 52e2f2b332 refactor(dhcp): reuse shared version comparison
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-17 16:07:58 -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 d829be9e94 fix(packaging): make xcatd callers init-agnostic 2026-07-16 01:41:38 -03:00
Vinícius Ferrão 3cd74bbab0 fix(mknb): avoid transient discovery addresses 2026-07-15 21:20:26 -03:00
Vinícius Ferrão aa086a1bc9 feat(statelite): support NFS root mount options 2026-07-14 19:04:09 -03:00
Daniel Hilst 638f0d75c4 Fix xCAT 2.18 EL10 x86_64 package build issues
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-06-20 18:48:14 -03:00
Markus Hilger fa17f7072d Merge pull request #7563 from VersatusHPC/fix/isc-omapi-tsig-policy
feat: support configurable ISC OMAPI TSIG policy
2026-05-07 19:51:32 +02:00
Markus Hilger 5463a7c46c Merge pull request #7558 from VersatusHPC/fix/mkdef-partial-object-on-validation-error
fix: prevent mkdef partial writes on validation errors
2026-05-07 11:50:41 +02:00
Vinícius Ferrão ab86139959 Support configurable ISC OMAPI TSIG policy
Add a shared OMAPI policy helper for ISC DHCP and DDNS so administrators can select the key name, signing algorithm, and omshell path from the site table while preserving the existing xcat_key hmac-md5 default.

Keep local ISC updates from hanging indefinitely when omshell does not exit, and use a static host-declaration fallback for local Ubuntu ISC releases where omshell is unstable for xCAT host updates.

Co-authored-by: gskouson <1507929+gskouson@users.noreply.github.com>
2026-05-07 03:57:10 -03:00
Vinícius Ferrão 2ae97c2ac4 fix: prevent mkdef partial writes on validation errors 2026-05-06 20:40:38 -03:00
Vinícius Ferrão 2915e9be0e Add xCAT TLS policy selection 2026-05-05 23:20:18 -03:00
Vinícius Ferrão 7897f30bfe Modernize xcatd service packaging 2026-05-04 18:13:23 -03:00
Markus Hilger 2bdb0d4d02 Merge pull request #7540 from VersatusHPC/fix/remove-docker-lifecycle
fix: remove Docker container lifecycle management (dead code since 2016)
2026-05-04 17:15:58 +02:00
Vinícius Ferrão 4165b26a04 fix: remove Docker container lifecycle management (dead code since 2016)
Docker container lifecycle management (mgt=docker, mkdocker, rmdocker,
lsdocker) was added in 2015-2016 as an experiment targeting Docker API
v1.22 on Ubuntu only. Documentation and man pages were deliberately
removed in 2019 (PRs #6222 and #6324) with the original developer's
approval, noting that "the interface of Docker has become very simple
right now, so there is no value for xCAT to offer such functions."

The plugin was still being shipped but has had no functional code changes
since April 2016, was never listed as a valid mgt value in Schema.pm,
and no user ever filed an issue about it.

Removed:
- xCAT-server/lib/xcat/plugins/docker.pm (1,142 lines)
- xCAT/postscripts/setupdockerhost
- xCAT-server/share/xcat/scripts/setup-dockerhost-cert.sh
- xCAT-test/autotest/testcase/dockercommand/ (test cases)
- Docker attribute definitions in Schema.pm
- Client symlinks (mkdocker, rmdocker, lsdocker)
- Usage entries and dockerhost cert handling in credentials.pm
- Docker attribute documentation in man7 pages

The "Running xCAT in Docker" documentation (dockerized_xcat/) is
retained as it documents containerizing xCAT itself, not the removed
mgt=docker feature.

Closes #7518
2026-05-03 12:11:33 -03:00
Vinícius Ferrão 260ce4420d Add OpenBMC rspconfig user and alert support 2026-05-03 01:34:56 -03:00
Markus Hilger 0d4182c7d9 Merge pull request #7536 from VersatusHPC/fix/noderange-fork-stale-cache
fix: invalidate NodeRange caches inherited across fork
2026-05-03 02:41:55 +02:00
Vinícius Ferrão f139904c3e fix: invalidate NodeRange caches inherited across fork
xcatd forks child processes to handle plugin requests. The child
inherits NodeRange.pm's module-level caches (@allnodeset, %allgrphash,
@grplist) with their timestamps from the parent. If the parent had
populated these caches within the past 5 seconds, the child reuses
stale data that does not reflect database changes committed by other
requests that completed between cache population and the fork.

This causes non-deterministic failures in group-definition regression
tests (chdef_group, mkdef_group, rmdef_group) where lsdef -s runs
noderange expansion inside the forked plugin process and hits the
inherited stale cache that predates the mkdef -t group commit.

Track the PID at cache-build time and treat any cache built by a
different PID as expired, forcing a fresh database read in children.
2026-05-02 19:27:10 -03:00
Vinícius Ferrão 023beff053 Add Ubuntu 26.04 provisioning support 2026-05-01 11:13:45 -03:00
Vinícius Ferrão 1babd7b0e4 fix: improve Ubuntu LTS provisioning support 2026-04-29 18:19:12 -03:00
Vinícius Ferrão 0f606615b3 Fix Kea UEFI reservation boot policy 2026-04-28 03:35:53 -03:00
Vinícius Ferrão c5f4ac1a59 fix: remove only_if mgt=kvm guard from vm table attributes
Five vm attributes (vmhost, vmothersetting, vmmemory, vmcpus, vmnics)
had an only_if => 'mgt=kvm' guard in Schema.pm that silently hid them
from lsdef output unless mgt=kvm was set. The other 16 vm attributes
had no such guard. This inconsistency caused the documented regex
example in "Groups and Regular Expressions in Tables" to produce
incomplete output.

Fixes: xcat2/xcat-core#3006
2026-04-25 17:47:52 -03:00
Vinícius Ferrão e0e04f017d Render Kea additional classes by version 2026-04-23 19:39:25 -03:00
Vinícius Ferrão 714c0785b6 Preserve OPAL conf-file handling for Kea 2026-04-23 19:19:29 -03:00
Vinícius Ferrão c2a90293ea Address DHCP backend review findings 2026-04-23 18:41:42 -03:00
Vinícius Ferrão 88579fbd77 Wire DHCP unit tests into xcattest 2026-04-23 15:10:40 -03:00