Repository navigation
test(orchestrator): update verification library and unit tests - #5495
Open
balajikumaran-c-s wants to merge 1 commit into
Open
balajikumaran-c-s wants to merge 1 commit into
balajikumaran-c-s wants to merge 1 commit 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>
balajikumaran-c-s
requested review from
RvishankarOMnia,
VenkateswaraVatam,
abhishek-sa1,
snarthan and
sujit-jadhav
as code owners
October 9, 2026 19:33
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): update verification library and unit tests
Description of the Solution
This is part 1 of 3 of the Orchestrator test automation update. It updates the shared layer the lifecycle suites build on: omnia_auto skip reporting, the test case registry and order blocks, the verification library (local etcd, reboot recovery, OIM negative inputs, LDAP identity gating, safe node removal), and their unit tests. No FVT/NFT test file changes in this PR, so the existing suites keep running unchanged.
Related Issue
Merge order: this PR, then part 2 (#5496), then part 3 (#5497).
Changes
omnia_auto reporting (
test/plugins)add_session_resulttakes an optionalreason, and skip reasons are listed under the summary table. Other domains do not pass it, so their output is unchanged.omnia_auto-1.0.0-py3-none-any.whl.Test case registry (
test/orchestrator/library/vars)TEST_ORDER_BLOCKSandORDER_BLOCK_SIZEdefine one 100-number order block per suite, with lifecycle bases 10000 apart.ORCH_FVT_PRECHECK_V110-V117) and the local etcd media case (ORCH_FVT_PXEBOOT_V523); renumbered the duplicate IDs (V519-V522,V225-V227) and registered the external LDAP cases under pxeboot (V524,V525).OIM_NEGATIVE_INPUTSholds the invalid inputs for the negative precheck cases;PXEBOOT_COMMANDSgainsssh_remove_host_key.Verification library (
test/orchestrator/library/functions)check_oim_pxe_nic_presentandcheck_oim_ssh_preflightaccept an override for negative cases (keyword-only, default unchanged); addedcheck_oim_forced_pxe_public_overlap.ldap_identity_skipskips LDAP identity checks whenvalidate_external_ldapis false.OMNIA_EOFcannot enter the PXE mapping; node removal skips when the mapping has fewer than twoslurm_nodeentries and discards a stale backup.rebootauthorization instead ofdisruptive; the Slurm drain check no longer gates itself, so its marker decides when it runs.sinfo %Tbroke string formatting.ssh-keygenthroughrun_on_host; polling and cleanup messages useomnia_auto.loginstead ofprint.Unit tests (
test/orchestrator/ut)test_kubernetes_etcd_contracts.py; addedORCH_UT_090-ORCH_UT_094(heredoc write, two-node removal minimum, stale-backup cleanup, host-key runner, progress logging).Documentation (
docs/code-style,test/orchestrator/docs)test_playbook.py, naming, credential scope, README, UT, and omnia_auto rules.test_config.mddocuments the newexpected_etcd_disk_mediasetting.Files Changed
docs/code-style/test_automation.mdtest/orchestrator/docs/test_config.mdexpected_etcd_disk_mediasettingtest/orchestrator/test_config.ymlexpected_etcd_disk_mediaand node-removal commenttest/orchestrator/library/functions/__init__.pytest/orchestrator/library/functions/_powervault_helpers.pytest/orchestrator/library/functions/_pxeboot_helpers.pytest/orchestrator/library/functions/_workload_helpers.pytest/orchestrator/library/functions/apptainer_jobs_pxeboot_func.pytest/orchestrator/library/functions/apptainer_recovery_pxeboot_func.pytest/orchestrator/library/functions/apptainer_runtime_pxeboot_func.pytest/orchestrator/library/functions/dcgm_pxeboot_func.pytest/orchestrator/library/functions/hpc_benchmarks_pxeboot_func.pytest/orchestrator/library/functions/kubernetes_recovery_pxeboot_func.pytest/orchestrator/library/functions/kubernetes_runtime_pxeboot_func.pytest/orchestrator/library/functions/minimal_os_pxeboot_func.pytest/orchestrator/library/functions/mount_config_precheck_func.pytest/orchestrator/library/functions/mount_config_pxeboot_func.pytest/orchestrator/library/functions/oim_readiness_precheck_func.pytest/orchestrator/library/functions/powervault_pxeboot_func.pytest/orchestrator/library/functions/slurm_auth_pxeboot_func.pytest/orchestrator/library/functions/slurm_jobs_pxeboot_func.pytest/orchestrator/library/functions/slurm_lifecycle_pxeboot_func.pytest/orchestrator/library/functions/slurm_recovery_pxeboot_func.pytest/orchestrator/library/functions/vast_storage_pxeboot_func.pytest/orchestrator/library/messages/precheck_msgs.pytest/orchestrator/library/vars/__init__.pytest/orchestrator/library/vars/precheck_vars.pyOIM_NEGATIVE_INPUTStest/orchestrator/library/vars/pxeboot_vars.py%T, host-key commandtest/orchestrator/library/vars/test_case_vars.pytest/orchestrator/ut/README.mdtest/orchestrator/ut/test_additional_cloud_init_contracts.pytest/orchestrator/ut/test_cleanup_contracts.pytest/orchestrator/ut/test_kubernetes_etcd_contracts.pytest/orchestrator/ut/test_pxeboot_contracts.pytest/plugins/dist/omnia_auto-1.0.0-py3-none-any.whltest/plugins/docs/06_report.mdtest/plugins/omnia_auto/functions/formatting_func.pytest/plugins/omnia_auto/functions/report_func.pytest/plugins/omnia_auto/functions/report_html.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, so the unchanged suites still import the updated library.Backward Compatibility
add_session_result(reason=...)is optional.skip_typeor skip badges.rebootauthorization; with the current conftest those cases skip instead of rebooting until part 3 adds the marker gating.Suggested Reviewers
@sujit-jadhav@abhishek-sa1