Class ElasticImageConfigurationManagerImpl
- java.lang.Object
-
- com.atlassian.bamboo.agent.elastic.server.ElasticImageConfigurationManagerImpl
-
- All Implemented Interfaces:
ElasticImageConfigurationAccessor,ElasticImageConfigurationManager
public class ElasticImageConfigurationManagerImpl extends Object implements ElasticImageConfigurationManager
-
-
Field Summary
-
Fields inherited from interface com.atlassian.bamboo.agent.elastic.server.ElasticImageConfigurationManager
DEFAULT_AVAILABILITY_ZONE, IMAGE_CAPABILITIES_FILE, WINDOWS_IMAGE_CAPABILITIES_FILE
-
-
Constructor Summary
Constructors Constructor Description ElasticImageConfigurationManagerImpl(ElasticImageConfigurationDao elasticImageConfigurationDao, ResourceResolver resourceResolver, ElasticImageConfigurationAccessor elasticImageConfigurationAccessor, ElasticInstanceScheduleManager elasticInstanceScheduleManager, AgentAssignmentService agentAssignmentService, com.atlassian.event.api.EventPublisher eventPublisher, AwsAccountBean awsAccountBean)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddisableElasticImageSchedules(@NotNull ElasticImageConfiguration elasticImageConfiguration)Disable all enabled Elastic Image Schedules associated with the Elastic Image Configuration@NotNull List<ElasticImageConfiguration>getAllElasticImageConfigurations()Retrieves all elastic images that are stored in database@NotNull List<ElasticImageConfiguration>getAllElasticImageConfigurationsForCurrentRegion()intgetBuildsCountForImageConfiguration(long id)Returns how many builds have been built against the given build configuration.intgetElasticAgentCountForImageConfiguration(long id)How many elastic agents are associated with a specific image configuration.@Nullable ElasticImageConfigurationgetElasticImageConfigurationById(long configurationId)Retrieve an elastic image.@NotNull List<ElasticImageConfiguration>getElasticImageConfigurationsByName(@NotNull String configurationName, com.atlassian.aws.ec2.awssdk.AwsSupportConstants.Region region)Retrieve an elastic image by name in a given region.@NotNull List<ElasticImageConfiguration>getElasticImageConfigurationsShippedWithBamboo()voidonInstanceFailedToStartEvent(@NotNull ElasticImageFailedToStartEvent event)voidpopulateDefaultCapabilitySet(CapabilitySet capabilitySet, ElasticImageConfiguration imageConfiguration)Populates capability set with default capabilities from fromElasticImageConfigurationManager.IMAGE_CAPABILITIES_FILE.voidremoveElasticImageConfiguration(@NotNull ElasticImageConfiguration elasticImageConfiguration)Delete an elastic image configuration.voidsaveElasticImageConfiguration(@NotNull ElasticImageConfiguration elasticImageConfiguration)Save an elastic image configuration.voidupdateDefaultElasticImageConfiguration()Performs startup operations for setting up an elastic image, including retrieving capability information.
-
-
-
Constructor Detail
-
ElasticImageConfigurationManagerImpl
public ElasticImageConfigurationManagerImpl(ElasticImageConfigurationDao elasticImageConfigurationDao, ResourceResolver resourceResolver, ElasticImageConfigurationAccessor elasticImageConfigurationAccessor, ElasticInstanceScheduleManager elasticInstanceScheduleManager, AgentAssignmentService agentAssignmentService, com.atlassian.event.api.EventPublisher eventPublisher, AwsAccountBean awsAccountBean)
-
-
Method Detail
-
getElasticImageConfigurationById
@Nullable public @Nullable ElasticImageConfiguration getElasticImageConfigurationById(long configurationId)
Description copied from interface:ElasticImageConfigurationAccessorRetrieve an elastic image.- Specified by:
getElasticImageConfigurationByIdin interfaceElasticImageConfigurationAccessor- Parameters:
configurationId- - id of the ElasticImageConfiguration to find- Returns:
- ElasticImageConfiguration if exists null otherwise.
-
getElasticImageConfigurationsByName
@NotNull public @NotNull List<ElasticImageConfiguration> getElasticImageConfigurationsByName(@NotNull @NotNull String configurationName, @NotNull com.atlassian.aws.ec2.awssdk.AwsSupportConstants.Region region)
Description copied from interface:ElasticImageConfigurationAccessorRetrieve an elastic image by name in a given region.- Specified by:
getElasticImageConfigurationsByNamein interfaceElasticImageConfigurationAccessor- Parameters:
configurationName- - name of the ElasticImageConfiguration to findregion- the region to check- Returns:
- ElasticImageConfiguration if exists null otherwise.
-
getElasticImageConfigurationsShippedWithBamboo
@NotNull public @NotNull List<ElasticImageConfiguration> getElasticImageConfigurationsShippedWithBamboo()
- Specified by:
getElasticImageConfigurationsShippedWithBambooin interfaceElasticImageConfigurationAccessor
-
getAllElasticImageConfigurations
@NotNull public @NotNull List<ElasticImageConfiguration> getAllElasticImageConfigurations()
Description copied from interface:ElasticImageConfigurationAccessorRetrieves all elastic images that are stored in database- Specified by:
getAllElasticImageConfigurationsin interfaceElasticImageConfigurationAccessor
-
getAllElasticImageConfigurationsForCurrentRegion
@NotNull public @NotNull List<ElasticImageConfiguration> getAllElasticImageConfigurationsForCurrentRegion()
- Specified by:
getAllElasticImageConfigurationsForCurrentRegionin interfaceElasticImageConfigurationAccessor
-
saveElasticImageConfiguration
public void saveElasticImageConfiguration(@NotNull @NotNull ElasticImageConfiguration elasticImageConfiguration)Description copied from interface:ElasticImageConfigurationManagerSave an elastic image configuration.- Specified by:
saveElasticImageConfigurationin interfaceElasticImageConfigurationManager- Parameters:
elasticImageConfiguration- Elastic Image Configuration to be saved.
-
getElasticAgentCountForImageConfiguration
public int getElasticAgentCountForImageConfiguration(long id)
Description copied from interface:ElasticImageConfigurationManagerHow many elastic agents are associated with a specific image configuration.- Specified by:
getElasticAgentCountForImageConfigurationin interfaceElasticImageConfigurationManager- Parameters:
id- of the image configuration- Returns:
- count of the elastic agents.
-
getBuildsCountForImageConfiguration
public int getBuildsCountForImageConfiguration(long id)
Description copied from interface:ElasticImageConfigurationManagerReturns how many builds have been built against the given build configuration.- Specified by:
getBuildsCountForImageConfigurationin interfaceElasticImageConfigurationManager- Parameters:
id- of the elastic image configuration- Returns:
- count of build results.
-
removeElasticImageConfiguration
public void removeElasticImageConfiguration(@NotNull @NotNull ElasticImageConfiguration elasticImageConfiguration) throws com.atlassian.aws.AWSExceptionDescription copied from interface:ElasticImageConfigurationManagerDelete an elastic image configuration. That includes unscheduling and deleting relatedElasticInstanceScheduleobjects- Specified by:
removeElasticImageConfigurationin interfaceElasticImageConfigurationManager- Parameters:
elasticImageConfiguration- Elastic Image Configuration to be deleted.- Throws:
com.atlassian.aws.AWSException
-
disableElasticImageSchedules
public void disableElasticImageSchedules(@NotNull @NotNull ElasticImageConfiguration elasticImageConfiguration)Description copied from interface:ElasticImageConfigurationManagerDisable all enabled Elastic Image Schedules associated with the Elastic Image Configuration- Specified by:
disableElasticImageSchedulesin interfaceElasticImageConfigurationManager
-
updateDefaultElasticImageConfiguration
public void updateDefaultElasticImageConfiguration() throws ExceptionDescription copied from interface:ElasticImageConfigurationManagerPerforms startup operations for setting up an elastic image, including retrieving capability information.- Specified by:
updateDefaultElasticImageConfigurationin interfaceElasticImageConfigurationManager- Throws:
Exception- if it can not find the default image information to setup
-
onInstanceFailedToStartEvent
@EventListener public void onInstanceFailedToStartEvent(@NotNull @NotNull ElasticImageFailedToStartEvent event)
-
populateDefaultCapabilitySet
public void populateDefaultCapabilitySet(CapabilitySet capabilitySet, ElasticImageConfiguration imageConfiguration)
Description copied from interface:ElasticImageConfigurationManagerPopulates capability set with default capabilities from fromElasticImageConfigurationManager.IMAGE_CAPABILITIES_FILE. Will overwrite any existing capabilities.- Specified by:
populateDefaultCapabilitySetin interfaceElasticImageConfigurationManager- Parameters:
capabilitySet- to populate with the defaults.
-
-