Skip to content

Fix NFT lifecycle baseline test and apptainer timeout - #5364

Open
SujalS27 wants to merge 2 commits into
dell:stagingfrom
SujalS27:orch_stage
Open

SujalS27 wants to merge 2 commits into
dell:stagingfrom
SujalS27:orch_stage

Conversation

@SujalS27

Copy link
Copy Markdown
Collaborator

PR Description

#4849
Summary

Add NFT lifecycle baseline test to prove complete fresh-install lifecycle from verified clean baseline, addressing [OMN-DEF
#850] . Also fixes apptainer timeout and OpenCHAMI cleanup issues.

Changes

NFT Lifecycle Test (Issue #850)

• Add test_lifecycle.py with two new NFT tests:
• test_clean_baseline : Runs cleanup with credentials preserved, verifies all cleanup postconditions (OpenCHAMI,
OpenLDAP, Slurm, Kubernetes, Artifacts)
• test_lifecycle_fresh_install : Runs precheck → prepare → provision from clean baseline, verifies all prepare and
provision postconditions
• Add lifecycle marker to domain configuration and conftest
• Add NFT lifecycle check functions: check_clean_baseline() and check_lifecycle_fresh_install()
• Preserve credentials during baseline cleanup to avoid interactive password prompts in subsequent prepare phase
• Improve NFT error messages to show concise failure details instead of generic HOW TO FIX boilerplate

Apptainer Timeout Fix

• Increase APPTAINER_DOWNLOAD_TIMEOUT_SECONDS from 1200s to 1800s to handle larger image downloads in pxeboot FVT

OpenCHAMI Cleanup Fix

• Replace ansible.builtin.pause with ansible.builtin.wait_for in OpenCHAMI cleanup to fix ENOTTY error on non-
interactive execution

Testing

Run the lifecycle NFT:

./run_validation.sh nft_orchestrator test --marker lifecycle

Expected result:

• test_clean_baseline passes (~120s)
• test_lifecycle_fresh_install passes (~800s)

Files Changed

• src/orchestrator/roles/cleanup/components/openchami/tasks/cleanup.yml
• test/orchestrator/conftest.py
• test/orchestrator/library/functions/init.py
• test/orchestrator/library/functions/nft_func.py
• test/orchestrator/library/vars/domain_vars.py
• test/orchestrator/library/vars/pxeboot_vars.py
• test/orchestrator/library/vars/test_case_vars.py
• test/orchestrator/nft/test_lifecycle.py (new)

- Add NFT lifecycle test (test_lifecycle.py) to prove complete fresh-install
  lifecycle from verified clean baseline, addressing OMN-DEF dell#850
- Increase apptainer image download timeout from 1200s to 1800s to handle
  larger image downloads
- Fix OpenCHAMI cleanup pause task causing ENOTTY error on non-interactive
  execution by replacing ansible.builtin.pause with ansible.builtin.wait_for
- Preserve credentials during lifecycle baseline cleanup to avoid interactive
  password prompts in subsequent prepare phase
- Improve NFT error messages to show concise failure details instead of
  generic HOW TO FIX boilerplate
- Add lifecycle marker to domain configuration and conftest

Signed-off-by: SujalS27 <sujal.sooryavamshi@dell.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants