Repository navigation
test(orchestrator): adopt per-test logger contract outside pxeboot - #5496
Open
balajikumaran-c-s wants to merge 2 commits into
Open
balajikumaran-c-s wants to merge 2 commits into
balajikumaran-c-s wants to merge 2 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>
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 outside pxeboot
Description of the Solution
This is part 2 of 3 of the Orchestrator test automation update. It moves the precheck, prepare, provision, cleanup and NFT tests to the per-test logger contract and their suite order blocks, and adds the OIM negative precheck cases. Each test resolves its registry entry and creates its own
TestLogger; the result helpers only render the final record and enforce it.Related Issue
Depends on part 1 (#5495) and contains its commit. Until part 1 merges, review only the second commit here (
test(orchestrator): adopt per-test logger contract outside pxeboot). Part 3 (#5497) builds on this branch.Changes
Result contract (
test/orchestrator/fvt/result.py,test/orchestrator/nft/result.py)verify_precheck,verify_cleanupandverify_nfttake the test'sTestLoggerand registry case instead of a registry key.verify_precheck_rejectionpasses only when a precheck rejects an invalid input with an error.verify_pxebootkeeps its(host, key, checker)form in this PR so the pxeboot suites are unchanged; part 3 moves it to the same contract.Precheck (
test/orchestrator/fvt/precheck)ORCH_FVT_PRECHECK_V110-V117).negativeandmount_configmarkers instead of a modulepytestmarkthat also marked themsanity.Prepare, provision and cleanup (
test/orchestrator/fvt/prepare,provision,cleanup)boot_imagemarker instead offunctional, so they run when no marker is selected.NFT (
test/orchestrator/nft)Documentation (
test/orchestrator/fvt/README.md,test/orchestrator/nft/README.md)Files Changed
test/orchestrator/fvt/README.mdtest/orchestrator/fvt/result.pytest/orchestrator/fvt/cleanup/artifacts/test_artifacts.pytest/orchestrator/fvt/cleanup/credentials/test_credentials.pytest/orchestrator/fvt/cleanup/kubernetes/test_kubernetes.pytest/orchestrator/fvt/cleanup/openchami/test_openchami.pytest/orchestrator/fvt/cleanup/openldap/test_openldap.pytest/orchestrator/fvt/cleanup/slurm/test_slurm.pytest/orchestrator/fvt/cleanup/test_playbook.pytest/orchestrator/fvt/precheck/dependencies/test_dependencies.pytest/orchestrator/fvt/precheck/environment/test_environment.pytest/orchestrator/fvt/precheck/inputs/test_inputs.pytest/orchestrator/fvt/precheck/oim_readiness/test_oim_hardware.pytest/orchestrator/fvt/precheck/oim_readiness/test_oim_network.pytest/orchestrator/fvt/precheck/oim_readiness/test_oim_prerequisites.pytest/orchestrator/fvt/precheck/storage/test_storage.pytest/orchestrator/fvt/precheck/storage/test_storage_config_validation.pytest/orchestrator/fvt/precheck/test_playbook.pytest/orchestrator/fvt/prepare/network/test_network.pytest/orchestrator/fvt/prepare/openchami/test_openchami.pytest/orchestrator/fvt/prepare/test_playbook.pytest/orchestrator/fvt/provision/openchami/test_provision_state.pyboot_imagemarkertest/orchestrator/fvt/provision/test_playbook.pytest/orchestrator/nft/README.mdtest/orchestrator/nft/result.pytest/orchestrator/nft/test_idempotency.pytest/orchestrator/nft/test_lifecycle.pytest/orchestrator/nft/test_performance.pytest/orchestrator/nft/test_security.pyTesting
python3 -m pytest --confcutdir=ut ut -q(fromtest/orchestrator): 143 passed.python3 -m pytest fvt nft --collect-only -q: 311 tests collected, no collection errors. Every pxeboot caller (135) still uses the(host, key, checker)form.verify_pxebootwas exercised with stub checkers: pass, skip (reason recorded) and failure (assertion raised).Backward Compatibility
verify_precheck,verify_cleanuporverify_nftmust pass theTestLoggerand case; all callers in the repository are updated.Suggested Reviewers
@sujit-jadhav@abhishek-sa1