summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorØyvind Grønnesby <oyving@verizonmedia.com>2020-12-01 14:41:27 +0100
committerØyvind Grønnesby <oyving@verizonmedia.com>2020-12-01 14:41:27 +0100
commit670778c6f081ceb7618d3a49e21bc355fa9458e1 (patch)
tree8344d9f317d9ff5391242e3215cb281339f0428a /controller-api
parent9f31d47a80a9d1827be9adc9d4a8a2c0f4aff706 (diff)
Introduce trial tenant limit
Create a feature flag that has the max nr. of tenants with the trial plan. If the number is exceeded we fail creation of new tenants (who are implicitly in the trial plan).
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java2
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java8
2 files changed, 10 insertions, 0 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java
index 0fc20095b41..1bd1faf5dd1 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java
@@ -16,6 +16,8 @@ public interface BillingController {
PlanId getPlan(TenantName tenant);
+ Map<TenantName, PlanId> getPlans(List<TenantName> tenants);
+
String getPlanDisplayName(PlanId planId);
Quota getQuota(TenantName tenant);
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java
index 21eada37ab1..3f241510ed6 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java
@@ -34,6 +34,14 @@ public class MockBillingController implements BillingController {
}
@Override
+ public Map<TenantName, PlanId> getPlans(List<TenantName> tenants) {
+ return tenants.stream().collect(Collectors.toMap(
+ (TenantName t) -> t,
+ (TenantName t) -> plans.getOrDefault(t, PlanId.from("trial"))
+ ));
+ }
+
+ @Override
public String getPlanDisplayName(PlanId planId) {
return "Plan with id: " + planId.value();
}