|
4 | 4 | import com.fasterxml.jackson.databind.ObjectMapper;
|
5 | 5 | import hudson.model.Action;
|
6 | 6 | import hudson.model.BallColor;
|
7 |
| -import hudson.model.ParametersAction; |
8 |
| -import hudson.model.ParametersDefinitionProperty; |
| 7 | +import hudson.model.Item; |
| 8 | +import hudson.model.Queue; |
9 | 9 | import hudson.security.Permission;
|
10 | 10 | import hudson.util.HttpResponses;
|
| 11 | +import java.io.IOException; |
11 | 12 | import java.util.concurrent.ExecutionException;
|
12 | 13 | import java.util.concurrent.TimeoutException;
|
13 | 14 | import java.util.logging.Level;
|
14 | 15 | import java.util.logging.Logger;
|
15 | 16 | import net.sf.json.JSONObject;
|
16 | 17 | import org.jenkins.ui.icon.IconSpec;
|
| 18 | +import org.jenkinsci.plugins.workflow.cps.replay.ReplayAction; |
17 | 19 | import org.jenkinsci.plugins.workflow.job.WorkflowRun;
|
18 | 20 | import org.kohsuke.stapler.HttpResponse;
|
19 | 21 | import org.kohsuke.stapler.StaplerRequest2;
|
20 | 22 | import org.kohsuke.stapler.WebMethod;
|
| 23 | +import org.kohsuke.stapler.bind.JavaScriptMethod; |
| 24 | +import org.kohsuke.stapler.interceptor.RequirePOST; |
21 | 25 |
|
22 | 26 | public abstract class AbstractPipelineViewAction implements Action, IconSpec {
|
23 | 27 | private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
@@ -47,14 +51,24 @@ public String getBuildDisplayName() {
|
47 | 51 | return run.getDisplayName();
|
48 | 52 | }
|
49 | 53 |
|
50 |
| - public boolean isParameterized() { |
51 |
| - ParametersAction paramAction = run.getAction(ParametersAction.class); |
52 |
| - if (paramAction != null && !paramAction.getAllParameters().isEmpty()) { |
| 54 | + /** |
| 55 | + * Handles the rebuild request using ReplayAction feature |
| 56 | + */ |
| 57 | + @RequirePOST |
| 58 | + @JavaScriptMethod |
| 59 | + public boolean doRebuild() throws IOException, ExecutionException { |
| 60 | + if (run != null) { |
| 61 | + run.checkAnyPermission(Item.BUILD); |
| 62 | + ReplayAction replayAction = run.getAction(ReplayAction.class); |
| 63 | + Queue.Item item = |
| 64 | + replayAction.run2(replayAction.getOriginalScript(), replayAction.getOriginalLoadedScripts()); |
| 65 | + |
| 66 | + if (item == null) { |
| 67 | + return false; |
| 68 | + } |
53 | 69 | return true;
|
54 | 70 | }
|
55 |
| - |
56 |
| - ParametersDefinitionProperty property = run.getParent().getProperty(ParametersDefinitionProperty.class); |
57 |
| - return property != null && !property.getParameterDefinitions().isEmpty(); |
| 71 | + return false; |
58 | 72 | }
|
59 | 73 |
|
60 | 74 | public String getFullBuildDisplayName() {
|
|
0 commit comments