public interface ElasticMachineProvisioning extends ElasticProcessingUnitMachineIsolationAware, ElasticMachineProvisioningProgressChangedEventListenerAware, ElasticGridServiceAgentProvisioningProgressEventListenerAware
ElasticMachineProvisioningConfig.getGridServiceAgentZones()
and
ElasticMachineProvisioningConfig.isGridServiceAgentZoneMandatory()
The plugin must be stateless, and is expected to delegate calls to a remove service (such as a cloud).
Calls to this class can be concurrent from different threads, therefore implementation must be thread safe.NonBlockingElasticMachineProvisioning
,
ElasticMachineProvisioningConfig
Modifier and Type | Method and Description |
---|---|
void |
blockingAfterPropertiesSet()
performs blocking initialization of the external api components.
|
void |
cleanupMachineResources(long duration,
TimeUnit unit)
Cleanup all cloud resources.
|
CapacityRequirements |
getCapacityOfSingleMachine() |
ElasticMachineProvisioningConfig |
getConfig() |
GridServiceAgent[] |
getDiscoveredMachines(long duration,
TimeUnit unit) |
Object |
getExternalApi(String apiName)
Returns external API according to name.
|
boolean |
isStartMachineSupported() |
StartedGridServiceAgent |
startMachine(ExactZonesConfig zones,
GSAReservationId reservationId,
FailedGridServiceAgent failedAgent,
long duration,
TimeUnit unit)
Starts a new machine with a new grid service agent and injects specific zones into it.
|
void |
stopMachine(StartedGridServiceAgent agent,
long duration,
TimeUnit unit)
Shuts down the grid service agent and the machine.
|
setElasticProcessingUnitMachineIsolation
setElasticMachineProvisioningProgressChangedEventListener
setElasticGridServiceAgentProvisioningProgressEventListener
boolean isStartMachineSupported()
#startMachine(long, TimeUnit)
and #stopMachine(GridServiceAgent, long, TimeUnit)
raise UnsupportedOperationExceptionGridServiceAgent[] getDiscoveredMachines(long duration, TimeUnit unit) throws ElasticMachineProvisioningException, ElasticGridServiceAgentProvisioningException, InterruptedException, TimeoutException
ElasticMachineProvisioningConfig
The caller then filters the result using the criteria defined in ElasticMachineProvisioningConfig.getGridServiceAgentZones()
,
ElasticMachineProvisioningConfig.isGridServiceAgentZoneMandatory()
and ElasticMachineProvisioningConfig.isDedicatedManagementMachines()
so it is not mandatory for the implementation to do so.ElasticMachineProvisioningException
ElasticGridServiceAgentProvisioningException
InterruptedException
TimeoutException
StartedGridServiceAgent startMachine(ExactZonesConfig zones, GSAReservationId reservationId, FailedGridServiceAgent failedAgent, long duration, TimeUnit unit) throws ElasticMachineProvisioningException, ElasticGridServiceAgentProvisioningException, InterruptedException, TimeoutException
zones
- - the zones to start the machine on. these zones will be injected into the GSA that is started on this machine.failedAgent
- - the failed agent for which this new machine is required in order to perform recovery. null if this machine is not related to a failed machinefailedAgentRecoveryAttempt
- - 0 if this is not related to failed machine, 1 if first attempt to recover from machine failure, 2 if second attempt to recover, etc...duration
- - the maximum duration after which a TimeoutException is raised.unit
- - the time unit for the durationElasticMachineProvisioningException
InterruptedException
TimeoutException
ElasticGridServiceAgentProvisioningException
CapacityRequirements getCapacityOfSingleMachine()
void stopMachine(StartedGridServiceAgent agent, long duration, TimeUnit unit) throws ElasticMachineProvisioningException, ElasticGridServiceAgentProvisioningException, InterruptedException, TimeoutException
agent
- - the agent to stopduration
- - timeout durationunit
- - timeout duration time unitTimeoutException
- - terminating the machine took too longInterruptedException
ElasticMachineProvisioningException
- - terminating the machine encountered a problem.ElasticGridServiceAgentProvisioningException
void cleanupMachineResources(long duration, TimeUnit unit) throws ElasticMachineProvisioningException, InterruptedException, TimeoutException
ElasticMachineProvisioningException
InterruptedException
TimeoutException
ElasticMachineProvisioningConfig getConfig()
Object getExternalApi(String apiName) throws InterruptedException, ElasticMachineProvisioningException
apiName
- The name of the external API.ElasticMachineProvisioningException
InterruptedException
Copyright © GigaSpaces.