public class SchedulerBuilder
extends java.lang.Object
DefaultScheduler
.Constructor and Description |
---|
SchedulerBuilder(ServiceSpec serviceSpec,
SchedulerConfig schedulerConfig) |
SchedulerBuilder(ServiceSpec serviceSpec,
SchedulerConfig schedulerConfig,
Persister persister) |
Modifier and Type | Method and Description |
---|---|
AbstractScheduler |
build()
Creates a new Mesos scheduler instance with the provided values or their defaults, or an empty
Optional
if no Mesos scheduler should be registered for this run. |
(package private) static ConfigStore<ServiceSpec> |
createConfigStore(ServiceSpec serviceSpec,
java.util.Collection<java.lang.Class<?>> customDeserializationSubtypes,
Persister persister) |
ConfigStore<ServiceSpec> |
getConfigStore()
Returns the
ConfigStore provided via setConfigStore(ConfigStore) , or a reasonable default. |
SchedulerConfig |
getSchedulerConfig()
Returns the
SchedulerConfig object which was provided via the constructor. |
ServiceSpec |
getServiceSpec()
Returns the
ServiceSpec which was provided via the constructor. |
StateStore |
getStateStore()
Returns the
StateStore provided via setStateStore(StateStore) , or a reasonable default. |
(package private) static java.util.Collection<Plan> |
selectDeployPlan(java.util.Collection<Plan> plans,
boolean hasCompletedDeployment)
Replaces the deploy plan with an update plan, in the case that an update deployment is being performed AND that
a custom update plan has been specified.
|
SchedulerBuilder |
setConfigStore(ConfigStore<ServiceSpec> configStore)
Specifies a custom
ConfigStore . |
SchedulerBuilder |
setCustomConfigValidators(java.util.Collection<ConfigValidator<ServiceSpec>> customConfigValidators)
Specifies a custom list of configuration validators to be run when updating to a new target configuration,
or otherwise uses the default validators returned by
DefaultConfigValidators.getValidators(SchedulerConfig) . |
SchedulerBuilder |
setCustomResources(java.util.Collection<java.lang.Object> customResources)
Specifies custom endpoint resources which should be exposed through the scheduler's API server, in addition
to the defaults.
|
SchedulerBuilder |
setEndpointProducer(java.lang.String name,
EndpointProducer endpointProducer)
Specifies a custom
EndpointProducer to be added to the /endpoints API. |
SchedulerBuilder |
setPlanCustomizer(PlanCustomizer planCustomizer) |
SchedulerBuilder |
setPlansFrom(RawServiceSpec rawServiceSpec)
Sets the
Plan s from the provided RawServiceSpec to this instance, using a
DefaultPlanGenerator to handle conversion. |
SchedulerBuilder |
setRecoveryManagerFactory(RecoveryPlanOverriderFactory recoveryPlanOverriderFactory)
Assigns a
RecoveryPlanOverriderFactory to be used for generating the recovery plan manager. |
SchedulerBuilder |
setStateStore(StateStore stateStore)
Specifies a custom
StateStore . |
(package private) static PodSpec |
updatePodPlacement(PodSpec podSpec)
Update pods with appropriate placement constraints to enforce user REGION intent.
|
SchedulerBuilder(ServiceSpec serviceSpec, SchedulerConfig schedulerConfig) throws PersisterException
PersisterException
SchedulerBuilder(ServiceSpec serviceSpec, SchedulerConfig schedulerConfig, Persister persister)
public ServiceSpec getServiceSpec()
ServiceSpec
which was provided via the constructor.public SchedulerConfig getSchedulerConfig()
SchedulerConfig
object which was provided via the constructor.public SchedulerBuilder setStateStore(StateStore stateStore)
StateStore
. The state store persists copies of task information and task status for
all tasks running in the service.java.lang.IllegalStateException
- if the state store is already set, via a previous call to either
setStateStore(StateStore)
or to getStateStore()
public StateStore getStateStore()
StateStore
provided via setStateStore(StateStore)
, or a reasonable default.
In order to avoid cohesiveness issues between this setting and the build()
step,
setStateStore(StateStore)
may not be invoked after this has been called.public SchedulerBuilder setConfigStore(ConfigStore<ServiceSpec> configStore)
ConfigStore
.
The config store persists a copy of the current configuration ('target' configuration),
while also storing historical configurations.public ConfigStore<ServiceSpec> getConfigStore()
ConfigStore
provided via setConfigStore(ConfigStore)
, or a reasonable default.
In order to avoid cohesiveness issues between this setting and the build()
step,
setConfigStore(ConfigStore)
may not be invoked after this has been called.public SchedulerBuilder setCustomResources(java.util.Collection<java.lang.Object> customResources)
public SchedulerBuilder setCustomConfigValidators(java.util.Collection<ConfigValidator<ServiceSpec>> customConfigValidators)
DefaultConfigValidators.getValidators(SchedulerConfig)
.public SchedulerBuilder setEndpointProducer(java.lang.String name, EndpointProducer endpointProducer)
EndpointProducer
to be added to the /endpoints API. This may be used by services
which wish to expose custom endpoint information via that API.name
- the name of the endpoint to be exposedendpointProducer
- the producer to be invoked when the provided endpoint name is requestedpublic SchedulerBuilder setPlansFrom(RawServiceSpec rawServiceSpec) throws ConfigStoreException
Plan
s from the provided RawServiceSpec
to this instance, using a
DefaultPlanGenerator
to handle conversion. This is overridden by any plans manually provided by
#setPlans(Collection)
.ConfigStoreException
public SchedulerBuilder setRecoveryManagerFactory(RecoveryPlanOverriderFactory recoveryPlanOverriderFactory)
RecoveryPlanOverriderFactory
to be used for generating the recovery plan manager.recoveryPlanOverriderFactory
- the factory which generates the custom recovery plan managerpublic SchedulerBuilder setPlanCustomizer(PlanCustomizer planCustomizer)
public AbstractScheduler build()
Optional
if no Mesos scheduler should be registered for this run.Optional
java.lang.IllegalArgumentException
- if validating the provided configuration failedstatic PodSpec updatePodPlacement(PodSpec podSpec)
static ConfigStore<ServiceSpec> createConfigStore(ServiceSpec serviceSpec, java.util.Collection<java.lang.Class<?>> customDeserializationSubtypes, Persister persister) throws ConfigStoreException
ConfigStoreException