diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-02-18 16:06:40 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-02-18 16:06:40 +0100 |
commit | cf5d9df82b0502dfcc975b847915c4606eb02dea (patch) | |
tree | f334a03c3556037e1e9008bb8b0f56806375c089 /controller-api | |
parent | cdcc928fb9f657a92f0a71bd541590cc821c76c3 (diff) |
Pass and store traffic fractions
Diffstat (limited to 'controller-api')
3 files changed, 41 insertions, 2 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java index 63ee93cb4c7..80c1f38ecf4 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java @@ -74,8 +74,8 @@ public interface NodeRepository { Application getApplication(ZoneId zone, ApplicationId application); - void setTrafficFraction(ZoneId zone, ApplicationId application, - double currentTrafficFraction, double maxTrafficFraction); + void patchApplication(ZoneId zone, ApplicationId application, + double currentTrafficFraction, double maxTrafficFraction); /** Upgrade all nodes of given type to a new version */ void upgrade(ZoneId zone, NodeType type, Version version); diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/ApplicationPatch.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/ApplicationPatch.java new file mode 100644 index 00000000000..1d1ea054a2d --- /dev/null +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/ApplicationPatch.java @@ -0,0 +1,34 @@ +// 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.noderepository; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Patchable data under Application + * + * @author bratseth + */ +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +public class ApplicationPatch { + + @JsonProperty + private final Double currentTrafficFraction; + + @JsonProperty + private final Double maxTrafficFraction; + + @JsonCreator + public ApplicationPatch(@JsonProperty("currentTrafficFraction") Double currentTrafficFraction, + @JsonProperty("maxTrafficFraction") Double maxTrafficFraction) { + this.currentTrafficFraction = currentTrafficFraction; + this.maxTrafficFraction = maxTrafficFraction; + } + + public Double getCurrentTrafficFraction() { return currentTrafficFraction; } + public Double getMaxTrafficFraction() { return maxTrafficFraction; } + +} diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/ProvisionResource.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/ProvisionResource.java index 97720adbcc6..337b193a332 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/ProvisionResource.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/ProvisionResource.java @@ -61,6 +61,11 @@ public interface ProvisionResource { @Path("/application/{application}") ApplicationData getApplication(@PathParam("application") String applicationId); + @POST + @Path("/application/{application}") + String patchApplication(@PathParam("application") String applicationId, ApplicationPatch applicationPatch, + @HeaderParam("X-HTTP-Method-Override") String patchOverride); + @PUT @Path("/state/{state}/{hostname}") String setState(@PathParam("state") NodeState state, @PathParam("hostname") String hostname); |