aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java5
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/EndpointTest.java23
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