package com.nirima.jenkins.plugins.docker;
import com.cloudbees.plugins.credentials.CredentialsMatchers;
import com.cloudbees.plugins.credentials.CredentialsNameProvider;
import com.cloudbees.plugins.credentials.CredentialsProvider;
import com.cloudbees.plugins.credentials.common.*;
import com.cloudbees.plugins.credentials.domains.DomainRequirement;
import com.nirima.jenkins.plugins.docker.utils.DockerDirectoryCredentials;
import edu.umd.cs.findbugs.annotations.NonNull;
import hudson.Extension;
import hudson.model.Describable;
import hudson.model.Descriptor;
import hudson.model.ItemGroup;
import hudson.security.ACL;
import hudson.util.ListBoxModel;
import jenkins.model.Jenkins;
import org.kohsuke.stapler.AncestorInPath;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.DataBoundSetter;
import java.util.Collections;
import java.util.List;
@Extension
public class DockerRegistry implements Describable<DockerRegistry> {
public String registry;
public String credentialsId;
public DockerRegistry() {}
@DataBoundConstructor
public DockerRegistry(String registry, String credentialsId)
{
this.registry = registry;
this.credentialsId = credentialsId;
}
@DataBoundSetter
public void setRegistry(String registry) {
this.registry = registry;
}
@DataBoundSetter
public void setCredentialsId(String credentialsId) {
this.credentialsId = credentialsId;
}
@Override
public Descriptor<DockerRegistry> getDescriptor() {
return (DescriptorImpl) Jenkins.getInstance().getDescriptor(getClass());
}
@Extension
public static final class DescriptorImpl extends Descriptor<DockerRegistry> {
@Override
public String getDisplayName() {
return "Docker Registry";
}
public ListBoxModel doFillCredentialsIdItems(@AncestorInPath ItemGroup context) {
List<StandardUsernamePasswordCredentials> credentials = CredentialsProvider.lookupCredentials(StandardUsernamePasswordCredentials.class, context, ACL.SYSTEM, Collections.<DomainRequirement>emptyList());
return new StandardListBoxModel().withEmptySelection()
.withMatching(CredentialsMatchers.always(), credentials);
}
}
}