diff options
2 files changed, 17 insertions, 11 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java index 29496877a9b..88366466289 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java @@ -285,11 +285,12 @@ public class Endpoint { /** Returns the given region without availability zone */ private static RegionName effectiveRegion(RegionName region) { - if (region.value().isEmpty()) return region; + if (region.value().length() < 2) return region; String value = region.value(); char lastChar = value.charAt(value.length() - 1); if (lastChar >= 'a' && lastChar <= 'z') { // Remove availability zone - value = value.substring(0, value.length() - 1); + int skip = value.charAt(value.length() - 2) == '-' ? 2 : 1; + value = value.substring(0, value.length() - skip); } return RegionName.from(value); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/EndpointTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/EndpointTest.java index 35cca0e1f1f..81fc610d1f6 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/EndpointTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/EndpointTest.java @@ -241,9 +241,15 @@ public class EndpointTest { var cluster = ClusterSpec.Id.from("default"); var prodZone = ZoneId.from("prod", "us-north-2"); Map<String, Endpoint> tests = Map.of( - "https://a1.t1.us-north-1.w.vespa-app.cloud/", + "https://a1.t1.aws-us-north-1.w.vespa-app.cloud/", Endpoint.of(instance1) - .targetRegion(cluster, ZoneId.from("prod", "us-north-1a")) + .targetRegion(cluster, ZoneId.from("prod", "aws-us-north-1a")) + .routingMethod(RoutingMethod.exclusive) + .on(Port.tls()) + .in(SystemName.Public), + "https://a1.t1.gcp-us-south1.w.vespa-app.cloud/", + Endpoint.of(instance1) + .targetRegion(cluster, ZoneId.from("prod", "gcp-us-south1-c")) .routingMethod(RoutingMethod.exclusive) .on(Port.tls()) .in(SystemName.Public), @@ -261,14 +267,13 @@ public class EndpointTest { .in(SystemName.Public) ); tests.forEach((expected, endpoint) -> assertEquals(expected, endpoint.url().toString())); - Endpoint endpoint = Endpoint.of(instance1) - .targetRegion(cluster, ZoneId.from("prod", "us-north-1a")) - .routingMethod(RoutingMethod.exclusive) - .on(Port.tls()) - .in(SystemName.main); + + assertEquals("Availability zone is removed from region", + "aws-us-north-1", + tests.get("https://a1.t1.aws-us-north-1.w.vespa-app.cloud/").targets().get(0).deployment().zoneId().region().value()); assertEquals("Availability zone is removed from region", - "us-north-1", - endpoint.targets().get(0).deployment().zoneId().region().value()); + "gcp-us-south1", + tests.get("https://a1.t1.gcp-us-south1.w.vespa-app.cloud/").targets().get(0).deployment().zoneId().region().value()); } @Test |