diff options
Diffstat (limited to 'controller-api')
3 files changed, 38 insertions, 3 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 d9290b8d685..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 @@ -18,7 +18,7 @@ public interface BillingController { /** * @return String containing error message if something went wrong. Empty otherwise */ - Optional<String> 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 ac6ae7081ab..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 Optional<String> setPlan(TenantName tenant, PlanId planId, boolean hasApplications) { + public PlanResult setPlan(TenantName tenant, PlanId planId, boolean hasApplications) { plans.put(tenant, planId); - return Optional.empty(); + 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; + } + +} |