override fun filterAgents()

in teamcity-kubernetes-plugin-server/src/main/java/jetbrains/buildServer/clouds/kubernetes/buildFeature/RunInKubeAgentsFilter.kt [18:43]


    override fun filterAgents(context: AgentsFilterContext): AgentsFilterResult {
        val promotionId = context.startingBuild.buildPromotionInfo.id
        val promotion = buildPromotionManager.findPromotionById(promotionId)
        val featureVal = promotion?.parameters?.get(KubeParametersConstants.RUN_IN_KUBE_FEATURE)
        val result = AgentsFilterResult()
        val suitableAgent = ArrayList<SBuildAgent>()
        context.agentsForStartingBuild.forEach {
            val buildId = it.buildParameters[Constants.ENV_PREFIX + KubeContainerEnvironment.BUILD_ID]
            if (featureVal == "true") {
                if (buildId == promotionId.toString()) {
                    suitableAgent.add(it)
                }
            } else if (StringUtil.isEmpty(buildId)){
                suitableAgent.add(it)
            }
        }
        if (suitableAgent.size == 0){
            if (featureVal == "true") {
                result.waitReason = SimpleWaitReason("The agent for this build is not ready yet")
            } else {
                result.waitReason = SimpleWaitReason("There are no free agents")
            }
        }
        result.filteredConnectedAgents = suitableAgent
        return result
    }