Class RemoteElasticInstanceImpl
java.lang.Object
com.atlassian.bamboo.agent.elastic.server.RemoteElasticInstanceImpl
- All Implemented Interfaces:
RemoteElasticInstance
-
Constructor Summary
ConstructorsConstructorDescriptionRemoteElasticInstanceImpl(ElasticInstanceManager manager, ElasticAgentTunnelManager tunnelManager, ErrorHandler errorHandler, com.atlassian.aws.AWSAccount awsAccount, URL baseURL, int startupTimeoutSeconds, RemoteElasticInstanceListener listener, ScheduledExecutorService executor, KeyStore keyStore, ElasticConfiguration elasticConfiguration, @NotNull AgentManager agentManager, @NotNull ElasticImageConfiguration elasticImageConfiguration, @NotNull com.atlassian.aws.ec2.InstanceLaunchConfigurationBuilder instanceLaunchConfigurationBuilder, @NotNull SpotInstanceConfig spotInstanceConfig, @NotNull ServerFingerprint fingerprint, @NotNull com.atlassian.event.api.EventPublisher eventPublisher, @NotNull SecretEncryptionService secretEncryptionService) -
Method Summary
Modifier and TypeMethodDescription@NotNull Collection<com.atlassian.aws.ec2.EBSVolume>@NotNull ElasticImageConfigurationcom.atlassian.aws.ec2.RemoteEC2InstancelonggetState()voidInterrupts delayed termination process.booleanbooleanbooleanReturns true if the instance is in a state that allows shutdown.voidrestoreInstance(ElasticAgentDefinition elasticAgentDefinition, com.amazonaws.services.ec2.model.Instance instance) Restore elastic agent's state after server restartvoidsetAgentLoading(boolean agentLoading) voidsetRemoteAgent(long agentId) voidsetTunnelTimeoutMinutes(int tunnelTimeoutMinutes) voidstart()voidvoidtriggerDelayedTermination(long delaySeconds) Triggers delayed termination of elastic instance.
-
Constructor Details
-
RemoteElasticInstanceImpl
public RemoteElasticInstanceImpl(ElasticInstanceManager manager, ElasticAgentTunnelManager tunnelManager, ErrorHandler errorHandler, com.atlassian.aws.AWSAccount awsAccount, URL baseURL, int startupTimeoutSeconds, RemoteElasticInstanceListener listener, ScheduledExecutorService executor, KeyStore keyStore, ElasticConfiguration elasticConfiguration, @NotNull @NotNull AgentManager agentManager, @NotNull @NotNull ElasticImageConfiguration elasticImageConfiguration, @NotNull @NotNull com.atlassian.aws.ec2.InstanceLaunchConfigurationBuilder instanceLaunchConfigurationBuilder, @NotNull @NotNull SpotInstanceConfig spotInstanceConfig, @NotNull @NotNull ServerFingerprint fingerprint, @NotNull @NotNull com.atlassian.event.api.EventPublisher eventPublisher, @NotNull @NotNull SecretEncryptionService secretEncryptionService)
-
-
Method Details
-
getRemoteAgent
public long getRemoteAgent()- Specified by:
getRemoteAgentin interfaceRemoteElasticInstance
-
setRemoteAgent
public void setRemoteAgent(long agentId) - Specified by:
setRemoteAgentin interfaceRemoteElasticInstance- Parameters:
agentId- id of correspondingElasticAgentDefinition.
-
isShutdownable
public boolean isShutdownable()Description copied from interface:RemoteElasticInstanceReturns true if the instance is in a state that allows shutdown. It may return true for instances that are already being shutdown in AWS.- Specified by:
isShutdownablein interfaceRemoteElasticInstance
-
isBeingTerminated
public boolean isBeingTerminated()- Specified by:
isBeingTerminatedin interfaceRemoteElasticInstance
-
isAgentLoading
public boolean isAgentLoading()- Specified by:
isAgentLoadingin interfaceRemoteElasticInstance
-
setAgentLoading
public void setAgentLoading(boolean agentLoading) - Specified by:
setAgentLoadingin interfaceRemoteElasticInstance
-
start
public void start()- Specified by:
startin interfaceRemoteElasticInstance
-
terminate
public void terminate()- Specified by:
terminatein interfaceRemoteElasticInstance
-
getState
- Specified by:
getStatein interfaceRemoteElasticInstance
-
getInstance
public com.atlassian.aws.ec2.RemoteEC2Instance getInstance()- Specified by:
getInstancein interfaceRemoteElasticInstance
-
getAttachedVolumes
- Specified by:
getAttachedVolumesin interfaceRemoteElasticInstance
-
getConfiguration
- Specified by:
getConfigurationin interfaceRemoteElasticInstance
-
triggerDelayedTermination
public void triggerDelayedTermination(long delaySeconds) Description copied from interface:RemoteElasticInstanceTriggers delayed termination of elastic instance. Termination is performed asynchronously.- Specified by:
triggerDelayedTerminationin interfaceRemoteElasticInstance- Parameters:
delaySeconds- Number of secods to wait before terminating instance.
-
interruptDelayedTermination
public void interruptDelayedTermination()Description copied from interface:RemoteElasticInstanceInterrupts delayed termination process.- Specified by:
interruptDelayedTerminationin interfaceRemoteElasticInstance
-
setTunnelTimeoutMinutes
public void setTunnelTimeoutMinutes(int tunnelTimeoutMinutes) -
restoreInstance
public void restoreInstance(ElasticAgentDefinition elasticAgentDefinition, com.amazonaws.services.ec2.model.Instance instance) throws Exception Description copied from interface:RemoteElasticInstanceRestore elastic agent's state after server restart- Specified by:
restoreInstancein interfaceRemoteElasticInstance- Throws:
Exception
-
getKeyStore
- Specified by:
getKeyStorein interfaceRemoteElasticInstance- Returns:
- keystore associated with the instance
-