- Services will have a list of issues.
- Services will refresh the list of issues after some actions (e.g., probing, calculating a proposal, etc).
- Each issue indicates its source (e.g., system, config, commit).
- Clients will check the list of issues for each service.
- There is no need of a validation interface. The issues have a severity.
This document exposes some weak points with the current D-Bus API for Agama (former D-Installer) and proposes some possible improvements. Most of the issues addressed here are related to how deliver and retrieve information of each service and from the overall process, for example, the status of a service, the progress report, the general installation status, etc.
Let's start describing the main DInstaller
service, which is the central point for managing the overall installation process:
org.opensuse.DInstaller
- Devices are activated (e.g., iSCSI, DASD, etc) and no probing is done yet.
- After activation, current proposal is invalidated if any of its candidate devices is not available anymore (requires soft-probing).
- A probing has to be requested in order to see the new devices.
- The previous proposal is lost and a new one has to be requested.
In the UI, all this implies:
D-Installer is going to add support for connecting to iSCSI targets. For that, the current D-Installer D-Bus API has to be extended. This document analyzes how other projects (i.e., UDisks
) do it and proposes some possible approaches. At the end of the document there is a section for addressing some current issues with the status of the services, which would also imply some API re-design.
Let's start by describing how UDisks2
organizes its API:
org.freedesktop.UDisks2
D-Installer already shipped an initial CLI prototype for managing and driving the installation process. Note that such a CLI was created as a proof of concept, and its current API needs some refactoring. This document is intended to discuss how the new CLI should look like, what patterns to follow, etc.
There already are guidelines for creating modern CLI applications. For example clig.dev defines a guide that is agnostic about programming languages and tooling in general, and it can be perfectly used as reference for D-Installer CLI.
Now WSLg supports GUI applications. In order to avoid having different images for each SLE product (e.g., SLES, SLED, etc), the firstboot should provide a way to decide what product to use.
In this document we describe different options to achieve that.
The installation process follows a set of phases. Only the main service (DInstaller::Manager
) knowns the information about the current installation phase. The rest of services will act as utility services without any knowledge about the whole installation process.
A client (e.g., web UI) will ask to the main service for the current phase of the installation.
In principle, the installation will follow 3 possible phases: Startup, Config and Install.