Class DockerCloud
java.lang.Object
hudson.model.AbstractModelObject
hudson.model.Actionable
hudson.slaves.Cloud
com.nirima.jenkins.plugins.docker.DockerCloud
- All Implemented Interfaces:
ExtensionPoint,Describable<Cloud>,ModelObject,SearchableModelObject,SearchItem,AccessControlled,ModelObjectWithContextMenu
Docker Cloud configuration. Contains connection configuration,
DockerTemplate contains configuration for running docker image.- Author:
- magnayn
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class hudson.slaves.Cloud
Cloud.CloudStateNested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudsonNested classes/interfaces inherited from interface jenkins.model.ModelObjectWithContextMenu
ModelObjectWithContextMenu.ContextMenu, ModelObjectWithContextMenu.ContextMenuVisibility, ModelObjectWithContextMenu.MenuItem, ModelObjectWithContextMenu.MenuItemType -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDockerCloud(String name, DockerCloud source) DockerCloud(String name, DockerAPI dockerApi, List<DockerTemplate> templates) DockerCloud(String name, List<DockerTemplate> templates, String serverUrl, int containerCap, int connectTimeout, int readTimeout, String credentialsId, String version, String dockerHostname) Deprecated.DockerCloud(String name, List<DockerTemplate> templates, String serverUrl, String containerCapStr, int connectTimeout, int readTimeout, String credentialsId, String version, String dockerHostname) Deprecated.DockerCloud(String name, List<DockerTemplate> templates, org.jenkinsci.plugins.docker.commons.credentials.DockerServerEndpoint dockerHost, int containerCap, int connectTimeout, int readTimeout, String version, String dockerHostname) Deprecated. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddJobTemplate(long jobId, DockerTemplate template) Adds a template which is temporary provided and bound to a specific job.voidAdd a new template to the cloudbooleancanProvision(Label label) intcountContainersInDocker(String imageName) Counts the number of instances currently running in Docker that are using the specified image.intcountContainersInProgress(DockerTemplate template) booleanstatic com.github.dockerjava.api.model.AuthConfiggetAuthConfig(org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryEndpoint registry, ItemGroup context) com.github.dockerjava.api.DockerClientDeprecated.static DockerCloudgetCloudByName(String name) intDeprecated.intDeprecated.org.jenkinsci.plugins.docker.commons.credentials.DockerServerEndpointDeprecated.Deprecated.Deprecated.getTemplate(Label label) Gets firstDockerTemplatethat has the matchingLabel.getTemplate(String template) getTemplates(Label label) Multiple amis can have the same label.inthashCode()static List<DockerCloud>booleanbooleanisTriton()protected ObjectvoidremoveJobTemplate(long jobId) Removes a template which is bound to a specific job.voidRemove Docker templatestatic StringrunContainer(DockerTemplateBase dockerTemplateBase, com.github.dockerjava.api.DockerClient dockerClient) protected StringsanitizeUrl(String url) voidsetContainerCap(int containerCap) voidsetDisabled(DockerDisabled disabled) voidsetErrorDuration(Integer errorDuration) voidsetExposeDockerHost(boolean exposeDockerHost) static voidsetRegistryAuthentication(com.github.dockerjava.api.command.PullImageCmd cmd, org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryEndpoint registry, ItemGroup context) static voidsetRegistryAuthentication(com.github.dockerjava.api.command.PushImageCmd cmd, org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryEndpoint registry, ItemGroup context) toString()Methods inherited from class hudson.slaves.Cloud
all, canProvision, doConfigSubmit, doDoDelete, getACL, getDescriptor, getDisplayName, getIcon, getIconAltText, getIconClassName, getSearchUrl, getUrl, provision, reconfigure, reconfigure, registerPermissionsMethods inherited from class hudson.model.Actionable
addAction, addOrReplaceAction, doContextMenu, doContextMenu, getAction, getAction, getActions, getActions, getAllActions, getDynamic, getDynamic, removeAction, removeActions, replaceAction, replaceActionsMethods inherited from class hudson.model.AbstractModelObject
getSearch, getSearchIndex, getSearchName, makeSearchIndex, requirePOST, sendError, sendError, sendError, sendError, sendError, sendError, sendError, sendErrorMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface hudson.security.AccessControlled
checkAnyPermission, checkPermission, hasAnyPermission, hasPermission, hasPermission, hasPermission2
-
Field Details
-
credentialsId
Deprecated.
-
-
Constructor Details
-
DockerCloud
@DataBoundConstructor public DockerCloud(String name, DockerAPI dockerApi, List<DockerTemplate> templates) -
DockerCloud
-
DockerCloud
@Deprecated public DockerCloud(String name, List<DockerTemplate> templates, org.jenkinsci.plugins.docker.commons.credentials.DockerServerEndpoint dockerHost, int containerCap, int connectTimeout, int readTimeout, String version, String dockerHostname) Deprecated. -
DockerCloud
@Deprecated public DockerCloud(String name, List<DockerTemplate> templates, String serverUrl, int containerCap, int connectTimeout, int readTimeout, String credentialsId, String version, String dockerHostname) Deprecated. -
DockerCloud
@Deprecated public DockerCloud(String name, List<DockerTemplate> templates, String serverUrl, String containerCapStr, int connectTimeout, int readTimeout, String credentialsId, String version, String dockerHostname) Deprecated.
-
-
Method Details
-
getDockerApi
-
getConnectTimeout
Deprecated. -
getDockerHost
@Deprecated public org.jenkinsci.plugins.docker.commons.credentials.DockerServerEndpoint getDockerHost()Deprecated. -
getServerUrl
Deprecated. -
getDockerHostname
Deprecated. -
getContainerCapStr
Deprecated.- Returns:
getContainerCap()as aString.
-
getContainerCap
public int getContainerCap() -
setContainerCap
@DataBoundSetter public void setContainerCap(int containerCap) -
sanitizeUrl
-
getClient
Deprecated.UsegetDockerApi()and thenDockerAPI.getClient()to get the client, followed by a call toDockerClient.close().Connects to Docker. NOTE: This should not be used for any long-running operations as the client it returns is not protected from closure.- Returns:
- Docker client.
-
countContainersInProgress
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public int countContainersInProgress(DockerTemplate template) -
provision
public Collection<NodeProvisioner.PlannedNode> provision(Label label, int numberOfExecutorsRequired) -
runContainer
public static String runContainer(DockerTemplateBase dockerTemplateBase, com.github.dockerjava.api.DockerClient dockerClient) -
canProvision
- Overrides:
canProvisionin classCloud
-
getTemplate
-
getTemplate
Gets firstDockerTemplatethat has the matchingLabel.- Parameters:
label- The label we're looking to match.- Returns:
- The first
DockerTemplatethat has the matchingLabel, or null if not found.
-
addTemplate
Add a new template to the cloud- Parameters:
t- The template to be added.
-
addJobTemplate
Adds a template which is temporary provided and bound to a specific job.- Parameters:
jobId- Unique id (per master) of the job to which the template is bound.template- The template to bound to a specific job.
-
removeJobTemplate
public void removeJobTemplate(long jobId) Removes a template which is bound to a specific job.- Parameters:
jobId- Id of the job.
-
getTemplates
-
getTemplates
Multiple amis can have the same label.- Parameters:
label- The label to be matched, or null if no label was provided.- Returns:
- Templates matched to requested label assuming agent Mode
-
removeTemplate
Remove Docker template- Parameters:
t- The template to be removed.
-
countContainersInDocker
Counts the number of instances currently running in Docker that are using the specified image.WARNING: This method can be slow so it should be called sparingly.
- Parameters:
imageName- If null, then all instances belonging to this Jenkins instance are counted. Otherwise, only those started with the specified image are counted.- Returns:
- The number of containers.
- Throws:
Exception- if anything went wrong.
-
getCloudByName
-
readResolve
-
toString
-
hashCode
public int hashCode() -
equals
-
isTriton
public boolean isTriton() -
isExposeDockerHost
public boolean isExposeDockerHost() -
setExposeDockerHost
@DataBoundSetter public void setExposeDockerHost(boolean exposeDockerHost) -
getDisabled
-
setDisabled
-
getErrorDuration
-
setErrorDuration
-
instances
-
setRegistryAuthentication
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public static void setRegistryAuthentication(com.github.dockerjava.api.command.PullImageCmd cmd, org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryEndpoint registry, ItemGroup context) -
setRegistryAuthentication
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public static void setRegistryAuthentication(com.github.dockerjava.api.command.PushImageCmd cmd, org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryEndpoint registry, ItemGroup context) -
getAuthConfig
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public static com.github.dockerjava.api.model.AuthConfig getAuthConfig(org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryEndpoint registry, ItemGroup context)
-
getDockerApi()and thenDockerAPI.getClient()to get the client, followed by a call toDockerClient.close().