intellij-openshift-connector icon indicating copy to clipboard operation
intellij-openshift-connector copied to clipboard

Process management for running odo cli instances

Open jeffmaury opened this issue 5 years ago • 0 comments

[kind/Enhancement]

Which functionality do you think we should update/improve?

While working on the odo based explorer to JBoss Tools, I noticed that we are starting long running process and those processes are not managed / controlled once launched. I think we should do and I will explain my proposition. The long processes are the following:

  • watch
  • follow log
  • debug

Less critical , we also have describe, list services and component and in general each time we launch odo in a terminal. This is less critical because they are less long living. The problem that we have is:

  • we should stop them when context is switched
  • we should stop them when tooling stops (seems VSCode is handling that properly)
  • we should stop them when we undeploy/delete a component

Another plus is that managing them will prevent multiple executions of the same task and control of state for the debug.

Here is my proposition: each time we start a long running process we keep it at the OdoCli (for JBoss Tools / IJ) level in a map that is keyed by project / application / component / action-type. Then, we can:

  • while processing delete / undeploy, scan the map to find proper processes to stop
  • while processing debug we can check that debug is already running or not
  • for cleanup before tooling exit or context switch we should add a reset method (this is required btw for proxy support as we need to recompute the HTTPS_PROXY env variable that will be passed to future odo executions

Why is this needed?

jeffmaury avatar Mar 05 '20 10:03 jeffmaury