Add a partial kickstart install test (#308) #522

Merged
adamwill merged 1 commit from partial-kickstart into main 2026-04-21 01:14:09 +00:00
Owner

We also split out the _do_root_and_user stuff from
_do_install_and_reboot into a separate test module. This makes
the logic for the partial kickstart install easier, but it's also
just the right thing to do anyway; those things used to be part
of _do_install_and_reboot because you did them while the install
was actually running, but we stopped that since Fedora 31, so it
didn't make any sense for them to be in that module any more.

Signed-off-by: Adam Williamson awilliam@redhat.com

We also split out the _do_root_and_user stuff from _do_install_and_reboot into a separate test module. This makes the logic for the partial kickstart install easier, but it's also just the right thing to do anyway; those things used to be part of _do_install_and_reboot because you did them while the install was actually running, but we stopped that since Fedora 31, so it didn't make any sense for them to be in that module any more. Signed-off-by: Adam Williamson <awilliam@redhat.com>
adamwill force-pushed partial-kickstart from ca9576f7e6
Some checks failed
CI via Tox and perl / tox (pull_request) Successful in 1m37s
CI via Tox and perl / perl (pull_request) Failing after 3m33s
CI via Tox and perl / checkwiki (pull_request) Successful in 39s
to ff7a4caed6
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m24s
CI via Tox and perl / perl (pull_request) Successful in 3m36s
CI via Tox and perl / checkwiki (pull_request) Successful in 33s
AI Code Review / ai-review (pull_request_target) Successful in 21s
2026-04-20 22:24:31 +00:00
Compare

AI Code Review

📋 MR Summary

This MR splits out the user and root password creation logic from _do_install_and_reboot.pm into a new module _do_root_and_user.pm. It also introduces support for a PARTIAL_KICKSTART variable, which skips the user/root password creation step during partial kickstart installations.

  • Key Changes:
    • Extracted user and root password setup logic into a standalone test module tests/_do_root_and_user.pm.
    • Added the PARTIAL_KICKSTART variable to VARIABLES.md and added logic in main.pm to conditionally skip user/root creation when it is set.
    • Updated comments in utils.pm and _graphical_wait_login.pm to reference the newly renamed module.
    • Added a new template configuration install_kickstart_partial in templates.fif.json.
  • Impact: tests/_do_install_and_reboot.pm, tests/_do_root_and_user.pm, main.pm, lib/utils.pm, tests/_graphical_wait_login.pm, templates.fif.json, VARIABLES.md
  • Risk Level: 🟢 Low - The changes mostly involve refactoring existing procedural code into a new file and adjusting conditional module loads. No complex logic is altered, and changes appropriately isolate specific test logic without introducing apparent structural issues.

Detailed Code Review

The refactoring is clean and effectively addresses the goal described in the MR. Splitting the user creation from the install step improves modularity and makes skipping it for partial kickstart testing straightforward. No critical security, performance, or logic issues were found during the review. Code transitions well, and references in other files were appropriately updated.

Summary

  • Overall Assessment: The changes are straightforward, logically sound, and successfully separate user creation from the installation process. No critical issues identified.

🤖 AI Code Review | Generated with ai-code-review | Model: gemini-3.1-pro-preview

⚠️ AI-generated suggestions may be incorrect. Verify before applying. Not a replacement for human review.

## AI Code Review ### 📋 MR Summary This MR splits out the user and root password creation logic from `_do_install_and_reboot.pm` into a new module `_do_root_and_user.pm`. It also introduces support for a `PARTIAL_KICKSTART` variable, which skips the user/root password creation step during partial kickstart installations. - **Key Changes:** - Extracted user and root password setup logic into a standalone test module `tests/_do_root_and_user.pm`. - Added the `PARTIAL_KICKSTART` variable to `VARIABLES.md` and added logic in `main.pm` to conditionally skip user/root creation when it is set. - Updated comments in `utils.pm` and `_graphical_wait_login.pm` to reference the newly renamed module. - Added a new template configuration `install_kickstart_partial` in `templates.fif.json`. - **Impact:** tests/_do_install_and_reboot.pm, tests/_do_root_and_user.pm, main.pm, lib/utils.pm, tests/_graphical_wait_login.pm, templates.fif.json, VARIABLES.md - **Risk Level:** 🟢 Low - The changes mostly involve refactoring existing procedural code into a new file and adjusting conditional module loads. No complex logic is altered, and changes appropriately isolate specific test logic without introducing apparent structural issues. ### Detailed Code Review The refactoring is clean and effectively addresses the goal described in the MR. Splitting the user creation from the install step improves modularity and makes skipping it for partial kickstart testing straightforward. No critical security, performance, or logic issues were found during the review. Code transitions well, and references in other files were appropriately updated. ### ✅ Summary - **Overall Assessment:** The changes are straightforward, logically sound, and successfully separate user creation from the installation process. No critical issues identified. --- 🤖 **AI Code Review** | Generated with [ai-code-review](https://gitlab.com/redhat/edge/ci-cd/ai-code-review) | **Model:** `gemini-3.1-pro-preview` ⚠️ *AI-generated suggestions may be incorrect. Verify before applying. Not a replacement for human review.*
adamwill force-pushed partial-kickstart from ff7a4caed6
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m24s
CI via Tox and perl / perl (pull_request) Successful in 3m36s
CI via Tox and perl / checkwiki (pull_request) Successful in 33s
AI Code Review / ai-review (pull_request_target) Successful in 21s
to 1351991d07
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m26s
CI via Tox and perl / perl (pull_request) Successful in 3m29s
CI via Tox and perl / checkwiki (pull_request) Successful in 33s
2026-04-20 22:53:23 +00:00
Compare
adamwill force-pushed partial-kickstart from 1351991d07
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m26s
CI via Tox and perl / perl (pull_request) Successful in 3m29s
CI via Tox and perl / checkwiki (pull_request) Successful in 33s
to 4adffd25a7
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m24s
CI via Tox and perl / perl (pull_request) Successful in 3m31s
CI via Tox and perl / checkwiki (pull_request) Successful in 37s
2026-04-20 23:10:32 +00:00
Compare
adamwill force-pushed partial-kickstart from 4adffd25a7
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m24s
CI via Tox and perl / perl (pull_request) Successful in 3m31s
CI via Tox and perl / checkwiki (pull_request) Successful in 37s
to 7d719e8962
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m24s
CI via Tox and perl / perl (pull_request) Successful in 3m31s
CI via Tox and perl / checkwiki (pull_request) Successful in 33s
2026-04-20 23:29:56 +00:00
Compare
adamwill force-pushed partial-kickstart from 7d719e8962
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m24s
CI via Tox and perl / perl (pull_request) Successful in 3m31s
CI via Tox and perl / checkwiki (pull_request) Successful in 33s
to b4e92ee6c1
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m36s
CI via Tox and perl / perl (pull_request) Successful in 3m34s
CI via Tox and perl / checkwiki (pull_request) Successful in 33s
AI Code Review / ai-review (pull_request_target) Successful in 21s
2026-04-20 23:42:11 +00:00
Compare

AI Code Review

📋 MR Summary

This MR separates the root and user password setup logic from the main install and reboot module into a new _do_root_and_user test module. It also introduces support for a PARTIAL_KICKSTART installation by adjusting the test flow accordingly.

  • Key Changes:
    • Added PARTIAL_KICKSTART variable to documentation and test templates.
    • Moved _do_root_and_user logic from tests/_do_install_and_reboot.pm to a new tests/_do_root_and_user.pm module.
    • Modified main.pm to conditionally load software selection and the new _do_root_and_user.pm module based on PARTIAL_KICKSTART.
    • Updated _boot_to_anaconda.pm to handle language/layout selection skipping if PARTIAL_KICKSTART is set.
    • Fixed references in various files from _do_install_and_reboot to _do_root_and_user.
  • Impact: main.pm, lib/utils.pm, tests/_do_install_and_reboot.pm, tests/_do_root_and_user.pm, tests/_boot_to_anaconda.pm, tests/_software_selection.pm, templates.fif.json, VARIABLES.md
  • Risk Level: 🟢 Low - The changes mostly involve a safe code refactoring (extracting a subroutine into its own file) and adding a new test execution path without altering the primary behavior of existing paths.

Detailed Code Review

The changes look solid and well-reasoned. Splitting out the user/root setup into a separate module cleans up the _do_install_and_reboot step logically. The addition of the PARTIAL_KICKSTART condition handles the test branching cleanly. Documentation has been properly updated for the newly introduced variable. No major issues were found, just a few cleanups and verifications regarding the conditional execution flows.

Summary

  • Overall Assessment: No critical issues identified. The code refactoring is clean, and the logic aligns well with the stated intent.
  • Minor Suggestions:
    • Ensure tests/_do_root_and_user.pm is included in test distribution/installation manifests if applicable.
    • Verify whether install_kickstart_partial in templates.fif.json needs further variable settings comparable to standard kickstarts.

🤖 AI Code Review | Generated with ai-code-review | Model: gemini-3.1-pro-preview

⚠️ AI-generated suggestions may be incorrect. Verify before applying. Not a replacement for human review.

## AI Code Review ### 📋 MR Summary This MR separates the root and user password setup logic from the main install and reboot module into a new `_do_root_and_user` test module. It also introduces support for a `PARTIAL_KICKSTART` installation by adjusting the test flow accordingly. - **Key Changes:** - Added `PARTIAL_KICKSTART` variable to documentation and test templates. - Moved `_do_root_and_user` logic from `tests/_do_install_and_reboot.pm` to a new `tests/_do_root_and_user.pm` module. - Modified `main.pm` to conditionally load software selection and the new `_do_root_and_user.pm` module based on `PARTIAL_KICKSTART`. - Updated `_boot_to_anaconda.pm` to handle language/layout selection skipping if `PARTIAL_KICKSTART` is set. - Fixed references in various files from `_do_install_and_reboot` to `_do_root_and_user`. - **Impact:** main.pm, lib/utils.pm, tests/_do_install_and_reboot.pm, tests/_do_root_and_user.pm, tests/_boot_to_anaconda.pm, tests/_software_selection.pm, templates.fif.json, VARIABLES.md - **Risk Level:** 🟢 Low - The changes mostly involve a safe code refactoring (extracting a subroutine into its own file) and adding a new test execution path without altering the primary behavior of existing paths. ### Detailed Code Review The changes look solid and well-reasoned. Splitting out the user/root setup into a separate module cleans up the `_do_install_and_reboot` step logically. The addition of the `PARTIAL_KICKSTART` condition handles the test branching cleanly. Documentation has been properly updated for the newly introduced variable. No major issues were found, just a few cleanups and verifications regarding the conditional execution flows. ### ✅ Summary - **Overall Assessment:** No critical issues identified. The code refactoring is clean, and the logic aligns well with the stated intent. - **Minor Suggestions:** - Ensure `tests/_do_root_and_user.pm` is included in test distribution/installation manifests if applicable. - Verify whether `install_kickstart_partial` in `templates.fif.json` needs further variable settings comparable to standard kickstarts. --- 🤖 **AI Code Review** | Generated with [ai-code-review](https://gitlab.com/redhat/edge/ci-cd/ai-code-review) | **Model:** `gemini-3.1-pro-preview` ⚠️ *AI-generated suggestions may be incorrect. Verify before applying. Not a replacement for human review.*
Author
Owner
Reporting PR: https://forge.fedoraproject.org/quality/fedora_openqa/pulls/135
Author
Owner

This works in staging, merging.

This [works in staging](https://openqa.stg.fedoraproject.org/tests/6282978), merging.
adamwill force-pushed partial-kickstart from b4e92ee6c1
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m36s
CI via Tox and perl / perl (pull_request) Successful in 3m34s
CI via Tox and perl / checkwiki (pull_request) Successful in 33s
AI Code Review / ai-review (pull_request_target) Successful in 21s
to 9d0a1092e6
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m26s
CI via Tox and perl / perl (pull_request) Successful in 3m34s
CI via Tox and perl / checkwiki (pull_request) Successful in 33s
2026-04-20 23:59:44 +00:00
Compare
Author
Owner

Well, actually, I'll do a full compose run first to check the flow changes don't break anything else.

Well, actually, I'll do a [full compose run](https://openqa.stg.fedoraproject.org/tests/overview?version=44&distri=fedora&build=Fedora-44-20260420.1&groupid=1) first to check the flow changes don't break anything else.
Author
Owner

Note on dropping MEMCHECK from the _software_selection bail-out path in the move: there's only one test where MEMCHECK is set (memory_check), and in that test, PACKAGE_SET is set to "workstation". So we never actually hit this path. I probably put it in at a time when the memory_check test used "default" as the package set.

Note on dropping `MEMCHECK` from the _software_selection bail-out path in the move: there's only one test where `MEMCHECK` is set (`memory_check`), and in that test, `PACKAGE_SET` is set to "workstation". So we never actually hit this path. I probably put it in at a time when the memory_check test used "default" as the package set.
Author
Owner

Full compose run looks good. Merging.

Full compose run looks good. Merging.
adamwill deleted branch partial-kickstart 2026-04-21 01:14:09 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
quality/os-autoinst-distri-fedora!522
No description provided.