diff options
Diffstat (limited to 'controller-api')
3 files changed, 22 insertions, 3 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java index 0c9a415beab..11940b30ac1 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java @@ -144,4 +144,8 @@ public interface ConfigServer { /** Get maximum resources consumed */ QuotaUsage getQuotaUsage(DeploymentId deploymentId); + + /** Sets suspension status — whether application node operations are orchestrated — for the given deployment. */ + void setSuspension(DeploymentId deploymentId, boolean suspend); + } 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 2acf7c93925..12df0a5e0a7 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 @@ -169,8 +169,10 @@ enum PathGroup { "/application/v4/tenant/{tenant}/application/{application}/instance/{instance}/deploy/{job}", "/application/v4/tenant/{tenant}/application/{application}/instance/{instance}/environment/dev/region/{region}", "/application/v4/tenant/{tenant}/application/{application}/instance/{instance}/environment/dev/region/{region}/deploy", + "/application/v4/tenant/{tenant}/application/{application}/instance/{instance}/environment/dev/region/{region}/suspend", "/application/v4/tenant/{tenant}/application/{application}/instance/{instance}/environment/perf/region/{region}", "/application/v4/tenant/{tenant}/application/{application}/instance/{instance}/environment/perf/region/{region}/deploy", + "/application/v4/tenant/{tenant}/application/{application}/instance/{instance}/environment/perf/region/{region}/suspend", "/application/v4/tenant/{tenant}/application/{application}/environment/dev/region/{region}/instance/{instance}", "/application/v4/tenant/{tenant}/application/{application}/environment/dev/region/{region}/instance/{instance}/deploy", "/application/v4/tenant/{tenant}/application/{application}/environment/perf/region/{region}/instance/{instance}", diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SecurityContext.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SecurityContext.java index 92f902dc0f7..46d1dc76b57 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SecurityContext.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SecurityContext.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.hosted.controller.api.role; import java.security.Principal; +import java.time.Instant; import java.util.Objects; import java.util.Set; @@ -14,10 +15,16 @@ public class SecurityContext { private final Principal principal; private final Set<Role> roles; + private final Instant issuedAt; - public SecurityContext(Principal principal, Set<Role> roles) { + public SecurityContext(Principal principal, Set<Role> roles, Instant issuedAt) { this.principal = Objects.requireNonNull(principal); this.roles = Set.copyOf(roles); + this.issuedAt = Objects.requireNonNull(issuedAt); + } + + public SecurityContext(Principal principal, Set<Role> roles) { + this(principal, roles, Instant.EPOCH); } public Principal principal() { @@ -28,18 +35,23 @@ public class SecurityContext { return roles; } + public Instant issuedAt() { + return issuedAt; + } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; SecurityContext that = (SecurityContext) o; return Objects.equals(principal, that.principal) && - Objects.equals(roles, that.roles); + Objects.equals(roles, that.roles) && + Objects.equals(issuedAt, that.issuedAt); } @Override public int hashCode() { - return Objects.hash(principal, roles); + return Objects.hash(principal, roles, issuedAt); } @Override @@ -47,6 +59,7 @@ public class SecurityContext { return "SecurityContext{" + "principal=" + principal + ", roles=" + roles + + ", issuedAt=" + issuedAt + '}'; } |