Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-44981

Developer can see node steps within the step listing

    Details

    • Similar Issues:
    • Sprint:
      Blue Ocean 1.2-beta1, Blue Ocean 1.2-beta2, Blue Ocean 1.2-beta3, Blue Ocean 1.2-beta4, Blue Ocean 1.2, Blue Ocean 1.3, Blue Ocean 1.4 - beta 1, Blue Ocean 1.4 - beta 3, Blue Ocean 1.4 - beta 2, Blue Ocean 1.6 - beta 2, Blue Ocean - 1.6 - beta 4

      Description

      Scope

      • Show the start of a node step as a Step in the Blue Ocean UI
      • Its description should be
        • its "cause of blockage" when blocked
        • its "agent value" when executed or running
      • Name is "allocate-node" - can we set a more user friendly name?
        • "node" as this matches the step name
      • Statuses
        • Allocating node is queued
        • Allocated node is success
        • Aborted node step is aborted (might need other changes from the refactor)
      • We need at a minimum some unit tests in Blue Ocean

      Out of scope

      • Indenting block scoped steps, etc

        Attachments

          Issue Links

            Activity

            Hide
            abayer Andrew Bayer added a comment - - edited

            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.
            Show
            abayer Andrew Bayer added a comment - - edited 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.
            Show
            abayer Andrew Bayer added a comment - Preliminary PR up at https://github.com/jenkinsci/workflow-durable-task-step-plugin/pull/42
            Hide
            abayer Andrew Bayer added a comment -

            Added a bunch more related PRs here.

            Show
            abayer Andrew Bayer added a comment - Added a bunch more related PRs here.
            Hide
            abayer Andrew Bayer added a comment -

            So wow, this part (rather than JENKINS-44636, a necessary antecedent of this and what the PRs are actually solving at the moment) is...a challenge. The core thing is that Blue Ocean doesn't do anything with block-scoped steps, just stages/parallel branches and atomic steps. Meaning PipelineStepVisitor is not very friendly to this sort of thing. So this may take a bit more work than I'd originally hoped.

            Show
            abayer Andrew Bayer added a comment - So wow, this part (rather than JENKINS-44636 , a necessary antecedent of this and what the PRs are actually solving at the moment) is...a challenge. The core thing is that Blue Ocean doesn't do anything with block-scoped steps, just stages/parallel branches and atomic steps. Meaning PipelineStepVisitor is not very friendly to this sort of thing. So this may take a bit more work than I'd originally hoped.
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Andrew Bayer
            Path:
            src/main/java/org/jenkinsci/plugins/workflow/actions/ExecutorTaskInfoAction.java
            http://jenkins-ci.org/commit/workflow-api-plugin/779e794da1cf806ee9de3792d2fa7c42c7e12fba
            Log:
            JENKINS-44981 Action for tracking node block queued/running status

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Andrew Bayer Path: src/main/java/org/jenkinsci/plugins/workflow/actions/ExecutorTaskInfoAction.java http://jenkins-ci.org/commit/workflow-api-plugin/779e794da1cf806ee9de3792d2fa7c42c7e12fba Log: JENKINS-44981 Action for tracking node block queued/running status
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Andrew Bayer
            Path:
            src/main/java/org/jenkinsci/plugins/workflow/actions/ExecutorTaskInfoAction.java
            http://jenkins-ci.org/commit/workflow-api-plugin/779e794da1cf806ee9de3792d2fa7c42c7e12fba
            Log:
            JENKINS-44981 Action for tracking node block queued/running status

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Andrew Bayer Path: src/main/java/org/jenkinsci/plugins/workflow/actions/ExecutorTaskInfoAction.java http://jenkins-ci.org/commit/workflow-api-plugin/779e794da1cf806ee9de3792d2fa7c42c7e12fba Log: JENKINS-44981 Action for tracking node block queued/running status
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Andrew Bayer
            Path:
            pom.xml
            src/main/java/org/jenkinsci/plugins/workflow/pipelinegraphanalysis/GenericStatus.java
            src/main/java/org/jenkinsci/plugins/workflow/pipelinegraphanalysis/StatusAndTiming.java
            src/test/java/org/jenkinsci/plugins/workflow/pipelinegraphanalysis/StatusAndTimingTest.java
            http://jenkins-ci.org/commit/pipeline-graph-analysis-plugin/63fd83731918f29e5ac98080a5a0ab234bc89257
            Log:
            JENKINS-44981 Add GenericStatus.QUEUED and related logic

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Andrew Bayer Path: pom.xml src/main/java/org/jenkinsci/plugins/workflow/pipelinegraphanalysis/GenericStatus.java src/main/java/org/jenkinsci/plugins/workflow/pipelinegraphanalysis/StatusAndTiming.java src/test/java/org/jenkinsci/plugins/workflow/pipelinegraphanalysis/StatusAndTimingTest.java http://jenkins-ci.org/commit/pipeline-graph-analysis-plugin/63fd83731918f29e5ac98080a5a0ab234bc89257 Log: JENKINS-44981 Add GenericStatus.QUEUED and related logic
            Hide
            michaelneale Michael Neale added a comment -

            Chatting to Andrew Bayer need some more design thought on how to present this

            Show
            michaelneale Michael Neale added a comment - Chatting to Andrew Bayer need some more design thought on how to present this
            Hide
            jamesdumay James Dumay added a comment -

            Andrew Bayer Michael Neale what more design thought is needed other than to show than "entering a node should show as a step"?

            Show
            jamesdumay James Dumay added a comment - Andrew Bayer Michael Neale what more design thought is needed other than to show than "entering a node should show as a step"?
            Hide
            svanoort Sam Van Oort added a comment -

            We probably need to show the end of a block IF it has an ErrorAction on it that doesn't mimick the last non-BlockEndNode – because blocks themselves can fail.

            Show
            svanoort Sam Van Oort added a comment - We probably need to show the end of a block IF it has an ErrorAction on it that doesn't mimick the last non-BlockEndNode – because blocks themselves can fail.
            Hide
            jiangty_addepar Damien Jiang added a comment - - edited

            Hi, I noticed this has been in progress for many months; is there a projected release date for it?

            Show
            jiangty_addepar Damien Jiang added a comment - - edited Hi, I noticed this has been in progress for many months; is there a projected release date for it?

              People

              • Assignee:
                sophistifunk Josh McDonald
                Reporter:
                jamesdumay James Dumay
              • Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated: