Class RemoteElasticInstanceImpl
- java.lang.Object
-
- com.atlassian.bamboo.agent.elastic.server.RemoteElasticInstanceImpl
-
- All Implemented Interfaces:
RemoteElasticInstance
public class RemoteElasticInstanceImpl extends Object implements RemoteElasticInstance
-
-
Constructor Summary
Constructors Constructor Description 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 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description @NotNull Collection<com.atlassian.aws.ec2.EBSVolume>getAttachedVolumes()@NotNull ElasticImageConfigurationgetConfiguration()com.atlassian.aws.ec2.RemoteEC2InstancegetInstance()KeyStoregetKeyStore()longgetRemoteAgent()RemoteElasticInstanceStategetState()voidinterruptDelayedTermination()Interrupts delayed termination process.booleanisAgentLoading()booleanisBeingTerminated()booleanisShutdownable()Returns 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()voidterminate()voidtriggerDelayedTermination(long delaySeconds)Triggers delayed termination of elastic instance.
-
-
-
Constructor Detail
-
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 Detail
-
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
public RemoteElasticInstanceState getState()
- Specified by:
getStatein interfaceRemoteElasticInstance
-
getInstance
public com.atlassian.aws.ec2.RemoteEC2Instance getInstance()
- Specified by:
getInstancein interfaceRemoteElasticInstance
-
getAttachedVolumes
@NotNull public @NotNull Collection<com.atlassian.aws.ec2.EBSVolume> getAttachedVolumes()
- Specified by:
getAttachedVolumesin interfaceRemoteElasticInstance
-
getConfiguration
@NotNull public @NotNull ElasticImageConfiguration 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
public KeyStore getKeyStore()
- Specified by:
getKeyStorein interfaceRemoteElasticInstance- Returns:
- keystore associated with the instance
-
-