intellij-openshift-connector
intellij-openshift-connector copied to clipboard
Process management for running odo cli instances
[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