Repository navigation
test(orchestrator): adopt per-test logger contract in pxeboot suites - #5497
Open
balajikumaran-c-s wants to merge 3 commits into
Open
balajikumaran-c-s wants to merge 3 commits into
balajikumaran-c-s wants to merge 3 commits into
Conversation
Prepare the shared layer that the lifecycle suites build on. - omnia_auto lists skip reasons under the summary table, drops the expected/unexpected/framework skip classification, and the wheel is rebuilt. add_session_result takes an optional reason, so other domains are unchanged. - The test case registry gains the OIM negative cases, the local etcd media case, renumbered duplicate IDs, and per-suite order blocks. - The verification library adds local etcd media, control-plane reboot recovery, OIM negative inputs, and LDAP identity gating. Node removal keeps the heredoc delimiter off the PXE mapping and needs at least two Slurm compute nodes. Recovery helpers check the reboot authorization. Host-key cleanup runs through run_on_host, and progress and cleanup messages use omnia_auto log. Unused imports are removed. - Unit tests cover the etcd contracts, heredoc writes, the two-node removal minimum, host-key cleanup and progress logging. - The test automation standard and test_config documentation describe the new rules and settings. Refs dell#4849 Signed-off-by: balajikumaran-c-s <balajikumaran.cs@dell.com>
Each test now resolves its registry entry, creates its own TestLogger, and passes both to verify_precheck, verify_precheck_rejection, verify_cleanup or verify_nft. The result helpers only render the final record. Tests move into their suite order blocks (precheck 10000, prepare 20000, provision 30000, cleanup 50000, NFT 60000). Precheck adds the OIM negative cases: CPU, memory and disk thresholds, a missing admin NIC, PXE/public NIC overlap, air-gapped internet, an unreachable SSH target and an OS mismatch. They use verify_precheck_rejection, which passes only when the precheck rejects the input with an error. The provision boot image checks carry a boot_image marker so they run by default. verify_pxeboot keeps its (host, key, checker) form for now so the pxeboot suites are unchanged; the next change moves them to the same contract. The FVT README lists the new order blocks and test inventory. Refs dell#4849 Signed-off-by: balajikumaran-c-s <balajikumaran.cs@dell.com>
The pxeboot suites now create their own TestLogger, resolve their registry entry, and call verify_pxeboot(test_log, case, host, checker). Each suite moves into its order block (40100 to 42400) so cases run in dependency order, with reboot and node removal suites last. Negative cases leave the sanity marker set. Reboot and node remove/add tests carry the reboot and node_lifecycle markers and are deselected unless --marker selects them, even when the suite is named. Without a marker every other test runs; the runner no longer forces a sanity default. Register the benchmark, boot_image, powervault_* and node_lifecycle markers and drop the disruptive marker. Restore the Kubernetes local etcd media check and control-plane reboot recovery. Move the external LDAP proxy and backend checks from prepare to the slurm_ldap suite ahead of the LDAP login tests, and skip LDAP identity checks when validate_external_ldap is false. Update the README and run configuration reference for the marker rules. Refs dell#4849 Signed-off-by: balajikumaran-c-s <balajikumaran.cs@dell.com>
balajikumaran-c-s
requested review from
RvishankarOMnia,
VenkateswaraVatam,
abhishek-sa1,
snarthan and
sujit-jadhav
as code owners
October 9, 2026 19:33
This was referenced Oct 9, 2026
abhishek-sa1
approved these changes
Oct 10, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Title
test(orchestrator): adopt per-test logger contract in pxeboot suites
Description of the Solution
This is part 3 of 3 of the Orchestrator test automation update. It moves every pxeboot suite to the per-test logger contract and its order block. It also makes reboot and node remove/add tests opt-in through their own markers, and moves the external LDAP checks from prepare to the pxeboot
slurm_ldapsuite.Related Issue
Depends on parts 1 (#5495) and 2 (#5496) and contains their commits. Until they merge, review only the last commit here (
test(orchestrator): adopt per-test logger contract in pxeboot suites).Changes
pxeboot suites (
test/orchestrator/fvt/pxeboot)TestLogger, resolves its registry entry, and callsverify_pxeboot(test_log, case, host, checker).sanitymarker set; feature markers are function-level.Opt-in marker gating (
test/orchestrator/conftest.py,_run.py,library/vars/domain_vars.py)rebootand node remove/add tests carry the newnode_lifecyclemarker. Both are deselected unless--markerselects them, even when the suite is named; thedisruptivemarker is removed.sanitydefault for pxeboot, and full verify runs no longer excludenegativecases.benchmark,boot_imageandpowervault_*markers;SUITESlistsoim_readinessand places the reboot and lifecycle suites last.External LDAP move (
library/functions,fvt/prepare/openldap,fvt/pxeboot/slurm_ldap)external_ldap_pxeboot_func.pyreconciles and verifies the LDAP proxy and backend; the newtest_external_ldap.pyruns them ahead of the LDAP login tests (ORCH_FVT_PXEBOOT_V524,V525).openldap_enabledis now public for reuse.Result contract (
test/orchestrator/fvt/result.py)verify_pxeboottakes the test'sTestLoggerand registry case, completing the contract from part 2.Documentation (
test/orchestrator/README.md,test/orchestrator/docs/test_run_config.md)--marker rebootor--marker node_lifecycle.Files Changed
test/orchestrator/README.mdtest/orchestrator/_run.pysanitydefaulttest/orchestrator/conftest.pytest/orchestrator/docs/test_run_config.mdtest/orchestrator/fvt/result.pyverify_pxebootcontracttest/orchestrator/fvt/prepare/openldap/test_openldap.pytest/orchestrator/fvt/pxeboot/test_playbook.pytest/orchestrator/fvt/pxeboot/additional_cloud_init/(1 file)test/orchestrator/fvt/pxeboot/cloudinit/(1 file)test/orchestrator/fvt/pxeboot/connectivity/(1 file)test/orchestrator/fvt/pxeboot/coredns_coredhcp/(3 files)test/orchestrator/fvt/pxeboot/kubernetes_cluster/(3 files)test/orchestrator/fvt/pxeboot/kubernetes_etcd/(2 files)test/orchestrator/fvt/pxeboot/kubernetes_recovery/(1 file)rebootmarkertest/orchestrator/fvt/pxeboot/kubernetes_storage/(1 file)test/orchestrator/fvt/pxeboot/minimal_os/(1 file)test/orchestrator/fvt/pxeboot/mount_config/(1 file)test/orchestrator/fvt/pxeboot/powervault/conftest.pytest/orchestrator/fvt/pxeboot/powervault/(4 test files)test/orchestrator/fvt/pxeboot/slurm_apptainer/(6 files)rebootmarkertest/orchestrator/fvt/pxeboot/slurm_cluster/(3 files)test/orchestrator/fvt/pxeboot/slurm_dcgm/(2 files)test/orchestrator/fvt/pxeboot/slurm_gpu/(1 file)test/orchestrator/fvt/pxeboot/slurm_hpc_benchmarks/(5 files)test/orchestrator/fvt/pxeboot/slurm_infiniband/(1 file)test/orchestrator/fvt/pxeboot/slurm_jobs/(1 file)scheduler_state, dropsdisruptivetest/orchestrator/fvt/pxeboot/slurm_ldap/test_external_ldap.pytest/orchestrator/fvt/pxeboot/slurm_ldap/(2 other files)test/orchestrator/fvt/pxeboot/slurm_lifecycle/(1 file)node_lifecyclemarkertest/orchestrator/fvt/pxeboot/slurm_openmpi/(1 file)test/orchestrator/fvt/pxeboot/slurm_recovery/(1 file)rebootmarkertest/orchestrator/fvt/pxeboot/slurm_ucx/(1 file)test/orchestrator/fvt/pxeboot/vast_storage/(5 files)test/orchestrator/library/functions/__init__.pytest/orchestrator/library/functions/external_ldap_pxeboot_func.pytest/orchestrator/library/functions/openldap_prepare_func.pyopenldap_enabledtest/orchestrator/library/vars/domain_vars.pytest/orchestrator/ut/test_prepare_contracts.pyTesting
python3 -m pytest --confcutdir=ut ut -q(fromtest/orchestrator): 143 passed.python3 -m pytest fvt/pxeboot nft -m 'not deploy' --collect-only -qwith each marker choice:--marker reboot: 6 collected--marker node_lifecycle: 2 collected--marker reboot,node_lifecycle: 8 collectedBackward Compatibility
--marker rebootor--marker node_lifecycle. Runs that selected--marker disruptivemust switch to those markers.sanity.ORCH_FVT_PREPARE_V008/V012toORCH_FVT_PXEBOOT_V524/V525.Suggested Reviewers
@sujit-jadhav@abhishek-sa1@snarthan