While checking and refining some older bugs and feature request with David and Ancor, we came across an interesting one:
*Prevent the same YaST module from running twice at the same time*
We've been discussing the topic back and forth, identified some use-cases in which it would make sense, a few technical solutions and even more obstacles, but we decided it would make sense to ask for opinions at YaST Devel first.
Why to prevent from running the same twice?
- Some may click too fast and run two or more at the same time -> here you instantly see more modules starting - Some may start a YaST module, then do something else, overlook the first one, start another, ... then hard to say which one wins at the end and what would be the changes --> is that likely? - Two admins could run the same module without knowing about each other --> this may happen in remote session at COVID times
How to prevent from running them more times?
- Logging the PID, storing it at some file (module/client name), checking at startup (more PIDs in case of more sessions of the same?) - Either at YaST startup scripts (easier) or YaST core (some might skip using a startup script, is that likely?) - Showing a message (another special client) and offering some options, e.g., kill the other session, exiting - Offering a read-only mode (quite hard) for the second session - Another idea was to bring the UI to the front (only possible with Qt) instead of starting a new one
Some possible problems
- Some admins really just run YaST to see the current configuration, so preventing from running something twice might not be an option - Some YaST modules can be called from within another ones, e.g., Repositories from the Packager, what to do with that? - Some YaST modules can be called as a user; what if the user differs?
Quite some unknowns as you may see :) Is that worth it? Is there a simpler solution? Would that fit?
Links - https://bugzilla.suse.com/show_bug.cgi?id=959866 - https://jira.suse.com/browse/SLE-2999 (internal)
Thanks for your opinions Lukas