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
}