Brooklyn

brooklyn.location
[Java] Interface MachineProvisioningLocation

brooklyn.location.Location
  brooklyn.location.MachineProvisioningLocation
      brooklyn.entity.rebind.Rebindable
All Superinterfaces:
Location, Rebindable

public interface MachineProvisioningLocation
extends Location

A location that is able to provision new machines within its location. This interface extends Location to add the ability to provision MachineLocations in this location.


Method Summary
java.util.Map getProvisioningFlags(java.util.Collection tags)

Gets flags, suitable as an argument to obtain(Map).

MachineProvisioningLocation 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. for specifying subnets, security groups, etc

java.lang.Object obtain(java.util.Map flags)

Obtain a machine in this location.

void release(java.lang.Object machine)

Release a previously-obtained machine.

 
Methods inherited from interface Location
containsLocation, findLocationProperty, getAllConfig, getChildLocations, getConfig, getId, getLocationProperty, getName, getParentLocation, getRebindSupport, hasConfig, hasLocationProperty, setParentLocation
 
Methods inherited from interface Rebindable
getRebindSupport
 

Method Detail

getProvisioningFlags

public java.util.Map getProvisioningFlags(java.util.Collection tags)
Gets flags, suitable as an argument to 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.
Parameters:
tags
Returns:


newSubLocation

public MachineProvisioningLocation 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. for specifying subnets, security groups, etc

Implementers 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.


obtain

public java.lang.Object obtain(java.util.Map flags)
Obtain a machine in this location.
throws:
NoMachinesAvailableException if there are no machines available in this location (or impls may return null, but that is discouraged)
Parameters:
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)
Returns:
a machine that is a child of this location.


release

public void release(java.lang.Object machine)
Release a previously-obtained machine.
throws:
IllegalStateException if the machine did not come from a call to obtain() or it has already been released.
Parameters:
machine - a MachineLocation previously obtained from a call to obtain()


 

Brooklyn Multi-Cloud Application Management Platform
brooklyncentral.github.com. Apache License. © 2012.