Interface ElasticFunctionalityFacade

  • All Known Implementing Classes:
    ElasticFunctionalityFacadeImpl

    public interface ElasticFunctionalityFacade
    Facade that orchestrates EC2 related functionalities
    • Method Detail

      • getKeyPairName

        @NotNull
        @NotNull String getKeyPairName()
      • recheckElasticSupportEnabledFlag

        void recheckElasticSupportEnabledFlag()
      • shutdownInstance

        void shutdownInstance​(String instanceId)
                       throws com.atlassian.aws.AWSException
        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

        boolean validateAgentCreation​(int numAgentsRequired,
                                      ErrorCollection errorCollection)
        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 created
        errorCollection - - 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

        void persistTunnelDataOfInstance​(@NotNull
                                         @NotNull ElasticAgentDefinition pipelineDefinition)
        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

        boolean isElasticSupportPossible​(@NotNull
                                         @NotNull ErrorCollection errorCollection)
        Returns:
        true, if all preconditions for turning elastic support on are met
      • getPkFileLocation

        @NotNull
        @NotNull String getPkFileLocation()
      • getMaxConcurrentInstances

        int getMaxConcurrentInstances()
        Returns:
        max number of elastic instances allowed for this instance. It's based on license restrictions.
      • updateAgentPendingStatus

        void updateAgentPendingStatus​(String instanceId)
        Set the agent pending status to true for the given instance id
        Parameters:
        instanceId -
      • addElasticLogEntry

        void addElasticLogEntry​(org.apache.logging.log4j.Logger log,
                                String logEntry)
      • adjustElasticInstanceNumbers

        void adjustElasticInstanceNumbers​(@NotNull
                                          @NotNull ElasticInstanceSchedule instanceSchedule)
                                   throws com.atlassian.aws.AWSException
        Given the ElasticInstanceSchedule startup or bring down the correct number of agents
        Parameters:
        instanceSchedule -
        Throws:
        com.atlassian.aws.AWSException
      • cleanupCredentials

        void cleanupCredentials()
        Cleanup EC2 credentials and disable EC2 support