summaryrefslogtreecommitdiffstats
path: root/config-model-api/src
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-09-25 10:11:27 +0200
committerGitHub <noreply@github.com>2023-09-25 10:11:27 +0200
commitaa5339c14efe3d4550c7a8a299039f866a02b948 (patch)
treee5a51c3931b22b77e79b253a0aab3127a03f5e60 /config-model-api/src
parent2f9bf822d9817a24ef070b7e69e3cbc429d43338 (diff)
parent9cb5024db5351c01f4ada6d6c6f9a0ab21c975b1 (diff)
Merge pull request #28639 from vespa-engine/mpolden/remove-duplicate-endpoint-building
Remove unused endpoint name building from config-model
Diffstat (limited to 'config-model-api/src')
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationClusterEndpoint.java75
1 files changed, 3 insertions, 72 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationClusterEndpoint.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationClusterEndpoint.java
index 69749ee6f96..215439aa42a 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationClusterEndpoint.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationClusterEndpoint.java
@@ -2,15 +2,8 @@
package com.yahoo.config.model.api;
-import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.SystemName;
-
import java.util.List;
import java.util.Objects;
-import java.util.Optional;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
/**
* Represents one endpoint for an application cluster
@@ -154,83 +147,21 @@ public class ApplicationClusterEndpoint {
}
- public static class DnsName implements Comparable<DnsName> {
-
- private static final int MAX_LABEL_LENGTH = 63;
-
- private final String name;
-
- private DnsName(String name) {
- this.name = name;
- }
+ public record DnsName(String name) implements Comparable<DnsName> {
public String value() {
return name;
}
- public static DnsName sharedNameFrom(SystemName systemName, ClusterSpec.Id cluster, ApplicationId applicationId, String suffix) {
- String name = dnsParts(systemName, cluster, applicationId)
- .filter(Objects::nonNull) // remove null values that were "default"
- .collect(Collectors.joining("--"));
- return new DnsName(sanitize(name) + suffix); // Need to sanitize name since it is considered one label
- }
-
- public static DnsName sharedL4NameFrom(SystemName systemName, ClusterSpec.Id cluster, ApplicationId applicationId, String suffix) {
- String name = dnsParts(systemName, cluster, applicationId)
- .filter(Objects::nonNull) // remove null values that were "default"
- .map(DnsName::sanitize)
- .collect(Collectors.joining("."));
- return new DnsName(name + suffix);
- }
-
public static DnsName from(String name) {
return new DnsName(name);
}
- private static Stream<String> dnsParts(SystemName systemName, ClusterSpec.Id cluster, ApplicationId applicationId) {
- return Stream.of(
- nullIfDefault(cluster.value()),
- systemPart(systemName),
- nullIfDefault(applicationId.instance().value()),
- applicationId.application().value(),
- applicationId.tenant().value()
- );
- }
-
- /**
- * Remove any invalid characters from the hostnames
- */
- private static String sanitize(String id) {
- return shortenIfNeeded(id.toLowerCase()
- .replace('_', '-')
- .replaceAll("[^a-z0-9-]*", ""));
- }
-
- /**
- * Truncate the given string at the front so its length does not exceed 63 characters.
- */
- private static String shortenIfNeeded(String id) {
- return id.substring(Math.max(0, id.length() - MAX_LABEL_LENGTH));
- }
-
- private static String nullIfDefault(String string) {
- return Optional.of(string).filter(s -> !s.equals("default")).orElse(null);
- }
-
- private static String systemPart(SystemName systemName) {
- return "cd".equals(systemName.value()) ? systemName.value() : null;
- }
-
- @Override
- public String toString() {
- return "DnsName{" +
- "name='" + name + '\'' +
- '}';
- }
-
@Override
public int compareTo(DnsName o) {
return name.compareTo(o.name);
}
+
}
+
}