Class PipelineNodeGraphVisitor

java.lang.Object
org.jenkinsci.plugins.workflow.graphanalysis.StandardChunkVisitor
io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeGraphVisitor
All Implemented Interfaces:
NodeGraphBuilder, org.jenkinsci.plugins.workflow.graphanalysis.SimpleChunkVisitor

public class PipelineNodeGraphVisitor extends org.jenkinsci.plugins.workflow.graphanalysis.StandardChunkVisitor implements NodeGraphBuilder
Author:
Vivek Pandey

Run your Jenkins instance with -DNODE-DUMP-ENABLED to turn on the logging when diagnosing bugs! You'll also need to have a logging config that enables debug for (at least) this class. Use -Djava.util.logging.config.file=./logging.properties to set a custom logging properties file from the command line, or do it from within the admin UI.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface io.jenkins.blueocean.rest.impl.pipeline.NodeGraphBuilder

    NodeGraphBuilder.NodeGraphBuilderFactory
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
     
     

    Fields inherited from class org.jenkinsci.plugins.workflow.graphanalysis.StandardChunkVisitor

    chunk
  • Constructor Summary

    Constructors
    Constructor
    Description
    PipelineNodeGraphVisitor(org.jenkinsci.plugins.workflow.job.WorkflowRun run)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    accumulatePipelineActions(org.jenkinsci.plugins.workflow.graph.FlowNode node)
    Find any Actions on this node, and add them to the pipelineActions collection until we can attach them to a FlowNodeWrapper.
    void
    atomNode(org.jenkinsci.plugins.workflow.graph.FlowNode before, org.jenkinsci.plugins.workflow.graph.FlowNode atomNode, org.jenkinsci.plugins.workflow.graph.FlowNode after, org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scan)
     
    void
    chunkEnd(org.jenkinsci.plugins.workflow.graph.FlowNode endNode, org.jenkinsci.plugins.workflow.graph.FlowNode afterBlock, org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scanner)
     
    void
    chunkStart(org.jenkinsci.plugins.workflow.graph.FlowNode startNode, org.jenkinsci.plugins.workflow.graph.FlowNode beforeBlock, org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scanner)
     
    protected Set<Action>
    Empty the pipelineActions buffer, returning its contents.
    Gives all pipeline nodes DAG graph
    List<io.jenkins.blueocean.rest.model.BluePipelineNode>
    getPipelineNodes(io.jenkins.blueocean.rest.hal.Link parent)
    Gives DAG graph as list of BluePipelineNode
    io.jenkins.blueocean.rest.model.BluePipelineStep
    getPipelineNodeStep(String id, io.jenkins.blueocean.rest.hal.Link parent)
    Give the step for given id
    List<io.jenkins.blueocean.rest.model.BluePipelineStep>
    getPipelineNodeSteps(io.jenkins.blueocean.rest.hal.Link parent)
    Gives all the steps in this pipeline
    List<io.jenkins.blueocean.rest.model.BluePipelineStep>
    getPipelineNodeSteps(String nodeId, io.jenkins.blueocean.rest.hal.Link parent)
    Gives all the steps inside given nodeId
    protected void
    handleChunkDone(org.jenkinsci.plugins.workflow.graphanalysis.MemoryFlowChunk chunk)
     
    boolean
     
    void
    parallelBranchEnd(org.jenkinsci.plugins.workflow.graph.FlowNode parallelStartNode, org.jenkinsci.plugins.workflow.graph.FlowNode branchEndNode, org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scanner)
     
    void
    parallelBranchStart(org.jenkinsci.plugins.workflow.graph.FlowNode parallelStartNode, org.jenkinsci.plugins.workflow.graph.FlowNode branchStartNode, org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scanner)
     
    void
    parallelEnd(org.jenkinsci.plugins.workflow.graph.FlowNode parallelStartNode, org.jenkinsci.plugins.workflow.graph.FlowNode parallelEndNode, org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scanner)
     
    void
    parallelStart(org.jenkinsci.plugins.workflow.graph.FlowNode parallelStartNode, org.jenkinsci.plugins.workflow.graph.FlowNode branchNode, org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scanner)
     
    protected void
    resetChunk(org.jenkinsci.plugins.workflow.graphanalysis.MemoryFlowChunk chunk)
     
    List<io.jenkins.blueocean.rest.model.BluePipelineNode>
    union(List<FlowNodeWrapper> previousNodes, io.jenkins.blueocean.rest.hal.Link parent)
    Create union of last successful run and this partial run

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • PipelineNodeGraphVisitor

      public PipelineNodeGraphVisitor(org.jenkinsci.plugins.workflow.job.WorkflowRun run)
  • Method Details

    • chunkStart

      public void chunkStart(@NonNull org.jenkinsci.plugins.workflow.graph.FlowNode startNode, @CheckForNull org.jenkinsci.plugins.workflow.graph.FlowNode beforeBlock, @NonNull org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scanner)
      Specified by:
      chunkStart in interface org.jenkinsci.plugins.workflow.graphanalysis.SimpleChunkVisitor
      Overrides:
      chunkStart in class org.jenkinsci.plugins.workflow.graphanalysis.StandardChunkVisitor
    • chunkEnd

      public void chunkEnd(@NonNull org.jenkinsci.plugins.workflow.graph.FlowNode endNode, @CheckForNull org.jenkinsci.plugins.workflow.graph.FlowNode afterBlock, @NonNull org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scanner)
      Specified by:
      chunkEnd in interface org.jenkinsci.plugins.workflow.graphanalysis.SimpleChunkVisitor
      Overrides:
      chunkEnd in class org.jenkinsci.plugins.workflow.graphanalysis.StandardChunkVisitor
    • handleChunkDone

      protected void handleChunkDone(@NonNull org.jenkinsci.plugins.workflow.graphanalysis.MemoryFlowChunk chunk)
      Overrides:
      handleChunkDone in class org.jenkinsci.plugins.workflow.graphanalysis.StandardChunkVisitor
    • resetChunk

      protected void resetChunk(@NonNull org.jenkinsci.plugins.workflow.graphanalysis.MemoryFlowChunk chunk)
      Overrides:
      resetChunk in class org.jenkinsci.plugins.workflow.graphanalysis.StandardChunkVisitor
    • parallelStart

      public void parallelStart(@NonNull org.jenkinsci.plugins.workflow.graph.FlowNode parallelStartNode, @NonNull org.jenkinsci.plugins.workflow.graph.FlowNode branchNode, @NonNull org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scanner)
      Specified by:
      parallelStart in interface org.jenkinsci.plugins.workflow.graphanalysis.SimpleChunkVisitor
      Overrides:
      parallelStart in class org.jenkinsci.plugins.workflow.graphanalysis.StandardChunkVisitor
    • parallelEnd

      public void parallelEnd(@NonNull org.jenkinsci.plugins.workflow.graph.FlowNode parallelStartNode, @NonNull org.jenkinsci.plugins.workflow.graph.FlowNode parallelEndNode, @NonNull org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scanner)
      Specified by:
      parallelEnd in interface org.jenkinsci.plugins.workflow.graphanalysis.SimpleChunkVisitor
      Overrides:
      parallelEnd in class org.jenkinsci.plugins.workflow.graphanalysis.StandardChunkVisitor
    • parallelBranchStart

      public void parallelBranchStart(@NonNull org.jenkinsci.plugins.workflow.graph.FlowNode parallelStartNode, @NonNull org.jenkinsci.plugins.workflow.graph.FlowNode branchStartNode, @NonNull org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scanner)
      Specified by:
      parallelBranchStart in interface org.jenkinsci.plugins.workflow.graphanalysis.SimpleChunkVisitor
      Overrides:
      parallelBranchStart in class org.jenkinsci.plugins.workflow.graphanalysis.StandardChunkVisitor
    • parallelBranchEnd

      public void parallelBranchEnd(@NonNull org.jenkinsci.plugins.workflow.graph.FlowNode parallelStartNode, @NonNull org.jenkinsci.plugins.workflow.graph.FlowNode branchEndNode, @NonNull org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scanner)
      Specified by:
      parallelBranchEnd in interface org.jenkinsci.plugins.workflow.graphanalysis.SimpleChunkVisitor
      Overrides:
      parallelBranchEnd in class org.jenkinsci.plugins.workflow.graphanalysis.StandardChunkVisitor
    • atomNode

      public void atomNode(@CheckForNull org.jenkinsci.plugins.workflow.graph.FlowNode before, @NonNull org.jenkinsci.plugins.workflow.graph.FlowNode atomNode, @CheckForNull org.jenkinsci.plugins.workflow.graph.FlowNode after, @NonNull org.jenkinsci.plugins.workflow.graphanalysis.ForkScanner scan)
      Specified by:
      atomNode in interface org.jenkinsci.plugins.workflow.graphanalysis.SimpleChunkVisitor
      Overrides:
      atomNode in class org.jenkinsci.plugins.workflow.graphanalysis.StandardChunkVisitor
    • accumulatePipelineActions

      protected void accumulatePipelineActions(org.jenkinsci.plugins.workflow.graph.FlowNode node)
      Find any Actions on this node, and add them to the pipelineActions collection until we can attach them to a FlowNodeWrapper.
    • drainPipelineActions

      protected Set<Action> drainPipelineActions()
      Empty the pipelineActions buffer, returning its contents.
    • getPipelineNodes

      public List<FlowNodeWrapper> getPipelineNodes()
      Description copied from interface: NodeGraphBuilder
      Gives all pipeline nodes DAG graph
      Specified by:
      getPipelineNodes in interface NodeGraphBuilder
    • getPipelineNodes

      public List<io.jenkins.blueocean.rest.model.BluePipelineNode> getPipelineNodes(io.jenkins.blueocean.rest.hal.Link parent)
      Description copied from interface: NodeGraphBuilder
      Gives DAG graph as list of BluePipelineNode
      Specified by:
      getPipelineNodes in interface NodeGraphBuilder
    • getPipelineNodeSteps

      public List<io.jenkins.blueocean.rest.model.BluePipelineStep> getPipelineNodeSteps(String nodeId, io.jenkins.blueocean.rest.hal.Link parent)
      Description copied from interface: NodeGraphBuilder
      Gives all the steps inside given nodeId
      Specified by:
      getPipelineNodeSteps in interface NodeGraphBuilder
    • getPipelineNodeSteps

      public List<io.jenkins.blueocean.rest.model.BluePipelineStep> getPipelineNodeSteps(io.jenkins.blueocean.rest.hal.Link parent)
      Description copied from interface: NodeGraphBuilder
      Gives all the steps in this pipeline
      Specified by:
      getPipelineNodeSteps in interface NodeGraphBuilder
    • getPipelineNodeStep

      public io.jenkins.blueocean.rest.model.BluePipelineStep getPipelineNodeStep(String id, io.jenkins.blueocean.rest.hal.Link parent)
      Description copied from interface: NodeGraphBuilder
      Give the step for given id
      Specified by:
      getPipelineNodeStep in interface NodeGraphBuilder
    • union

      public List<io.jenkins.blueocean.rest.model.BluePipelineNode> union(List<FlowNodeWrapper> previousNodes, io.jenkins.blueocean.rest.hal.Link parent)
      Description copied from interface: NodeGraphBuilder
      Create union of last successful run and this partial run
      Specified by:
      union in interface NodeGraphBuilder
    • isDeclarative

      public boolean isDeclarative()