Initial commit
This commit is contained in:
parent
4046c47e55
commit
cb312f43a6
|
@ -56,7 +56,7 @@ public class BlueMessageEnricher extends MessageEnricher {
|
|||
public void enrich(@Nonnull Message message) {
|
||||
|
||||
// TODO: Replace once https://issues.jenkins-ci.org/browse/JENKINS-36286 is done
|
||||
message.set(EventProps.Jenkins.jenkins_org, OrganizationImpl.INSTANCE.getName());
|
||||
message.set(EventProps.Jenkins.jenkins_org, OrganizationImpl.DEFAULT_ORGANIZATION.getName());
|
||||
|
||||
String channelName = message.getChannelName();
|
||||
if (channelName.equals(Events.JobChannel.NAME)) {
|
||||
|
@ -80,7 +80,7 @@ public class BlueMessageEnricher extends MessageEnricher {
|
|||
|
||||
// TODO: Replace once https://issues.jenkins-ci.org/browse/JENKINS-36286 is done
|
||||
private static @Nonnull Link getLink(@Nonnull ParameterizedJobMixIn.ParameterizedJob job) {
|
||||
Link orgLink = new Link("/rest/organizations/" + OrganizationImpl.INSTANCE.getName());
|
||||
Link orgLink = new Link("/rest/organizations/" + OrganizationImpl.DEFAULT_ORGANIZATION.getName());
|
||||
|
||||
if (job instanceof WorkflowJob) {
|
||||
ItemGroup<? extends Item> parent = job.getParent();
|
||||
|
|
|
@ -122,7 +122,11 @@
|
|||
<artifactId>token-macro</artifactId>
|
||||
<version>1.12.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.jenkins-ci.plugins</groupId>
|
||||
<artifactId>jenkins-organizations</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
@ -58,7 +58,7 @@ public class AbstractRunImpl<T extends Run> extends BlueRun {
|
|||
|
||||
@Override
|
||||
public String getOrganization() {
|
||||
return OrganizationImpl.INSTANCE.getName();
|
||||
return OrganizationImpl.DEFAULT_ORGANIZATION.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -247,7 +247,7 @@ public class AbstractRunImpl<T extends Run> extends BlueRun {
|
|||
@Override
|
||||
public Link getLink() {
|
||||
if(parent == null){
|
||||
return OrganizationImpl.INSTANCE.getLink().rel(String.format("pipelines/%s/runs/%s", run.getParent().getName(), getId()));
|
||||
return OrganizationImpl.DEFAULT_ORGANIZATION.getLink().rel(String.format("pipelines/%s/runs/%s", run.getParent().getName(), getId()));
|
||||
}
|
||||
return parent.rel("runs/"+getId());
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ public abstract class BluePipelineFactory implements ExtensionPoint {
|
|||
Item nextStep = findNextStep(Jenkins.getInstance(), item);
|
||||
|
||||
for (BluePipelineFactory f : all()) {
|
||||
Resource r = f.resolve(nextStep, OrganizationImpl.INSTANCE.getPipelines(), item);
|
||||
Resource r = f.resolve(nextStep, OrganizationImpl.DEFAULT_ORGANIZATION.getPipelines(), item);
|
||||
if (r!=null) return r;
|
||||
}
|
||||
return null;
|
||||
|
|
|
@ -43,12 +43,12 @@ public class MultiBranchPipelineImpl extends BlueMultiBranchPipeline {
|
|||
private final Link self;
|
||||
public MultiBranchPipelineImpl(MultiBranchProject mbp) {
|
||||
this.mbp = mbp;
|
||||
this.self = OrganizationImpl.INSTANCE.getLink().rel("pipelines").rel(PipelineImpl.getRecursivePathFromFullName(this));
|
||||
this.self = OrganizationImpl.DEFAULT_ORGANIZATION.getLink().rel("pipelines").rel(PipelineImpl.getRecursivePathFromFullName(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getOrganization() {
|
||||
return OrganizationImpl.INSTANCE.getName();
|
||||
return OrganizationImpl.DEFAULT_ORGANIZATION.getName();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,15 +1,19 @@
|
|||
package io.jenkins.blueocean.service.embedded.rest;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import hudson.Extension;
|
||||
import hudson.model.Item;
|
||||
import io.jenkins.blueocean.commons.ServiceException;
|
||||
import io.jenkins.blueocean.rest.ApiHead;
|
||||
import io.jenkins.blueocean.rest.hal.Link;
|
||||
import io.jenkins.blueocean.rest.model.BlueOrganization;
|
||||
import io.jenkins.blueocean.rest.model.BlueOrganizationContainer;
|
||||
import jenkins.model.Jenkins;
|
||||
import org.jenkinsci.plugins.jenkinsorganizations.JenkinsOrganizationFolder;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* {@link BlueOrganizationContainer} for the embedded use
|
||||
|
@ -22,20 +26,29 @@ public class OrganizationContainerImpl extends BlueOrganizationContainer {
|
|||
|
||||
@Override
|
||||
public BlueOrganization get(String name) {
|
||||
validateOrganization(name);
|
||||
return OrganizationImpl.INSTANCE;
|
||||
if(OrganizationImpl.DEFAULT_ORGANIZATION.getName().equals(name)){
|
||||
return OrganizationImpl.DEFAULT_ORGANIZATION;
|
||||
} else {
|
||||
Item item = Jenkins.getInstance().getItem(name);
|
||||
if(item instanceof JenkinsOrganizationFolder) {
|
||||
return new OrganizationImpl((JenkinsOrganizationFolder) item);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator<BlueOrganization> iterator() {
|
||||
return Collections.<BlueOrganization>singleton(OrganizationImpl.INSTANCE).iterator();
|
||||
}
|
||||
|
||||
protected void validateOrganization(String organization){
|
||||
if (!organization.equals(Jenkins.getActiveInstance().getDisplayName().toLowerCase())) {
|
||||
throw new ServiceException.UnprocessableEntityException(String.format("Organization %s not found",
|
||||
organization));
|
||||
List<JenkinsOrganizationFolder> orgs = Jenkins.getInstance().getAllItems(JenkinsOrganizationFolder.class);
|
||||
List<BlueOrganization> ret = Lists.newArrayList();
|
||||
for (JenkinsOrganizationFolder org : orgs) {
|
||||
ret.add(new OrganizationImpl(org));
|
||||
}
|
||||
|
||||
ret.add(new OrganizationImpl());
|
||||
|
||||
return ret.iterator();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -10,6 +10,7 @@ import io.jenkins.blueocean.rest.model.BluePipelineContainer;
|
|||
import io.jenkins.blueocean.rest.model.BlueUser;
|
||||
import io.jenkins.blueocean.rest.model.BlueUserContainer;
|
||||
import jenkins.model.Jenkins;
|
||||
import org.jenkinsci.plugins.jenkinsorganizations.JenkinsOrganizationFolder;
|
||||
import org.kohsuke.stapler.WebMethod;
|
||||
import org.kohsuke.stapler.verb.DELETE;
|
||||
import org.kohsuke.stapler.verb.PUT;
|
||||
|
@ -24,20 +25,28 @@ import java.io.IOException;
|
|||
*/
|
||||
public class OrganizationImpl extends BlueOrganization {
|
||||
private final UserContainerImpl users = new UserContainerImpl(this);
|
||||
|
||||
final JenkinsOrganizationFolder organizationFolder;
|
||||
/**
|
||||
* In embedded mode, there's only one organization
|
||||
*/
|
||||
public static final OrganizationImpl INSTANCE = new OrganizationImpl();
|
||||
public static final OrganizationImpl DEFAULT_ORGANIZATION = new OrganizationImpl();
|
||||
public OrganizationImpl(JenkinsOrganizationFolder organizationFolder) {
|
||||
this.organizationFolder = organizationFolder;
|
||||
}
|
||||
|
||||
private OrganizationImpl() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* In embedded mode, there's only one organization
|
||||
*/
|
||||
public String getName() {
|
||||
return Jenkins.getInstance().getDisplayName().toLowerCase();
|
||||
if(organizationFolder == null) {
|
||||
return Jenkins.getInstance().getDisplayName().toLowerCase();
|
||||
} else {
|
||||
return organizationFolder.getDisplayName();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -77,7 +86,7 @@ public class OrganizationImpl extends BlueOrganization {
|
|||
if(user == null){
|
||||
throw new ServiceException.NotFoundException("No authenticated user found");
|
||||
}
|
||||
return new UserImpl(user,new UserContainerImpl(OrganizationImpl.INSTANCE));
|
||||
return new UserImpl(user,new UserContainerImpl(OrganizationImpl.DEFAULT_ORGANIZATION));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -21,21 +21,23 @@ import java.util.List;
|
|||
public class PipelineContainerImpl extends BluePipelineContainer {
|
||||
private final @Nonnull ItemGroup itemGroup;
|
||||
private final Link self;
|
||||
final OrganizationImpl organization;
|
||||
|
||||
public PipelineContainerImpl() {
|
||||
this(Jenkins.getInstance(),null);
|
||||
public PipelineContainerImpl(OrganizationImpl organization) {
|
||||
this(Jenkins.getInstance(), organization, null);
|
||||
}
|
||||
|
||||
public PipelineContainerImpl(ItemGroup itemGroup) {
|
||||
this(itemGroup,null);
|
||||
public PipelineContainerImpl(ItemGroup itemGroup, OrganizationImpl organization) {
|
||||
this(itemGroup, organization, null);
|
||||
}
|
||||
|
||||
public PipelineContainerImpl(ItemGroup itemGroup, Reachable parent) {
|
||||
public PipelineContainerImpl(ItemGroup itemGroup, OrganizationImpl organization, Reachable parent) {
|
||||
this.itemGroup = itemGroup;
|
||||
this.organization = organization;
|
||||
if(parent!=null){
|
||||
this.self = parent.getLink().rel("pipelines");
|
||||
}else{
|
||||
this.self = OrganizationImpl.INSTANCE.getLink().rel("pipelines");
|
||||
this.self = organization.getLink().rel("pipelines");
|
||||
}
|
||||
}
|
||||
@Override
|
||||
|
|
|
@ -36,7 +36,7 @@ public class PipelineFolderImpl extends BluePipelineFolder {
|
|||
|
||||
@Override
|
||||
public String getOrganization() {
|
||||
return OrganizationImpl.INSTANCE.getName();
|
||||
return OrganizationImpl.DEFAULT_ORGANIZATION.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -99,7 +99,7 @@ public class PipelineFolderImpl extends BluePipelineFolder {
|
|||
|
||||
@Override
|
||||
public Link getLink() {
|
||||
return OrganizationImpl.INSTANCE.getLink().rel("pipelines").rel(getRecursivePathFromFullName(this));
|
||||
return OrganizationImpl.DEFAULT_ORGANIZATION.getLink().rel("pipelines").rel(getRecursivePathFromFullName(this));
|
||||
}
|
||||
|
||||
@Extension(ordinal = 0)
|
||||
|
|
|
@ -40,7 +40,7 @@ public class PipelineImpl extends BluePipeline {
|
|||
|
||||
@Override
|
||||
public String getOrganization() {
|
||||
return OrganizationImpl.INSTANCE.getName();
|
||||
return OrganizationImpl.DEFAULT_ORGANIZATION.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -120,7 +120,7 @@ public class PipelineImpl extends BluePipeline {
|
|||
|
||||
@Override
|
||||
public Link getLink() {
|
||||
return OrganizationImpl.INSTANCE.getLink().rel("pipelines").rel(getRecursivePathFromFullName(this));
|
||||
return OrganizationImpl.DEFAULT_ORGANIZATION.getLink().rel("pipelines").rel(getRecursivePathFromFullName(this));
|
||||
}
|
||||
|
||||
protected static String getRecursivePathFromFullName(BluePipeline pipeline){
|
||||
|
|
|
@ -48,7 +48,7 @@ public class PipelineSearch extends OmniSearch<BluePipeline>{
|
|||
String s = q.param(EXCLUDED_FROM_FLATTENING_PARAM);
|
||||
String org = q.param(ORGANIZATION_PARAM);
|
||||
|
||||
if(org!=null && !OrganizationImpl.INSTANCE.getName().equals(org)){
|
||||
if(org!=null && !OrganizationImpl.DEFAULT_ORGANIZATION.getName().equals(org)){
|
||||
throw new ServiceException.BadRequestExpception(
|
||||
String.format("Organization %s not found. Query parameter %s value: %s is invalid. ", org,ORGANIZATION_PARAM,org));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue