Interface ElasticFunctionalityFacade
- All Known Implementing Classes:
ElasticFunctionalityFacadeImpl
public interface ElasticFunctionalityFacade
Facade that orchestrates EC2 related functionalities
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic enum -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionvoidaddElasticLogEntry(org.apache.log4j.Logger log, String logEntry) Deprecated.voidaddElasticLogEntry(org.apache.logging.log4j.Logger log, String logEntry) voidadjustElasticInstanceNumbers(@NotNull ElasticInstanceSchedule instanceSchedule) Given theElasticInstanceSchedulestartup or bring down the correct number of agentsvoidCleanup EC2 credentials and disable EC2 support@NotNull Stringint@NotNull io.atlassian.fugue.Either<ElasticFunctionalityFacade.Ec2PrivateKeyValidationStatus,Optional<String>> getPassword(RemoteElasticInstance instance) @NotNull String@NotNull io.atlassian.fugue.Either<ElasticFunctionalityFacade.Ec2PrivateKeyValidationStatus,File> Returns the location of the AWS private keybooleanbooleanisElasticSupportPossible(@NotNull ErrorCollection errorCollection) voidpersistTunnelDataOfInstance(@NotNull ElasticAgentDefinition pipelineDefinition) Persist data related to tunnel configuration of an elastic instance.voidvoidrestoreAgent(@NotNull ElasticAgentDefinition elasticAgentDefinition, @NotNull com.amazonaws.services.ec2.model.Instance instance, @NotNull com.atlassian.aws.AWSAccount awsAccount) voidsetElasticSupportEnabled(boolean elasticSupportEnabled) Enable/disable Elastic Bamboo functionalityvoidvoidshutdownInstance(@NotNull RemoteElasticInstance elasticInstance) voidshutdownInstance(String instanceId) voidstartupAgents(@NotNull Collection<ElasticImageConfiguration> elasticImageConfigurations) voidupdateAgentPendingStatus(String instanceId) Set the agent pending status to true for the given instance idbooleanvalidateAgentCreation(int numAgentsRequired, ErrorCollection errorCollection) Validates whether the requested number of agents can be created and adds any errors to the error collection.
-
Field Details
-
DEFAULT_ALLOWED_AGENTS
static final int DEFAULT_ALLOWED_AGENTS- See Also:
-
-
Method Details
-
getKeyPairName
-
recheckElasticSupportEnabledFlag
void recheckElasticSupportEnabledFlag() -
shutdownInstance
-
shutdownInstance
- Throws:
com.atlassian.aws.AWSException
-
shutdownAllInstances
void shutdownAllInstances() -
startupAgents
void startupAgents(@NotNull @NotNull Collection<ElasticImageConfiguration> elasticImageConfigurations) throws com.atlassian.aws.AWSException - Throws:
com.atlassian.aws.AWSException
-
validateAgentCreation
Validates whether the requested number of agents can be created and adds any errors to the error collection.- Parameters:
numAgentsRequired- - number of agents to be createderrorCollection- - error collection to add any validation errors to.
-
restoreAgent
void restoreAgent(@NotNull @NotNull ElasticAgentDefinition elasticAgentDefinition, @NotNull @NotNull com.amazonaws.services.ec2.model.Instance instance, @NotNull @NotNull com.atlassian.aws.AWSAccount awsAccount) -
persistTunnelDataOfInstance
Persist data related to tunnel configuration of an elastic instance. -
isElasticSupportEnabled
boolean isElasticSupportEnabled()- Returns:
- true, if elastic support is turned on
-
setElasticSupportEnabled
void setElasticSupportEnabled(boolean elasticSupportEnabled) Enable/disable Elastic Bamboo functionality- Parameters:
elasticSupportEnabled- Specifies if Elastc Baboo shall be enabled or disabled.
-
isElasticSupportPossible
- Returns:
- true, if all preconditions for turning elastic support on are met
-
getPkFileLocation
-
getPrivateKeyLocation
@NotNull @NotNull io.atlassian.fugue.Either<ElasticFunctionalityFacade.Ec2PrivateKeyValidationStatus,File> getPrivateKeyLocation()Returns the location of the AWS private key- Returns:
-
getMaxConcurrentInstances
int getMaxConcurrentInstances()- Returns:
- max number of elastic instances allowed for this instance. It's based on license restrictions.
-
updateAgentPendingStatus
Set the agent pending status to true for the given instance id- Parameters:
instanceId-
-
addElasticLogEntry
-
addElasticLogEntry
Deprecated.since 9.3 useaddElasticLogEntry(Logger, String) -
adjustElasticInstanceNumbers
void adjustElasticInstanceNumbers(@NotNull @NotNull ElasticInstanceSchedule instanceSchedule) throws com.atlassian.aws.AWSException Given theElasticInstanceSchedulestartup or bring down the correct number of agents- Parameters:
instanceSchedule-- Throws:
com.atlassian.aws.AWSException
-
getPassword
@NotNull @NotNull io.atlassian.fugue.Either<ElasticFunctionalityFacade.Ec2PrivateKeyValidationStatus,Optional<String>> getPassword(RemoteElasticInstance instance) -
cleanupCredentials
void cleanupCredentials()Cleanup EC2 credentials and disable EC2 support
-
addElasticLogEntry(Logger, String)