summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2020-07-02 13:48:20 +0200
committerOla Aunrønning <olaa@verizonmedia.com>2020-07-02 13:48:20 +0200
commitf69cf4cb4a0538e93dda495c23c79a29ab451d48 (patch)
treed40ec7698099dee188e5514bd2cb79b46dd6de47 /controller-server
parenta6ca420bef2c7b7f43afc541d62c889dbac69c06 (diff)
Check if tenant has active deployments, instead of apps
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandler.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandler.java
index 0e6f856b115..8fad0db4368 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandler.java
@@ -19,6 +19,7 @@ import com.yahoo.slime.Slime;
import com.yahoo.slime.SlimeUtils;
import com.yahoo.vespa.hosted.controller.ApplicationController;
import com.yahoo.vespa.hosted.controller.Controller;
+import com.yahoo.vespa.hosted.controller.Instance;
import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId;
import com.yahoo.vespa.hosted.controller.api.integration.billing.PaymentInstrument;
import com.yahoo.vespa.hosted.controller.api.integration.billing.Invoice;
@@ -137,9 +138,9 @@ public class BillingApiHandler extends LoggingRequestHandler {
var tenantName = TenantName.from(tenant);
var slime = inspectorOrThrow(request);
var planId = PlanId.from(slime.field("plan").asString());
- var hasApplications = applicationController.asList(tenantName).size() > 0;
- var result = billingController.setPlan(tenantName, planId, hasApplications);
+ var hasDeployments = hasDeployments(tenantName);
+ var result = billingController.setPlan(tenantName, planId, hasDeployments);
if (result.isSuccess())
return new StringResponse("Plan: " + planId.value());
@@ -380,4 +381,14 @@ public class BillingApiHandler extends LoggingRequestHandler {
return LocalDate.parse(until);
}
+ private boolean hasDeployments(TenantName tenantName) {
+ return applicationController.asList(tenantName)
+ .stream()
+ .flatMap(app -> app.instances().values()
+ .stream()
+ .flatMap(instance -> instance.deployments().values().stream())
+ )
+ .count() > 0;
+ }
+
}