So initial investigation:
- WorkspaceAction actually has all the info you'd want once the node block has actually landed on an agent and is running - it's on the StartStartNode FlowNode for the ExecutorStep, it's got methods like action.getNode() (which returns "" for master and the agent name for anything else) and action.getPath() for the workspace path, etc. It also shows up on StepStartNode for WorkspaceStep, but that's easy enough to distinguish. Buuuuut...
- That leaves us with needing an action for queuing/cause of blockage, and no way of recording any additional information we might want (like time in queue - though I suppose you could reverse engineer that from the TimingAction on the StepStartNode with the WorkspaceAction and the second StepStartNode with isBody() == true. I dunno - I've never quite grokked why there are two StepStartNode for things like ExecutorStep). So I'm leaning towards a new action after all.
- "Allocate node" is the display name for ExecutorStep - so if we want something different there, we'd need to special-case ExecutorStep.
- re: aborted status - probably the simplest thing would be just to check if the StepStartNode for ExecutorStep (a) has a StepEndNode corresponding to it and (b) doesn't have a WorkspaceAction. That'd pretty directly mean it was aborted. But hey, if we're going with a new action, we can embed this too.
So initial investigation: