Conversation
* Probe, Install and Finish methods are exposed over the D-Bus object on /org/opensuse/DInstaller/Storage1. * Questions are registered through D-Bus.
Pull Request Test Coverage Report for Build 2933662478
💛 - Coveralls |
| end | ||
|
|
||
| ORDERED_SERVICES = [:language, :software, :users, :manager].freeze | ||
| ORDERED_SERVICES = [:questions, :language, :software, :storage, :users, :manager].freeze |
There was a problem hiding this comment.
when I see it question is what is future of that containerized dinstaller? if we want to keep container per process we need to update way how it is run. ( but as we do not have yet docker-compose or something similar, probably not big issue )
There was a problem hiding this comment.
Yes, we need to think a little bit about it. Actually, the questions service does not even depend on YaST at all.
| # Run a block in the target system | ||
| # | ||
| # @param block [Proc] Block to run on the target system | ||
| def on_target(&block) |
There was a problem hiding this comment.
this is something that I can imagine to have in WFM itself, just with additional param target
There was a problem hiding this comment.
It sounds like a good idea. I will make a note.
| Yast::WFM.CallFunction("inst_prepdisk", []) | ||
| start_progress(4) | ||
| progress.step("Preparing bootloader proposal") do | ||
| # first make bootloader proposal to be sure that required packages are installed |
There was a problem hiding this comment.
hmm, how this will work with separate processes? it first says which packages bootloader needs and then writes bootloader, but where it wait till it is installed?
There was a problem hiding this comment.
At that point, it adds the packages to the PackagesProposal (through D-Bus, thanks to our overriden PackagesProposal.
Later, when the bootloader is about to be installed, the packages should be there.
| <allow send_destination="org.opensuse.DInstaller.Questions" /> | ||
| <allow send_destination="org.opensuse.DInstaller.Questions" | ||
| send_interface="org.freedesktop.DBus.Introspectable"/> | ||
| <allow send_destination="org.opensuse.DInstaller.Questions" /> |
There was a problem hiding this comment.
Hm, this line is duplicate, overall this is equivalent to
<allow send_destination="org.opensuse.DInstaller.Questions" />
<allow receive_sender="org.opensuse.DInstaller.Questions" />
Problem
While working on #247 we found out that the manager might get blocked for quite some time while waiting for the user's answer. So we decided to implement the overdue move storage/bootloader to a separate process (#207).
However, this change introduces a bi-directional dependency between the storage and the manager (as storage needs to access the questions API). So we decided to move that API to a separate process too (extending #169).
Solution
org.opensuse.DInstaller.Storage.org.opensuse.DInstaller.Questions.Caveats
As
DInstaller::Securityis only used to set up the Linux Security Modules and it is closely related to bootloader, we decided to move its usage to this storage/bootloader process.Testing