-
Notifications
You must be signed in to change notification settings - Fork 11
Development Guide
SandakovMM edited this page Jun 2, 2023
·
4 revisions
In the main scenario, the tool performs a series of checks and preparation actions prior to the conversion. It then proceeds to execute the conversion itself and performs post-actions afterwards. This entire process can be divided into a set of small components. These components are described using an abstract Action class. The actions are aggregated within an ActionFlow, which iterates through them and executes them one by one. Details about actions could be found in actions.
The conversion process is divided into four stages:
- Precheck - This stage involves checking if all the required conditions are met before starting the conversion. Parts of this stage are implemented by classes inherited from CheckAction. The flow class responsible for this stage is CheckFlow. The related function in
main.py
is is_required_conditions_satisfied. - Preparation - In this stage, all the necessary changes are made on the system prior to the conversion. Parts of this stage are implemented by classes inherited from ActiveAction. The flow class responsible for this stage is PrepareActionsFlow. At the end of this stage, the system needs to be rebooted to initiate the conversion process.
- Conversion - This stage is the core of the leapp itself, where the actual conversion takes place. We have no control over this process and simply wait until it is completed.
- Finish - In this stage, all the necessary post-conversion changes are made on the system. It's important to note that in this stage, we are already working inside AlmaLinux. Parts of this stage are implemented by classes inherited from ActiveAction. The flow class responsible for this stage is FinishActionsFlow. At the end of this stage, the system needs to be rebooted to enter a normal working state.