diff options
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 |
commit | 670778c6f081ceb7618d3a49e21bc355fa9458e1 (patch) | |
tree | 8344d9f317d9ff5391242e3215cb281339f0428a /controller-api | |
parent | 9f31d47a80a9d1827be9adc9d4a8a2c0f4aff706 (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')
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(); } |