override fun canStartNewInstanceWithDetails()

in aws-ecs-server/src/main/kotlin/jetbrains/buildServer/clouds/ecs/EcsCloudImageImpl.kt [76:90]


    override fun canStartNewInstanceWithDetails(): CanStartNewInstanceResult {
        if (System.currentTimeMillis() < muteTime.get())
            return CanStartNewInstanceResult.no("image is still muted")

        if(instanceLimit in 0..runningInstanceCount)
            return CanStartNewInstanceResult.no("image's running instances limit reached")

        if (cpuReservalionLimit > 0) {
            val monitoringPeriod = TeamCityProperties.getInteger(ECS_METRICS_MONITORING_PERIOD, 1)
            if (apiConnector.getMaxCPUReservation(cluster, monitoringPeriod) > cpuReservalionLimit){
                return CanStartNewInstanceResult.no("CPU reservation limit reached")
            }
        }
        return CanStartNewInstanceResult.yes()
    }