diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2020-07-02 10:24:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-02 10:24:59 +0200 |
commit | 87372a16c7ec43a5babcf44bb5ff109ac3369b2e (patch) | |
tree | 53430261cd07b3ed857fcbcc34f386bc18ce9618 /controller-api | |
parent | ff89bb61f5454175572d10c53d139eef55f2eda3 (diff) | |
parent | 5deb539bdb7a2aef53a0741bdc29cf0ba6b96dc8 (diff) |
Merge pull request #13756 from vespa-engine/olaa/propagate-error-message
Propagate error message when setting plan fails
Diffstat (limited to 'controller-api')
3 files changed, 39 insertions, 4 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 bd9568fe891..24864c03530 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,9 +16,9 @@ public interface BillingController { PlanId getPlan(TenantName tenant); /** - * Returns true if plan was changed + * @return String containing error message if something went wrong. Empty otherwise */ - boolean setPlan(TenantName tenant, PlanId planId, boolean hasApplications); + PlanResult setPlan(TenantName tenant, PlanId planId, boolean hasApplications); Invoice.Id createInvoiceForPeriod(TenantName tenant, ZonedDateTime startTime, ZonedDateTime endTime, String agent); 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 a4c25e301ba..4f367d6498e 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 @@ -30,9 +30,9 @@ public class MockBillingController implements BillingController { } @Override - public boolean setPlan(TenantName tenant, PlanId planId, boolean hasApplications) { + public PlanResult setPlan(TenantName tenant, PlanId planId, boolean hasApplications) { plans.put(tenant, planId); - return true; + return PlanResult.success(); } @Override diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanResult.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanResult.java new file mode 100644 index 00000000000..a4803ccde64 --- /dev/null +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanResult.java @@ -0,0 +1,35 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.hosted.controller.api.integration.billing; + +import java.util.Optional; + +/** + * Result of {@link BillingController#setPlan} + * + * @author olaa + */ +public class PlanResult { + + private final Optional<String> errorMessage; + + private PlanResult(Optional<String> errorMessage) { + this.errorMessage = errorMessage; + } + + public static PlanResult success() { + return new PlanResult(Optional.empty()); + } + + public static PlanResult error(String errorMessage) { + return new PlanResult(Optional.of(errorMessage)); + } + + public boolean isSuccess() { + return errorMessage.isEmpty(); + } + + public Optional<String> getErrorMessage() { + return errorMessage; + } + +} |