Interface ExecutableAgentsMatrix

    • Method Detail

      • 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