summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-10-07 12:37:02 +0200
committerHarald Musum <musum@yahooinc.com>2023-10-07 12:37:02 +0200
commit95bad6b2f6a6343c556dc2af30d13f76ac289e0b (patch)
tree581532d23c3aae96ea16976edf75e22e8b0118e5 /controller-api
parent178d9d661c4eaebc9803031ec390ff2f9812ad9b (diff)
Add handler for pricing API
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/MockPricingController.java11
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java1
2 files changed, 11 insertions, 1 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/MockPricingController.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/MockPricingController.java
index d38a84dd9ae..dc23e9d0617 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/MockPricingController.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/MockPricingController.java
@@ -7,13 +7,22 @@ import com.yahoo.vespa.hosted.controller.api.integration.pricing.PricingControll
import com.yahoo.vespa.hosted.controller.api.integration.pricing.PricingInfo;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.List;
public class MockPricingController implements PricingController {
@Override
public PriceInformation price(List<ClusterResources> clusterResources, PricingInfo pricingInfo, Plan plan) {
- return new PriceInformation(new BigDecimal(2 * clusterResources.size()), BigDecimal.ZERO);
+ return new PriceInformation(
+ BigDecimal.valueOf(clusterResources.stream()
+ .peek(System.out::println)
+ .mapToDouble(resources -> resources.nodes() *
+ (resources.nodeResources().vcpu() * 1000 +
+ resources.nodeResources().memoryGb() * 100 +
+ resources.nodeResources().diskGb() * 10))
+ .sum())
+ .setScale(2, RoundingMode.HALF_UP), BigDecimal.ZERO);
}
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java
index 6c603a1da7b..cf41fcf4ce8 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java
@@ -234,6 +234,7 @@ enum PathGroup {
"/badge/v1/{*}", // Badges for deployment jobs.
"/zone/v1/{*}", // Lists environment and regions.
"/cli/v1/{*}", // Public information for Vespa CLI.
+ "/pricing/v1/{*}", // Pricing information
"/.well-known/{*}"),
/** Paths used for deploying system-wide feature flags. */