Open ThomasLohnert opened 5 years ago
g.reload_current_config()
does this (from a python console). It may be a case of triggering the same method from the GUI.
What is the likelihood of this occurring? We should balance the added complexity against the usefulness.
What is the use case behind the request? By which I mean, the user's request to re-load configuration files is driven by something else - it is a means to an end (he or she does not want to re-load configurations files for sheer fun!). What is the end goal? What is the user attempting to achieve? That will give us a clue as to the usefulness of the request. It might even help us to identify a better to way to achieve what the user wants to do.
This sounds like accidental deletion (by a user) of a configuration. Given we have the details in the local repository, is this more a means of providing an undo command without requiring the user to resort to the git command line? (or even the supporter!)
Oops. I didn't see that Thomas had already included an example use-case. Apologies.
OK. If the use-case is "I've deleted my config file, I want to re-load it", then, given that we provide facilities for recovering it (i.e. git
), I think that a facility to re-load the file is merely a convenience and is not high priority.
The use-case is not reverting the configs back in the file system, but getting it to show up again in the IBEX client afterwards (this applies to any change to the configurations that may have happened outside of the IBEX client). Currently this requires restarting the Blockserver to get the two in sync again. Are we expecting scientists/users to have this level of interaction with IBEX? It just seems like it could be made a lot easier with little effort.
This came up in the training course from one of the participants acting how they would reasonably expect users to act in the client i.e. breaking things by accident, and then trying to undo it.
It is quite complicated to do this. This is what happened in the old system but it never quite worked correctly. Unless the users are doing this often, in which case why are they, maybe there is a better way to support that workflow instead.
Does this issue also occur if changes to configurations are made by a separate IBEX client? I assume this would have to be read/write enabled client?
Another client writes to the configuration through the one block server so that any changes are captured and reflected back to both clients. The block-server is just not looking at the underlying files it assumes that it is the only one who will change them. It does read them on startup and this is why restarting the block server refreshes the file.
As a user, I would like to be able to reload the configuration files from the file system. Currently they are read once when starting up the blockserver, which then provides the data for display in the GUI. This means currently the blockserver has to be restarted to pick up when configurations/components/synoptics ... have been changed by something other than the IBEX Client.
Add a manual "refresh" button to the menu and/or reinstate some kind of file system watcher.
Example Use Case: The config repository has to be reverted via git after a configuration was accidentally deleted.