Interface ExecutableAgentsMatrix

All Known Implementing Classes:
ExecutableAgentsMatrixImpl

public interface ExecutableAgentsMatrix
  • Method Details

    • addBuildAgent

      void addBuildAgent(@NotNull @NotNull BuildAgent buildAgent)
      Record an agent matching ALL requirements
      Parameters:
      buildAgent - that matches
    • addBuildAgents

      void addBuildAgents(@NotNull @NotNull Collection<BuildAgent> buildAgents)
      Record a collection of agents matching ALL requirements
      Parameters:
      buildAgents - that match
    • addImageMatch

      void addImageMatch(@NotNull @NotNull ElasticImageConfiguration imageMatch)
      Record an image that matches all requirements
      Parameters:
      imageMatch - image that matches
    • addImageToMatrix

      void addImageToMatrix(@NotNull @NotNull String requirementKey, @NotNull @NotNull ElasticImageConfiguration image)
      Record an image matching a requirement. May also get recorded to match all requirements
      Parameters:
      requirementKey - for requirement that matches
      image - that matches
    • put

      void put(@NotNull @NotNull String requirementKey, @NotNull @NotNull BuildAgent agent)
      Record an agent matching a requirement. May also get recorded to match all requirements
      Parameters:
      requirementKey - of requirement matched
      agent - that matches
    • getBuildAgents

      @NotNull @NotNull SortedSet<BuildAgent> getBuildAgents()
      Get a set of agents that match ALL requirements. i.e. these agents could build the executable. Includes offline and disabled agents
      Returns:
      a set of agents that match all requirements.
    • getBuildAgents

      @NotNull @NotNull Collection<BuildAgent> getBuildAgents(@NotNull @NotNull String requirementKey)
      Parameters:
      requirementKey - of requirement
      Returns:
      a collection of agents that match a single requirement
    • getImageMatches

      @NotNull @NotNull List<ElasticImageConfiguration> getImageMatches()
      Get a set of elastic images that match ALL requirements. i.e. these images could build the executable.
      Returns:
      a list of images that match all requirements.
    • getImageFromMatrix

      @NotNull @NotNull Collection<ElasticImageConfiguration> getImageFromMatrix(@NotNull @NotNull String requirementKey)
      Parameters:
      requirementKey - of requirement
      Returns:
      a collection of images that match a single requirement
    • getOnlineEnabledBuildAgents

      @NotNull @NotNull Collection<BuildAgent> getOnlineEnabledBuildAgents()
      Get a set of agents that match ALL requirements AND are currently enabled and online. i.e. these agents could build the executable now
      Returns:
      set of online enabled build agents that match all requirements
    • addRequirementWithNoAgentMatch

      @Deprecated void addRequirementWithNoAgentMatch(@NotNull @NotNull ImmutableRequirement requirement)
      Deprecated.
      since 9.3 no longer using separate collections for each unmatched agent type. Use #addRequirementWithNoMatches(ImmutableRequirement) instead
      Record a requirement that does not have any matching agents.
      Parameters:
      requirement - that didn't have a match
    • addRequirementWithNoImageMatch

      @Deprecated void addRequirementWithNoImageMatch(@NotNull @NotNull ImmutableRequirement requirement)
      Deprecated.
      since 9.3 no longer using separate collections for each unmatched agent type. Use #addRequirementWithNoMatches(ImmutableRequirement) instead
      Record a requirement that does not have any matching image.
      Parameters:
      requirement - that didn't have a match
    • getRequirementsWithNoMatches

      @NotNull @NotNull Set<ImmutableRequirement> getRequirementsWithNoMatches()
      Retrieve a list of all requirements which were not matched by any agent or image. If elastic capability is disabled it will ignore images and just look at agent matches.
      Returns:
      Set of requirements with no matches
    • setElasticBambooEnabled

      void setElasticBambooEnabled(boolean elasticBambooEnabled)
      Mark whether elastic support is enabled or not
      Parameters:
      elasticBambooEnabled - whether elastic bamboo is enabled
    • isElasticBambooEnabled

      boolean isElasticBambooEnabled()
      Check if elastic support is enabled
      Returns:
      true if elastic bamboo is enabled, otherwise false
    • isEphemeralTemplatesEnabled

      boolean isEphemeralTemplatesEnabled()
      Since:
      9.3
    • setEphemeralTemplatesEnabled

      void setEphemeralTemplatesEnabled(boolean ephemeralTemplatesEnabled)
      Since:
      9.3
    • getRequirementCount

      int getRequirementCount()
      Returns:
      How many requirements were used to generate this matrix
    • setRequirementCount

      void setRequirementCount(int requirementCount)
      Parameters:
      requirementCount - How many requirements were used to generate this matrix
    • addDedicatedNonMatchingImage

      void addDedicatedNonMatchingImage(@NotNull @NotNull ElasticImageConfiguration elasticImageConfiguration)
      Record image configuration dedicated to the job/plan/project but not satisfying all requirements
      Parameters:
      elasticImageConfiguration -
    • addDedicatedNonMatchingBuildAgent

      void addDedicatedNonMatchingBuildAgent(@NotNull @NotNull BuildAgent buildAgent)
      Record build agent dedicated to the job/plan/project but not satisfying all requirements
      Parameters:
      buildAgent -
    • getDedicatedNonMatchingBuildAgents

      @NotNull @NotNull SortedSet<BuildAgent> getDedicatedNonMatchingBuildAgents()
      Returns:
      set of dedicated agents that don't match all requirements
    • getDedicatedNonMatchingImages

      @NotNull @NotNull List<ElasticImageConfiguration> getDedicatedNonMatchingImages()
      Returns:
      list of dedicated images that don't match all requirements
    • addEphemeralTemplateMatch

      void addEphemeralTemplateMatch(@NotNull @NotNull EphemeralAgentTemplate ephemeralAgentTemplate)
      Record an ephemeral template that matches all requirements
      Parameters:
      ephemeralAgentTemplate - ephemeral template that matches
      Since:
      9.3
    • getEphemeralTemplateMatches

      @NotNull @NotNull List<EphemeralAgentTemplate> getEphemeralTemplateMatches()
      Get a set of ephemeral templates that match ALL requirements. i.e. these templates could build the executable.
      Returns:
      a list of ephemeral templates that match all requirements.
    • addEphemeralTemplateToMatrix

      void addEphemeralTemplateToMatrix(@NotNull @NotNull String requirementKey, @NotNull @NotNull EphemeralAgentTemplate template)
      Record an ephemeral template matching a requirement. May also get recorded to match all requirements
      Parameters:
      requirementKey - for requirement that matches
      template - that matches
      Since:
      9.3
    • getEphemeralTemplatesFromMatrix

      @NotNull @NotNull Collection<EphemeralAgentTemplate> getEphemeralTemplatesFromMatrix(@NotNull @NotNull String requirementKey)
      Parameters:
      requirementKey - of requirement
      Returns:
      a collection of ephemeral templates that match a single requirement
      Since:
      9.3
    • addRequirementIfNoMatches

      boolean addRequirementIfNoMatches(@NotNull @NotNull ImmutableRequirement requirement)
      Record a requirement if it does not have any matching agent, image or ephemeral template.
      Parameters:
      requirement - that didn't have a match
      Since:
      9.3
    • getDedicatedNonMatchingEphemeralTemplates

      List<EphemeralAgentTemplate> getDedicatedNonMatchingEphemeralTemplates()
      Returns:
      list of dedicated ephemeral templates that don't match all the requirements
      Since:
      9.3
    • addDedicatedNonMatchingEphemeralTemplate

      void addDedicatedNonMatchingEphemeralTemplate(@NotNull @NotNull EphemeralAgentTemplate template)
      Record an ephemeral template dedicated to the job/plan/project but not satisfying all requirements
      Since:
      9.3
    • getUsesDockerConfiguration

      boolean getUsesDockerConfiguration()
      Checks whether the executable uses the docker configuration.
      Since:
      9.3
    • setUsesDockerConfiguration

      void setUsesDockerConfiguration(boolean usesDockerConfiguration)
      Sets whether the executable uses the docker configuration.
      Since:
      9.3