public class ServerPoolImpl extends DynamicClusterImpl implements ServerPool
Modifier and Type | Class and Description |
---|---|
static class |
ServerPoolImpl.MemberTrackingPolicy |
DynamicCluster.NodePlacementStrategy, DynamicCluster.ZoneFailureDetector
BrooklynObject.TagSupport
Configurable.ConfigurationSupport
Startable.RestartEffectorBody, Startable.StartEffectorBody, Startable.StopEffectorBody
EntityInternal.FeedSupport
BrooklynObjectInternal.ConfigurationSupportInternal
Modifier and Type | Field and Description |
---|---|
static AttributeSensor<LocationDefinition> |
DYNAMIC_LOCATION_DEFINITION |
static AttributeSensor<java.util.Map<Entity,MachineLocation>> |
ENTITY_MACHINE
Accesses must be synchronised by mutex
|
static AttributeSensor<java.util.Map<MachineLocation,Entity>> |
MACHINE_ENTITY |
static ConfigKey<java.lang.Boolean> |
REMOVABLE |
CHILD_ADDED, CHILD_REMOVED, EFFECTOR_ADDED, EFFECTOR_CHANGED, EFFECTOR_REMOVED, LOCATION_ADDED, LOCATION_REMOVED, POLICY_ADDED, POLICY_REMOVED, SENSOR_ADDED, SENSOR_REMOVED
ADD_MACHINES_FROM_SPEC, AVAILABLE_COUNT, CLAIMED_COUNT, INITIAL_SIZE, MEMBER_SPEC
AVAILABILITY_ZONE_NAMES, CLUSTER, CLUSTER_MEMBER, CUSTOM_CHILD_FLAGS, ENABLE_AVAILABILITY_ZONES, ENTITY_QUARANTINED, FACTORY, FAILED_SUB_LOCATIONS, FIRST_MEMBER_SPEC, INITIAL_QUORUM_SIZE, NUM_AVAILABILITY_ZONES, QUARANTINE_FAILED_ENTITIES, QUARANTINE_GROUP, REMOVAL_STRATEGY, RESIZE_BY_DELTA, SERVICE_STATE_ACTUAL, SUB_LOCATIONS, ZONE_FAILURE_DETECTOR, ZONE_PLACEMENT_STRATEGY
FIRST, FIRST_MEMBER, GROUP_MEMBERS, MEMBER_DELEGATE_CHILDREN, MEMBER_DELEGATE_NAME_FORMAT, RUNNING_QUORUM_CHECK, UP_QUORUM_CHECK
GROUP_SIZE, MEMBER_ADDED, MEMBER_REMOVED
RESTART, SERVICE_UP, START, STOP
REPLACE_MEMBER
DYNAMIC_LOCATION, DYNAMIC_LOCATION_STATUS, LOCATION_DEFINITION, LOCATION_FLAGS, LOCATION_NAME, LOCATION_NAME_PREFIX, LOCATION_NAME_SUFFIX, LOCATION_SPEC
Constructor and Description |
---|
ServerPoolImpl() |
Modifier and Type | Method and Description |
---|---|
Entity |
addExistingMachine(MachineLocation machine)
Sets the pool to use an existing
MachineLocation as a member. |
java.util.Collection<Entity> |
addExistingMachinesFromSpec(java.lang.String spec)
Adds additional machines to the pool by resolving the given spec.
|
MachineLocation |
claimMachine(java.util.Map<?,?> flags) |
ServerPoolLocation |
createLocation(java.util.Map<java.lang.String,?> flags) |
void |
deleteLocation() |
ServerPoolLocation |
getDynamicLocation() |
com.google.common.base.Function<java.util.Collection<Entity>,Entity> |
getRemovalStrategy() |
void |
init()
Default entity initialization, just calls
AbstractEntity.initEnrichers() . |
boolean |
isLocationAvailable() |
void |
rebind()
Called by framework on rebind (in new-style instances):
after configuring, but
before the instance is managed, and
before adjuncts are attached to entities, and
before a reference to an object is shared.
|
void |
releaseMachine(MachineLocation machine) |
void |
start(java.util.Collection<? extends Location> locations)
Start the entity in the given collection of locations.
|
void |
stop()
Stop the entity.
|
addNode, removeChild, replaceMember, resize, resizeByDelta, restart, setFactory, setMemberSpec, setRemovalStrategy, setZoneFailureDetector, setZonePlacementStrategy
addMember, addMemberChild, addMemberChild, addMemberInternal, getCurrentSize, getMembers, hasMember, removeMember, setManagementContext, setMembers, setMembers
addChild, addChild, addEnricher, addEnricher, addFeed, addGroup, addLocations, addPolicy, addPolicy, addTag, clearLocations, clearParent, config, configure, configure, configure, configure, configure, containsTag, destroy, emit, emitInternal, equals, feeds, firstLocation, getAllAttributes, getAllConfig, getAllConfigBag, getApplication, getApplicationId, getAttribute, getAttributeByNameParts, getChildren, getConfig, getConfig, getConfig, getConfig, getConfigMap, getConfigRaw, getConfigRaw, getCreationTime, getDisplayName, getEffector, getEnrichers, getEntityType, getExecutionContext, getFeedSupport, getGroups, getIconUrl, getLocalConfigBag, getLocations, getManagementContext, getManagementSupport, getMutableEntityType, getParent, getPolicies, getProxy, getProxyIfAvailable, getRebindSupport, getSubscriptionContext, getTags, hashCode, invalidateReferences, invoke, invoke, invoke, modifyAttribute, onManagementBecomingMaster, onManagementNoLongerMaster, onManagementStarted, onManagementStarting, onManagementStopped, refreshInheritedConfig, removeAllEnrichers, removeAllPolicies, removeAttribute, removeEnricher, removeGroup, removeLocations, removePolicy, removeTag, requestPersist, resetProxy, setAttribute, setAttribute, setAttributeWithoutPublishing, setConfig, setConfig, setConfig, setConfig, setConfig, setConfig, setConfigEvenIfOwned, setConfigEvenIfOwned, setDisplayName, setParent, setProxy, subscribe, subscribeToChildren, subscribeToMembers, toMetadataRecord, toString, unsubscribe, unsubscribe
getCatalogItemId, getId, getTagSupport, setCatalogItemId, tags
addNode, resizeByDelta, setFactory, setMemberSpec, setRemovalStrategy, setZoneFailureDetector, setZonePlacementStrategy
setMembers, setMembers
addChild, addChild, addMember, addMemberChild, addMemberChild, getCurrentSize, getMembers, hasMember, removeMember
addEnricher, addEnricher, addFeed, addGroup, addPolicy, addPolicy, addTag, clearParent, containsTag, getApplication, getApplicationId, getAttribute, getChildren, getConfig, getConfig, getConfigRaw, getConfigRaw, getCreationTime, getDisplayName, getEnrichers, getEntityType, getGroups, getIconUrl, getId, getLocations, getParent, getPolicies, getTags, invoke, removeChild, removeEnricher, removeGroup, removePolicy, removeTag, setParent
getCatalogItemId, getTagSupport, tags
config, setConfig
getCurrentSize, resize
replaceMember
setCatalogItemId
public static final AttributeSensor<java.util.Map<Entity,MachineLocation>> ENTITY_MACHINE
public static final AttributeSensor<java.util.Map<MachineLocation,Entity>> MACHINE_ENTITY
public static final AttributeSensor<LocationDefinition> DYNAMIC_LOCATION_DEFINITION
public static final ConfigKey<java.lang.Boolean> REMOVABLE
public void init()
AbstractEntity
AbstractEntity.initEnrichers()
.init
in class DynamicClusterImpl
public void start(java.util.Collection<? extends Location> locations)
Startable
Some entities may define custom Effector
implementations which support
a richer set of parameters. See the entity-specific Startable.START
effector declaration.
start
in interface Startable
start
in class DynamicClusterImpl
public void rebind()
AbstractBrooklynObject
AbstractBrooklynObject.init()
will not be called on rebind.
If you need to intercept behaviour after adjuncts are attached,
consider AbstractEntity.onManagementStarting()
(but probably worth raising a discussion on the mailing list!)
rebind
in class AbstractBrooklynObject
public void stop()
Startable
Some entities may define custom Effector
implementations which support
a richer set of parameters. See the entity-specific Startable.STOP
effector declaration.
stop
in interface Startable
stop
in class DynamicClusterImpl
public ServerPoolLocation getDynamicLocation()
getDynamicLocation
in interface LocationOwner<ServerPoolLocation,ServerPool>
public ServerPoolLocation createLocation(java.util.Map<java.lang.String,?> flags)
createLocation
in interface LocationOwner<ServerPoolLocation,ServerPool>
public void deleteLocation()
deleteLocation
in interface LocationOwner<ServerPoolLocation,ServerPool>
public boolean isLocationAvailable()
isLocationAvailable
in interface LocationOwner<ServerPoolLocation,ServerPool>
public MachineLocation claimMachine(java.util.Map<?,?> flags) throws NoMachinesAvailableException
claimMachine
in interface ServerPool
NoMachinesAvailableException
public void releaseMachine(MachineLocation machine)
releaseMachine
in interface ServerPool
public Entity addExistingMachine(MachineLocation machine)
ServerPool
MachineLocation
as a member. Existing locations
will count towards the capacity of the pool but will not be terminated when the pool is
stopped.addExistingMachine
in interface ServerPool
machine
- An existing machine.ServerPool.MEMBER_SPEC
.public java.util.Collection<Entity> addExistingMachinesFromSpec(java.lang.String spec)
ServerPool
addExistingMachinesFromSpec
in interface ServerPool
spec
- A location spec, e.g. byon:(hosts="user@10.9.1.1,user@10.9.1.2,user@10.9.1.3")
ServerPool.MEMBER_SPEC
.