public class ServerPoolLocation extends AbstractLocation implements MachineProvisioningLocation<MachineLocation>, DynamicLocation<ServerPool,ServerPoolLocation>
BrooklynObject.TagSupport| Modifier and Type | Field and Description | 
|---|---|
| static ConfigKey<ServerPool> | OWNER | 
PARENT_LOCATIONMAX_SUB_LOCATIONSFINAL_SPEC, NAMED_SPEC_NAME, ORIGINAL_SPEC| Constructor and Description | 
|---|
| ServerPoolLocation() | 
| Modifier and Type | Method and Description | 
|---|---|
| ServerPool | getOwner() | 
| java.util.Map<java.lang.String,java.lang.Object> | getProvisioningFlags(java.util.Collection<java.lang.String> tags)Gets flags, suitable as an argument to  MachineProvisioningLocation.obtain(Map). | 
| void | init()Called by framework (in new-style instances where spec was used) after configuring etc,
 but before a reference to this instance is shared. | 
| MachineProvisioningLocation<MachineLocation> | newSubLocation(java.util.Map<?,?> newFlags)Creates a new location of the same type, but with additional creation instructions in the form of flags,
 e.g. | 
| MachineLocation | obtain(java.util.Map<?,?> flags)Obtain a machine in this location. | 
| void | release(MachineLocation machine)Release a previously-obtained machine. | 
addChild, addExtension, configure, containsLocation, equals, getAllConfig, getAllConfigBag, getChildren, getConfig, getConfig, getDisplayName, getExtension, getHostGeoInfo, getLocalConfigBag, getParent, getRawLocalConfigBag, getRebindSupport, hasConfig, hasExtension, hashCode, isManaged, onManagementStarted, onManagementStopped, removeChild, setConfig, setDisplayName, setHostGeoInfo, setManagementContext, setName, setParent, setParent, toMetadataRecord, toString, toVerboseStringgetCatalogItemId, getId, getManagementContext, getTagSupport, rebind, setCatalogItemId, tagscontainsLocation, getAllConfig, getChildren, getConfig, getConfig, getDisplayName, getExtension, getId, getParent, hasConfig, hasExtension, setParent, toVerboseStringgetCatalogItemId, getTagSupport, tagsgetManagementContextsetCatalogItemIdpublic static final ConfigKey<ServerPool> OWNER
public void init()
AbstractBrooklynObjectTo preserve backwards compatibility for if the instance is constructed directly, one can call the code below, but that means it will be called after references to this policy have been shared with other entities.
 if (isLegacyConstruction()) {
     init();
 }
 
 init in class AbstractBrooklynObjectpublic ServerPool getOwner()
getOwner in interface DynamicLocation<ServerPool,ServerPoolLocation>public MachineLocation obtain(java.util.Map<?,?> flags) throws NoMachinesAvailableException
MachineProvisioningLocationobtain in interface MachineProvisioningLocation<MachineLocation>obtain in interface ProvisioningLocation<MachineLocation>flags - Details of the desired machine (e.g. image, size, open ports, etc; some flag support is limited to selected providers).
 "callerContext" can be specified to have custom logging and error messages (useful if starting machines in parallel)NoMachinesAvailableException - if there are no machines available in this location (or impls may return null, but that is discouraged)public MachineProvisioningLocation<MachineLocation> newSubLocation(java.util.Map<?,?> newFlags)
MachineProvisioningLocationImplementers who wish to subclass this provisioning location for additional functionality in a specific cloud can use the relevant implementation of this method as a guide.
newSubLocation in interface MachineProvisioningLocation<MachineLocation>public void release(MachineLocation machine)
MachineProvisioningLocationrelease in interface MachineProvisioningLocation<MachineLocation>release in interface ProvisioningLocation<MachineLocation>machine - a MachineLocation previously obtained from a call to #obtain()public java.util.Map<java.lang.String,java.lang.Object> getProvisioningFlags(java.util.Collection<java.lang.String> tags)
MachineProvisioningLocationMachineProvisioningLocation.obtain(Map). The tags provided give
 hints about the machine required. The provisioning-location could be configured to 
 understand those tags. 
 
 For example, an AWS-location could be configured to understand that a particular entity
 type (e.g. "TomcatServer") requires a particular AMI in that region, so would return the 
 required image id.getProvisioningFlags in interface MachineProvisioningLocation<MachineLocation>