diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-06-20 13:46:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-20 13:46:22 +0200 |
commit | 8d1f90e45fe953a3bedfd937448c4a28071639a4 (patch) | |
tree | 6b457387c9e1d6cc496d4859afdda3295a6073fb /config-model-api/src/main/java/com/yahoo | |
parent | 564842bf4ea7047e2b33899fc21a82ee23bb4e4f (diff) | |
parent | d581622b38817f63d2625e689388ab83b225f0da (diff) |
Merge pull request #9827 from vespa-engine/ogronnesby/update-container-model-with-container-endpoints
Update ContainerModelBuilder to add rotations
Diffstat (limited to 'config-model-api/src/main/java/com/yahoo')
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/model/api/ContainerEndpoint.java | 51 | ||||
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java | 1 |
2 files changed, 52 insertions, 0 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ContainerEndpoint.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ContainerEndpoint.java new file mode 100644 index 00000000000..5641233606e --- /dev/null +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ContainerEndpoint.java @@ -0,0 +1,51 @@ +// Copyright 2019 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.config.model.api; + +import java.util.List; +import java.util.Objects; + +/** + * ContainerEndpoint tracks the service names that a Container Cluster should be + * known as. This is used during request routing both for regular requests and + * for health checks in traffic distribution. + * + * @author ogronnesby + */ +public class ContainerEndpoint { + + private final String clusterId; + private final List<String> names; + + public ContainerEndpoint(String clusterId, List<String> names) { + this.clusterId = Objects.requireNonNull(clusterId); + this.names = List.copyOf(Objects.requireNonNull(names)); + } + + public String clusterId() { + return clusterId; + } + + public List<String> names() { + return names; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ContainerEndpoint that = (ContainerEndpoint) o; + return Objects.equals(clusterId, that.clusterId) && + Objects.equals(names, that.names); + } + + @Override + public int hashCode() { + return Objects.hash(clusterId, names); + } + + @Override + public String toString() { + return String.format("container endpoint %s -> %s", clusterId, names); + } + +} diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java index 514ca2a00f5..b5db9f5eddd 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java @@ -50,6 +50,7 @@ public interface ModelContext { boolean hostedVespa(); Zone zone(); Set<Rotation> rotations(); + Set<ContainerEndpoint> endpoints(); boolean isBootstrap(); boolean isFirstTimeDeployment(); boolean useDedicatedNodeForLogserver(); |