Repository navigation
test(system_test): add the catalog_build SVT theme - #5795
Open
Nagachandan-P wants to merge 6 commits into
Open
Nagachandan-P wants to merge 6 commits into
Nagachandan-P wants to merge 6 commits into
Conversation
Nagachandan-P
requested review from
RvishankarOMnia,
VenkateswaraVatam,
abhishek-sa1 and
snarthan
as code owners
November 12, 2026 10:29
Nagachandan-P
force-pushed
the
svt-catalog-build
branch
from
November 12, 2026 11:15
e2e4046 to
42b731c
Compare
Signed-off-by: Nagachandan-P <Nagachandan.p@dell.com>
Signed-off-by: Nagachandan-P <Nagachandan.p@dell.com>
Signed-off-by: Nagachandan P <Nagachandan.p@dell.com>
Signed-off-by: Nagachandan-P <Nagachandan.p@dell.com>
…omnia into svt-catalog-build
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.
Description of the Solution
Adds a new SVT theme,
catalog_build, to the system test framework from #5711. It runs Omnia catalogs one after another on an OIM: for each catalog it selects the catalog (
./omnia.sh --select-catalog), then runs the Repo Manager and Image Build Manager FVT steps (exec, thenverify). The result is one SVT report with one stage per catalog. The theme is defined as data in the same way as
build_stream, and it uses the shared runner, readiness checks,
--retry/--start-stageand the HTML/JSON report, so it doesn't add a separate execution loop.Related Issue
Changes
Theme definition (
test/system_test/library/vars/)catalog_vars.py(new): reads the catalog plan written at configure time and builds one stage per catalog (catalog_01,catalog_02, ...), its titleand its test cases, with IDs
SVT_CATALOG_BUILD_<NN><SS>.theme_vars.py: registers thecatalog_buildtheme (stages, soft stages, credential domains, cleanup and report settings), using the same fields asbuild_stream.force_rebuilddefaults totrue.test_case_vars.py: adds the generated catalog test cases toTEST_CASES.Catalog runtime (
test/system_test/library/functions/)catalog_settings.py(new): validates thecatalog_build:block (catalog list,include_aarch64,repo_config,caching_policy,repo_policies,force_rebuild,continue_on_failure,cleanup_between,steps).catalog_func.py(new):catalogs: allor an ordered list against./omnia.sh --list-catalogs, and skips aarch64 catalogs (with the reason) unlessinclude_aarch6 4: true;reports/catalog_build_plan.json;cleanup_between(none,images,reposorfull);ansible-playbook <domain>.ymlworkers and their child processes.Shared framework hooks (opt-in; build_stream tests don't use them)
test_func.py: optional test-case fields:action: run an SVT action (catalog select or skip) instead of an FVT step;always: run the test even after an earlier failure, used bycleanup_between;stop_leftovers: clean up leftover playbook processes after a failedexec.fvt_func.py: SVT actions show assvt <action> ...in the report.config_func.py: loads and validates thecatalog_build:block for the catalog theme.readiness_func.py: adds the initialization check "Catalog plan of this run (configure)".setup_func.py: makesbundled_catalogs()andselect_catalog()public._setup.py:--configureresolves the catalog plan and prints it; a plan error fails configure.svt_msgs.py: newCATALOG_MSGS.Configuration and inputs
catalog_build_test_config.yml(new): theme settings; ships withcatalogs: alland gives an ordered list as a commented example.dataset_generator/profiles/catalog_build.yml(new): input profile for omnia.env, repo_manager and image_build_manager.Documentation and tests
docs/CATALOG_BUILD.md(new): user guide covering prerequisites, quick start, settings reference, reading the report, retry/resume and troubleshooting.
catalog_build_design.md(new): design of the theme on the merged SVT framework.README.md: catalog_build section and link to the guide.ut/test_catalog_build.py(new): unit tests for settings, the plan, generated stages and tests, readiness, the select/skip/cleanup actions, leftover-process cleanup and the
run_svt_testhooks.Files Changed
test/system_test/catalog_build_test_config.ymlcatalogs: all, run-wide repo/image settings, steps, cleanup, report)test/system_test/catalog_build_design.mdtest/system_test/docs/CATALOG_BUILD.mdtest/system_test/dataset_generator/profiles/catalog_build.ymltest/system_test/library/vars/catalog_vars.pytest/system_test/library/functions/catalog_settings.pycatalog_build:blocktest/system_test/library/functions/catalog_func.py|
|
test/system_test/ut/test_catalog_build.py| Added | Unit tests for the theme ||
test/system_test/library/vars/theme_vars.py| Modified | Registers thecatalog_buildtheme ||
test/system_test/library/vars/test_case_vars.py| Modified | Adds the generated catalog test cases ||
test/system_test/library/functions/config_func.py| Modified | Loads the catalog settings for the catalog theme ||
test/system_test/library/functions/readiness_func.py| Modified | Catalog plan readiness check ||
test/system_test/library/functions/setup_func.py| Modified | Makes the catalog list/select helpers public ||
test/system_test/library/functions/test_func.py| Modified | Optionalaction/always/stop_leftoverstest-case fields ||
test/system_test/library/functions/fvt_func.py| Modified | Report label for SVT actions ||
test/system_test/library/messages/svt_msgs.py| Modified | Catalog messages ||
test/system_test/_setup.py| Modified | Configure writes and prints the catalog plan ||
test/system_test/README.md| Modified | catalog_build section and guide link |Testing
Unit tests:
.venv/bin/python -m pytest ut -qgives 40 passed.Static checks:
setup_func.pythat was already there.build_stream regression: test collection is unchanged (13 build_stream tests, same stages and soft stages).
End-to-end run on an OIM (RHEL 10.2, x86_64, run
svt-20261112T061055Z), with an explicit two-catalog list:rhel/10.2/slurm_x86_64_no_vast.jsonrhel/10.2/slurm_service_k8s_x86_64_no_vast.jsonSettings were
repo_config: partial,caching_policy: true,force_rebuild: true,continue_on_failure: trueandcleanup_between: none.run_vali dation.sh svt_catalog_build allexited 0, and the HTML/JSON report was generated withOVERALL STATUS: PASSED.Commands used:
• Not run:
• catalogs: all (every bundled catalog). It takes many hours; plan resolution and ordering for all are covered by unit tests.
• aarch64 catalogs ( include_aarch64: true ). No aarch64 build host was available.
• The GitLab pipeline generator for this theme isn't covered: it needs a configured run's plan file.
Backward Compatibility
• No breaking changes.
• The build_stream theme behaves exactly as before:
• the new test-case fields ( action , always , stop_leftovers ) are optional, and build_stream test cases don't set them;
• the catalog plan check runs only for catalog_build ;
• bundled_catalogs() / select_catalog() were only made public, with no change in behavior.
• No changes to user_inputs.yml , the src/ domain inputs or any FVT suite. The theme reuses the existing test/repo_manager and test/image_build_manag
er FVT runners.
• No migration needed. The new theme is opt-in via ./setup_env.sh --theme catalog_build .