vscode-openshift-tools
vscode-openshift-tools copied to clipboard
Process management for running odo cli instances
From @jeffmaury.
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
to check if there is a debug session already active, odo now has odo debug info command which gives information on an already running session. We have the json output PR in review https://github.com/openshift/odo/pull/2653