public class PodInfoBuilder
extends java.lang.Object
PodInfoBuilder encompasses a mutable group of org.apache.mesos.Protos.TaskInfo.Builders and,
optionally, a org.apache.mesos.Protos.ExecutorInfo.Builder. This supports the modification of task infos
during the evaluation process, allowing e.g. dynamic ports to be represented as environment variables in the task
to which they are attached.| Constructor and Description |
|---|
PodInfoBuilder(PodInstanceRequirement podInstanceRequirement,
java.lang.String serviceName,
java.util.UUID targetConfigId,
SchedulerConfig schedulerConfig,
java.util.Collection<Protos.TaskInfo> currentPodTasks,
Protos.FrameworkID frameworkID,
boolean useDefaultExecutor,
java.util.Map<TaskSpec,GoalStateOverride> overrideMap) |
| Modifier and Type | Method and Description |
|---|---|
void |
addAssignedOverlayPort(long port) |
java.util.Set<java.lang.Long> |
getAssignedOverlayPorts() |
java.util.Optional<Protos.ExecutorInfo.Builder> |
getExecutorBuilder() |
java.util.Collection<Protos.Resource.Builder> |
getExecutorResourceBuilders() |
static Protos.Resource |
getExistingExecutorVolume(VolumeSpec volumeSpec,
java.lang.String resourceId,
java.lang.String persistenceId,
boolean useDefaultExecutor) |
int |
getIndex() |
PodInstance |
getPodInstance() |
java.util.Optional<java.lang.Long> |
getPriorPortForTask(java.lang.String taskSpecName,
PortSpec portSpec)
This is the only carry-over from old tasks: If a port was dynamically allocated, we want to avoid reallocating
it on task relaunch.
|
Protos.TaskInfo.Builder |
getTaskBuilder(java.lang.String taskSpecName) |
java.util.Collection<Protos.TaskInfo.Builder> |
getTaskBuilders() |
static java.util.Map<java.lang.String,java.lang.String> |
getTaskEnvironment(java.lang.String serviceName,
PodInstance podInstance,
TaskSpec taskSpec)
Generates a Task environment containing the configured environment values from the
CommandSpec, along
with a set of default environment variables that all SDK tasks get for free. |
java.util.Collection<Protos.Resource.Builder> |
getTaskResourceBuilders() |
java.lang.String |
getType() |
boolean |
isAssignedOverlayPort(long candidatePort) |
void |
setExecutorBuilder(Protos.ExecutorInfo.Builder executorBuilder) |
void |
setExecutorVolume(VolumeSpec volumeSpec) |
java.lang.String |
toString() |
public PodInfoBuilder(PodInstanceRequirement podInstanceRequirement, java.lang.String serviceName, java.util.UUID targetConfigId, SchedulerConfig schedulerConfig, java.util.Collection<Protos.TaskInfo> currentPodTasks, Protos.FrameworkID frameworkID, boolean useDefaultExecutor, java.util.Map<TaskSpec,GoalStateOverride> overrideMap) throws InvalidRequirementException
InvalidRequirementExceptionpublic java.util.Collection<Protos.TaskInfo.Builder> getTaskBuilders()
public Protos.TaskInfo.Builder getTaskBuilder(java.lang.String taskSpecName)
public java.util.Optional<Protos.ExecutorInfo.Builder> getExecutorBuilder()
public void setExecutorBuilder(Protos.ExecutorInfo.Builder executorBuilder)
public java.util.Optional<java.lang.Long> getPriorPortForTask(java.lang.String taskSpecName,
PortSpec portSpec)
public java.util.Collection<Protos.Resource.Builder> getTaskResourceBuilders()
public java.util.Collection<Protos.Resource.Builder> getExecutorResourceBuilders()
public boolean isAssignedOverlayPort(long candidatePort)
public void addAssignedOverlayPort(long port)
public java.util.Set<java.lang.Long> getAssignedOverlayPorts()
public void setExecutorVolume(VolumeSpec volumeSpec)
public static Protos.Resource getExistingExecutorVolume(VolumeSpec volumeSpec, java.lang.String resourceId, java.lang.String persistenceId, boolean useDefaultExecutor)
public static java.util.Map<java.lang.String,java.lang.String> getTaskEnvironment(java.lang.String serviceName,
PodInstance podInstance,
TaskSpec taskSpec)
CommandSpec, along
with a set of default environment variables that all SDK tasks get for free.public java.lang.String getType()
public int getIndex()
public PodInstance getPodInstance()
public java.lang.String toString()
toString in class java.lang.Object