JENKINS-37873# Self link fix for branch queue items (#460)

This commit is contained in:
vivek 2016-09-01 19:13:57 -07:00 committed by GitHub
parent 1d0ce63b2c
commit a0d9e5a0b2
3 changed files with 27 additions and 6 deletions

View File

@ -34,6 +34,7 @@ import org.jvnet.hudson.test.MockFolder;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -366,6 +367,26 @@ public class MultiBranchTest extends PipelineBaseTest {
validateRun(b4, run.get(0));
}
@Test
public void startMultiBranchPipelineRuns() throws Exception {
WorkflowMultiBranchProject mp = j.jenkins.createProject(WorkflowMultiBranchProject.class, "p");
mp.getSourcesList().add(new BranchSource(new GitSCMSource(null, sampleRepo.toString(), "", "*", "", false),
new DefaultBranchPropertyStrategy(new BranchProperty[0])));
for (SCMSource source : mp.getSCMSources()) {
assertEquals(mp, source.getOwner());
}
WorkflowJob p = scheduleAndFindBranchProject(mp, "feature%2Fux-1");
j.waitUntilNoActivity();
Map resp = post("/organizations/jenkins/pipelines/p/branches/"+ Util.rawEncode("feature%2Fux-1")+"/runs/",
Collections.EMPTY_MAP);
String id = (String) resp.get("id");
String link = getHrefFromLinks(resp, "self");
Assert.assertEquals("/blue/rest/organizations/jenkins/pipelines/p/branches/feature%252Fux-1/queue/"+id+"/", link);
}
@Test
public void getMultiBranchPipelineActivityRuns() throws Exception {
WorkflowMultiBranchProject mp = j.jenkins.createProject(WorkflowMultiBranchProject.class, "p");

View File

@ -6,7 +6,7 @@ import hudson.model.Job;
import hudson.model.Queue;
import io.jenkins.blueocean.commons.ServiceException;
import io.jenkins.blueocean.rest.hal.Link;
import io.jenkins.blueocean.rest.model.BluePipeline;
import io.jenkins.blueocean.rest.hal.LinkResolver;
import io.jenkins.blueocean.rest.model.BlueQueueContainer;
import io.jenkins.blueocean.rest.model.BlueQueueItem;
import jenkins.model.Jenkins;
@ -51,17 +51,17 @@ public class QueueContainerImpl extends BlueQueueContainer {
* @return List of items newest first
*/
public static List<BlueQueueItem> getQueuedItems(Job job) {
BluePipeline pipeline = new AbstractPipelineImpl(job);
Link pipelineLink = LinkResolver.resolveLink(job);
if(job instanceof BuildableItem) {
BuildableItem task = (BuildableItem)job;
List<Queue.Item> items = Jenkins.getInstance().getQueue().getItems(task);
List<BlueQueueItem> items2 = Lists.newArrayList();
for (int i = 0; i < items.size(); i++) {
Link self = pipelineLink.rel("queue").rel(Long.toString(items.get(i).getId()));
items2.add(0, new QueueItemImpl(
items.get(i),
pipeline,
(items.size() == 1 ? job.getNextBuildNumber() : job.getNextBuildNumber() + i)));
job.getName(),
(items.size() == 1 ? job.getNextBuildNumber() : job.getNextBuildNumber() + i), self));
}
return items2;

View File

@ -74,7 +74,7 @@ public class RunContainerImpl extends BlueRunContainer {
* support running multiple builds at the same time, return a reference to the existing
* build.
*
* @return Qeueu item.
* @return Queue item.
*/
@Override
public BlueQueueItem create() {