Exclude poorly performing FlowGraphAction from action proxy results (#675)

This commit is contained in:
James William Dumay 2017-01-10 09:23:56 +11:00 committed by GitHub
parent fe65e25e6a
commit f7b63b40b1
6 changed files with 33 additions and 18 deletions

View File

@ -26,6 +26,7 @@ import io.jenkins.blueocean.rest.model.BlueRunContainer;
import io.jenkins.blueocean.rest.model.Container;
import io.jenkins.blueocean.rest.model.Resource;
import io.jenkins.blueocean.service.embedded.rest.AbstractPipelineImpl;
import io.jenkins.blueocean.service.embedded.rest.ActionProxiesImpl;
import io.jenkins.blueocean.service.embedded.rest.BlueFavoriteResolver;
import io.jenkins.blueocean.service.embedded.rest.BluePipelineFactory;
import io.jenkins.blueocean.service.embedded.rest.FavoriteImpl;
@ -392,7 +393,7 @@ public class MultiBranchPipelineImpl extends BlueMultiBranchPipeline {
@Override
public Collection<BlueActionProxy> getActions() {
return PipelineImpl.getActionProxies(mbp.getAllActions(), this);
return ActionProxiesImpl.getActionProxies(mbp.getAllActions(), this);
}
@Override

View File

@ -7,6 +7,7 @@ import io.jenkins.blueocean.rest.model.BluePipelineNode;
import io.jenkins.blueocean.rest.model.BluePipelineStep;
import io.jenkins.blueocean.rest.model.BluePipelineStepContainer;
import io.jenkins.blueocean.rest.model.BlueRun;
import io.jenkins.blueocean.service.embedded.rest.ActionProxiesImpl;
import org.jenkinsci.plugins.workflow.graph.FlowNode;
import org.jenkinsci.plugins.workflow.job.WorkflowRun;
import org.kohsuke.stapler.HttpResponse;
@ -101,7 +102,7 @@ public class PipelineNodeImpl extends BluePipelineNode {
@Override
public Collection<BlueActionProxy> getActions() {
return PipelineImpl.getActionProxies(node.getNode().getAllActions(), this);
return ActionProxiesImpl.getActionProxies(node.getNode().getAllActions(), this);
}
@Override

View File

@ -11,6 +11,7 @@ import io.jenkins.blueocean.rest.model.BlueActionProxy;
import io.jenkins.blueocean.rest.model.BlueInputStep;
import io.jenkins.blueocean.rest.model.BluePipelineStep;
import io.jenkins.blueocean.rest.model.BlueRun;
import io.jenkins.blueocean.service.embedded.rest.ActionProxiesImpl;
import io.jenkins.blueocean.service.embedded.rest.LogResource;
import jenkins.model.Jenkins;
import net.sf.json.JSONArray;
@ -93,7 +94,7 @@ public class PipelineStepImpl extends BluePipelineStep {
@Override
public Collection<BlueActionProxy> getActions() {
return PipelineImpl.getActionProxies(node.getNode().getActions(), this);
return ActionProxiesImpl.getActionProxies(node.getNode().getActions(), this);
}
@Override

View File

@ -109,7 +109,7 @@ public class AbstractPipelineImpl extends BluePipeline {
@Override
public Collection<BlueActionProxy> getActions() {
return getActionProxies(job.getAllActions(), this);
return ActionProxiesImpl.getActionProxies(job.getAllActions(), this);
}
@Override
@ -196,18 +196,6 @@ public class AbstractPipelineImpl extends BluePipeline {
return pipelinePath.toString();
}
public static Collection<BlueActionProxy> getActionProxies(List<? extends Action> actions, Reachable parent){
List<BlueActionProxy> actionProxies = new ArrayList<>();
for(Action action:actions){
if(action == null){
continue;
}
actionProxies.add(new ActionProxiesImpl(action, parent));
}
return actionProxies;
}
@Override
public Container<Resource> getActivities() {
return new Container<Resource>(){

View File

@ -147,7 +147,7 @@ public class AbstractRunImpl<T extends Run> extends BlueRun {
}
public Collection<BlueActionProxy> getActions() {
return AbstractPipelineImpl.getActionProxies(run.getAllActions(), this);
return ActionProxiesImpl.getActionProxies(run.getAllActions(), this);
}
public static BlueRun getBlueRun(Run r, Reachable parent){

View File

@ -1,5 +1,8 @@
package io.jenkins.blueocean.service.embedded.rest;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import hudson.model.Action;
import io.jenkins.blueocean.rest.Reachable;
import io.jenkins.blueocean.rest.hal.Link;
@ -8,14 +11,18 @@ import org.kohsuke.stapler.export.ExportedBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* @author Vivek Pandey
*/
public class ActionProxiesImpl extends BlueActionProxy {
private final Action action;
private final Reachable parent;
private static final Logger logger = LoggerFactory.getLogger(ActionProxiesImpl.class);
private static final ImmutableSet<String> BANNED_ACTIONS = ImmutableSet.of("org.jenkinsci.plugins.workflow.job.views.FlowGraphAction");
public ActionProxiesImpl(Action action, Reachable parent) {
this.action = action;
@ -54,4 +61,21 @@ public class ActionProxiesImpl extends BlueActionProxy {
}
return null;
}
public static Collection<BlueActionProxy> getActionProxies(List<? extends Action> actions, Reachable parent){
List<BlueActionProxy> actionProxies = new ArrayList<>();
for(Action action : Iterables.filter(actions, new Predicate<Action>() {
@Override
public boolean apply(Action action) {
return !BANNED_ACTIONS.contains(action.getClass().getName());
}
})){
if(action == null){
continue;
}
actionProxies.add(new ActionProxiesImpl(action, parent));
}
return actionProxies;
}
}