ISISComputingGroup / IBEX

Top level repository for IBEX stories
5 stars 2 forks source link

GUI: Reload configuration files from file system #3735

Open ThomasLohnert opened 5 years ago

ThomasLohnert commented 5 years ago

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.

Tom-Willemsen commented 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.

John-Holt-Tessella commented 5 years ago

What is the likelihood of this occurring? We should balance the added complexity against the usefulness.

Kevin-Woods-Tessella commented 5 years ago

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.

ChrisM-S commented 5 years ago

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!)

Kevin-Woods-Tessella commented 5 years ago

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.

ThomasLohnert commented 5 years ago

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.

John-Holt-Tessella commented 5 years ago

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.

ChrisM-S commented 5 years ago

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?

John-Holt-Tessella commented 5 years ago

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.