public class PodInfoBuilder
extends java.lang.Object
PodInfoBuilder
encompasses a mutable group of org.apache.mesos.Protos.TaskInfo.Builder
s 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
InvalidRequirementException
public 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