public CanStartNewInstanceResult canStartNewInstanceWithDetails()

in teamcity-kubernetes-plugin-server/src/main/java/jetbrains/buildServer/clouds/kubernetes/KubeCloudClient.java [192:208]


    public CanStartNewInstanceResult canStartNewInstanceWithDetails(@NotNull CloudImage image) {
        KubeCloudImage kubeCloudImage = (KubeCloudImage)image;
        String kubeCloudImageId = kubeCloudImage.getId();
        if(!myImageIdToImageMap.containsKey(kubeCloudImageId)){
            return CanStartNewInstanceResult.no("Can't start instance of unknown cloud image with id " + kubeCloudImageId);
        }
        int profileInstanceLimit = myKubeClientParams.getInstanceLimit();
        if(profileInstanceLimit >= 0 && myImageIdToImageMap.values().stream().mapToInt(KubeCloudImage::getRunningInstanceCount).sum() >= profileInstanceLimit) {
            return CanStartNewInstanceResult.no("Profile instance limit reached");
        }

        int imageLimit = kubeCloudImage.getInstanceLimit();
        if (imageLimit >= 0 && kubeCloudImage.getRunningInstanceCount() >= imageLimit){
            return CanStartNewInstanceResult.no("Image instance limit reached");
        }
        return CanStartNewInstanceResult.yes();
    }