Skip to content

Roadmap

Pierre Lasorak edited this page May 2, 2024 · 8 revisions

(ever increasing) list of todos

Further simplify user experience

... by starting the process manager inside the drunc-unified-shell.

Broadcaster/logging

  • Make use of the ERS Python bindings and ditch RCBroadcaster. One needs to implement a LogHandler for that so that all the logging.info are transformed into ERS calls
  • Make the ERS py binding not mandatory.
  • Develop the concept of promise, where the client (parent object) expects a certain type of message sent via ERS by the children.

Authorisation/Authentication

drunc mocks the authorisation system by requiring a token for each command. The reason this is not more fletched out is because we have not yet figured out how to do this with CERN/FNAL SSO.

Kubernetes process manager

This is a sufficiently large task to be here. Once this is done drunc can finally become drunk (DUNE RUN K8s-based control).

Session manager

Needs to be designed and created.

UIs

Right now we have some very simplistic CLIs that require the user to have 3 terminal windows open. We need to figure out how the WebUI will connect to the drunc endpoints and their interactions.

Controller development

FSM sequence commands

It is not possible to send sequence commands right now. I think the only way to do this is in the server-side controller because the parent controller should be able to send a command resulting in many smaller FSM commands being executed. Unfortunately, this is a relatively complicated thing to do.

FSM interfaces

Needs to be extended to include (these are low-hanging fruits):

  • run number service from database
  • run configuration saver to database
  • ELisA logbook
  • DocDB logbook
  • pin threading

These are not low-hanging fruits:

  • Transition sequences (run_start run_stop, shutdown)
  • Related to the above custom FSM. I plan to do that with transition sequences (so for example, start

Include/Exclude to take a child parameter

The controller should be able to exclude not only self but one or more of its children.

Process manager

User management

It's unclear whether this is possible with SSH, but it would be nice to be able to start processes as different users.

Services

Again it is unclear what is the relation between drunc and generic DAQ services. I suspect we would need a drunc way to start services and grab their logs, whether and how this needs to interact with daq-kube/pocket is still to be figured out.

Clone this wiki locally