Skip to content
This repository was archived by the owner on Feb 13, 2020. It is now read-only.

Commit

Permalink
Convert AbstractProject to Job according to pipelinize
Browse files Browse the repository at this point in the history
  • Loading branch information
ikikko committed Dec 31, 2016
1 parent e52acdf commit 88d2724
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 27 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.jenkinsci.plugins.typetalk.support;

import hudson.model.AbstractProject;
import hudson.model.Job;
import hudson.model.Result;
import hudson.model.Run;
import org.jenkinsci.plugins.workflow.job.WorkflowRun;
Expand Down Expand Up @@ -49,7 +49,7 @@ private boolean inProgressPipeline(Run build) {
return build instanceof WorkflowRun && build.getResult() == null;
}

public Emoji convertProjectToEmoji(AbstractProject project) {
public Emoji convertProjectToEmoji(Job project) {
switch (project.getIconColor()) {
case RED:
case RED_ANIME:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.jenkinsci.plugins.typetalk.support;

import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Job;
import hudson.model.Run;
import jenkins.model.Jenkins;
import org.apache.commons.lang.StringUtils;
Expand Down Expand Up @@ -46,7 +45,7 @@ public String buildMessageWithBuild(Run build) {
return builder.toString();
}

public String buildMessageWithProject(AbstractProject project) {
public String buildMessageWithProject(Job project) {
final String rootUrl = Jenkins.getInstance().getRootUrl();
if (StringUtils.isEmpty(rootUrl)) {
throw new IllegalStateException("Root URL isn't configured yet. Cannot compute absolute URL.");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.jenkinsci.plugins.typetalk.webhookaction;

import hudson.model.AbstractProject;
import hudson.model.Job;
import org.jenkinsci.plugins.typetalk.support.Emoji;

import java.util.List;
Expand Down Expand Up @@ -37,13 +37,14 @@ public boolean isEmojiSet() {
return emoji != null;
}

private AbstractProject project;
// To be compatible, class and name are different
private Job project;

public AbstractProject getProject() {
public Job getProject() {
return project;
}

public void setProject(AbstractProject project) {
public void setProject(Job project) {
this.project = project;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.jenkinsci.plugins.typetalk.webhookaction;

import hudson.model.AbstractProject;
import hudson.model.Job;
import hudson.model.TopLevelItem;
import hudson.util.QueryParameterMap;
import jenkins.model.Jenkins;
Expand All @@ -17,7 +17,8 @@ public class WebhookRequest {

private JSONObject json;

private AbstractProject project;
// To be compatible, class and name are different
private Job project;

public WebhookRequest(StaplerRequest req) {
this.req = req;
Expand All @@ -27,10 +28,10 @@ public void parseQueryStringToProject() {
String p = new QueryParameterMap(req).get("project");
if (StringUtils.isNotBlank(p)) {
TopLevelItem item = Jenkins.getInstance().getItem(p);
if (!(item instanceof AbstractProject)) {
if (!(item instanceof Job)) {
throw new NoSuchProjectException(p);
}
project = ((AbstractProject) item);
project = ((Job) item);
}
}

Expand All @@ -50,7 +51,7 @@ public void parseBodyToJson() {
}
}

public AbstractProject getProject() {
public Job getProject() {
return project;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import hudson.model.*;
import jenkins.model.Jenkins;
import jenkins.model.ParameterizedJobMixIn;
import org.jenkinsci.plugins.typetalk.webhookaction.ResponseParameter;
import org.jenkinsci.plugins.typetalk.webhookaction.WebhookExecutor;
import org.jenkinsci.plugins.typetalk.webhookaction.WebhookRequest;
Expand Down Expand Up @@ -45,26 +46,33 @@ private void parseParameters() {
@Override
public void execute() {
TopLevelItem item = Jenkins.getInstance().getItem(project);
if (!(item instanceof AbstractProject)) {
if (!(item instanceof Job)) {
outputError(new ResponseParameter("Project [ " + project + " ] is not found"));
return;
}
AbstractProject project = ((AbstractProject) item);
Job project = ((Job) item);

if (!project.hasPermission(Item.BUILD)) {
String name = Jenkins.getAuthentication().getName();
outputError(new ResponseParameter(String.format("Project [ %s ] cannot be built by '%s'", this.project, name)));
return;
}

Jenkins.getInstance().getQueue().schedule(project, project.getQuietPeriod(), getParametersAction(project), getCauseAction());
if (!(project instanceof ParameterizedJobMixIn.ParameterizedJob)) {
String name = Jenkins.getAuthentication().getName();
outputError(new ResponseParameter(String.format("Project [ %s ] cannot be built by '%s'", this.project, name)));
return;
}
ParameterizedJobMixIn.ParameterizedJob job = ((ParameterizedJobMixIn.ParameterizedJob) project);

Jenkins.getInstance().getQueue().schedule(job, job.getQuietPeriod(), getParametersAction(project), getCauseAction());

ResponseParameter responseParameter = new ResponseParameter("Project [ " + this.project + " ] has been scheduled");
responseParameter.setProject(project);
output(responseParameter);
}

private Action getParametersAction(AbstractProject project) {
private Action getParametersAction(Job project) {
ParametersDefinitionProperty property = (ParametersDefinitionProperty) project.getProperty(ParametersDefinitionProperty.class);
if (property == null) {
return null;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package org.jenkinsci.plugins.typetalk.webhookaction.executorimpl;

import hudson.model.AbstractProject;
import hudson.model.ParameterDefinition;
import hudson.model.ParametersDefinitionProperty;
import hudson.model.TopLevelItem;
import hudson.model.*;
import jenkins.model.Jenkins;
import org.apache.commons.lang.StringUtils;
import org.jenkinsci.plugins.typetalk.support.Emoji;
Expand Down Expand Up @@ -107,10 +104,10 @@ private ResponseParameter getBuildResponseParameter() {

private ResponseParameter getProjectBuildResponseParameter(String p, boolean specifiedProjectWithQueryString) {
TopLevelItem item = Jenkins.getInstance().getItem(p);
if (!(item instanceof AbstractProject)) {
if (!(item instanceof Job)) {
throw new NoSuchProjectException(p);
}
AbstractProject project = ((AbstractProject) item);
Job project = ((Job) item);
ParametersDefinitionProperty property = (ParametersDefinitionProperty) project.getProperty(ParametersDefinitionProperty.class);

// description
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.jenkinsci.plugins.typetalk.webhookaction.executorimpl;

import hudson.model.AbstractProject;
import hudson.model.Job;
import hudson.model.TopLevelItem;
import jenkins.model.Jenkins;
import org.apache.commons.lang.StringUtils;
Expand Down Expand Up @@ -34,10 +34,10 @@ public void execute() {
Emoji CommandEmoji;

for (TopLevelItem item : Jenkins.getInstance().getItems()) {
if (!(item instanceof AbstractProject)) {
if (!(item instanceof Job)) {
continue;
}
AbstractProject project = ((AbstractProject) item);
Job project = ((Job) item);

if (pattern != null && !pattern.matcher(project.getName()).find()) {
continue;
Expand Down

0 comments on commit 88d2724

Please sign in to comment.