public class MesosApi
extends java.lang.Object
Each connection should be a singleton. New instance are create via getInstance(String, URL, String, String, String, String, Optional, Optional).
| Constructor and Description |
|---|
MesosApi(java.lang.String master,
java.net.URL jenkinsUrl,
java.lang.String agentUser,
java.lang.String frameworkName,
java.lang.String frameworkId,
java.lang.String role,
java.util.Optional<java.lang.String> sslCert,
java.util.Optional<MesosCloud.DcosAuthorization> authorization)
Establishes a connection to Mesos and provides a simple interface to start and stop
MesosJenkinsAgent instances. |
MesosApi(java.net.URL jenkinsUrl,
java.lang.String agentUser,
java.lang.String frameworkName,
java.lang.String frameworkId,
java.lang.String role,
akka.stream.javadsl.Flow<com.mesosphere.usi.core.models.commands.SchedulerCommand,com.mesosphere.usi.core.models.StateEvent,akka.NotUsed> schedulerFlow,
Settings operationalSettings,
akka.actor.ActorSystem system,
akka.stream.ActorMaterializer materializer)
Internal constructor for testing the API.
|
| Modifier and Type | Method and Description |
|---|---|
java.util.concurrent.CompletionStage<MesosJenkinsAgent> |
enqueueAgent(java.lang.String name,
MesosAgentSpecTemplate spec)
Enqueue launch command for a new Jenkins agent.
|
java.lang.String |
getFrameworkId() |
java.lang.String |
getFrameworkName() |
static MesosApi |
getInstance(java.lang.String master,
java.net.URL jenkinsUrl,
java.lang.String agentUser,
java.lang.String frameworkName,
java.lang.String frameworkId,
java.lang.String role,
java.util.Optional<java.lang.String> sslCert,
java.util.Optional<MesosCloud.DcosAuthorization> authorization)
Fetching an existing connection or constructs a new one.
|
akka.stream.ActorMaterializer |
getMaterializer() |
java.lang.String |
getRole() |
java.util.Map<com.mesosphere.usi.core.models.PodId,MesosJenkinsAgent> |
getState() |
java.util.concurrent.CompletionStage<java.lang.Void> |
killAgent(com.mesosphere.usi.core.models.PodId podId)
Enqueue spec for a Jenkins event, passing a non-null existing podId will trigger a kill for
that pod
|
java.util.concurrent.CompletionStage<java.lang.Void> |
killAgent(java.lang.String id)
Enqueue spec for a Jenkins event, passing a non-null existing podId will trigger a kill for
that pod
|
void |
setAgentTimeout(java.time.Duration agentTimeout)
test method to set the agent timeout duration
|
public MesosApi(java.lang.String master,
java.net.URL jenkinsUrl,
java.lang.String agentUser,
java.lang.String frameworkName,
java.lang.String frameworkId,
java.lang.String role,
java.util.Optional<java.lang.String> sslCert,
java.util.Optional<MesosCloud.DcosAuthorization> authorization)
throws java.lang.InterruptedException,
java.util.concurrent.ExecutionException
MesosJenkinsAgent instances.master - The Mesos master address to connect to. Should be one of host:port
http://host:port zk://host1:port1,host2:port2,.../path
zk://username:password@host1:port1,host2:port2,.../pathjenkinsUrl - The Jenkins address to fetch the agent jar from.agentUser - The username used for executing Mesos tasks.frameworkName - The name of the framework the Mesos client should register as.frameworkId - The id of the framework the Mesos client should register for.role - The Mesos role to assume.sslCert - An optional custom SSL certificate to secure the connection to Mesos.authorization - An optional CredentialsProvider used to authorize with Mesos.java.lang.InterruptedExceptionjava.util.concurrent.ExecutionExceptionpublic MesosApi(java.net.URL jenkinsUrl,
java.lang.String agentUser,
java.lang.String frameworkName,
java.lang.String frameworkId,
java.lang.String role,
akka.stream.javadsl.Flow<com.mesosphere.usi.core.models.commands.SchedulerCommand,com.mesosphere.usi.core.models.StateEvent,akka.NotUsed> schedulerFlow,
Settings operationalSettings,
akka.actor.ActorSystem system,
akka.stream.ActorMaterializer materializer)
jenkinsUrl - The Jenkins address to fetch the agent jar from.agentUser - The username used for executing Mesos tasks.frameworkName - The name of the framework the Mesos client should register as.frameworkId - Unique identifier of the framework in Mesos.role - The Mesos role to assume.schedulerFlow - The USI scheduler flow constructed by Scheduler.asFlow(SchedulerFactory)operationalSettings - Operation settings for this plugin.system - The Akka actor system to use.materializer - The Akka stream materializer to use.public static MesosApi getInstance(java.lang.String master, java.net.URL jenkinsUrl, java.lang.String agentUser, java.lang.String frameworkName, java.lang.String frameworkId, java.lang.String role, java.util.Optional<java.lang.String> sslCert, java.util.Optional<MesosCloud.DcosAuthorization> authorization) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
MesosApi(String,
URL, String, String, String, String, Optional, Optional) for parameters.java.util.concurrent.ExecutionExceptionjava.lang.InterruptedExceptionpublic java.util.concurrent.CompletionStage<java.lang.Void> killAgent(java.lang.String id)
MesosJenkinsAgent once it's queued for running.public java.util.concurrent.CompletionStage<java.lang.Void> killAgent(com.mesosphere.usi.core.models.PodId podId)
MesosJenkinsAgent once it's queued for running.public java.util.concurrent.CompletionStage<MesosJenkinsAgent> enqueueAgent(java.lang.String name, MesosAgentSpecTemplate spec) throws java.io.IOException, hudson.model.Descriptor.FormException, java.net.URISyntaxException
MesosJenkinsAgent once it's queued for running.java.io.IOExceptionhudson.model.Descriptor.FormExceptionjava.net.URISyntaxExceptionpublic akka.stream.ActorMaterializer getMaterializer()
public void setAgentTimeout(java.time.Duration agentTimeout)
public java.lang.String getFrameworkName()
public java.lang.String getFrameworkId()
public java.lang.String getRole()
public java.util.Map<com.mesosphere.usi.core.models.PodId,MesosJenkinsAgent> getState()