From e0f58988817a64aa549e36bff2b4c89f191e20ee Mon Sep 17 00:00:00 2001 From: Bjørn Christian Seime Date: Wed, 10 Jun 2020 14:44:16 +0200 Subject: Move Zone API to separate bundle --- container-core/abi-spec.json | 50 ------------------ .../src/main/java/ai/vespa/cloud/Environment.java | 13 ----- .../src/main/java/ai/vespa/cloud/SystemInfo.java | 31 ----------- .../src/main/java/ai/vespa/cloud/Zone.java | 61 ---------------------- .../src/main/java/ai/vespa/cloud/package-info.java | 10 ---- .../test/java/ai/vespa/cloud/SystemInfoTest.java | 49 ----------------- 6 files changed, 214 deletions(-) delete mode 100644 container-core/src/main/java/ai/vespa/cloud/Environment.java delete mode 100644 container-core/src/main/java/ai/vespa/cloud/SystemInfo.java delete mode 100644 container-core/src/main/java/ai/vespa/cloud/Zone.java delete mode 100644 container-core/src/main/java/ai/vespa/cloud/package-info.java delete mode 100644 container-core/src/test/java/ai/vespa/cloud/SystemInfoTest.java (limited to 'container-core') diff --git a/container-core/abi-spec.json b/container-core/abi-spec.json index 3e6276f3f6e..dac33d2d431 100644 --- a/container-core/abi-spec.json +++ b/container-core/abi-spec.json @@ -880,55 +880,5 @@ "public bridge synthetic java.lang.Object clone()" ], "fields": [] - }, - "ai.vespa.cloud.Environment": { - "superClass": "java.lang.Enum", - "interfaces": [], - "attributes": [ - "public", - "final", - "enum" - ], - "methods": [ - "public static ai.vespa.cloud.Environment[] values()", - "public static ai.vespa.cloud.Environment valueOf(java.lang.String)" - ], - "fields": [ - "public static final enum ai.vespa.cloud.Environment dev", - "public static final enum ai.vespa.cloud.Environment perf", - "public static final enum ai.vespa.cloud.Environment test", - "public static final enum ai.vespa.cloud.Environment staging", - "public static final enum ai.vespa.cloud.Environment prod" - ] - }, - "ai.vespa.cloud.SystemInfo": { - "superClass": "java.lang.Object", - "interfaces": [], - "attributes": [ - "public" - ], - "methods": [ - "public void (com.yahoo.cloud.config.ConfigserverConfig)", - "public void (ai.vespa.cloud.Zone)", - "public ai.vespa.cloud.Zone zone()" - ], - "fields": [] - }, - "ai.vespa.cloud.Zone": { - "superClass": "java.lang.Object", - "interfaces": [], - "attributes": [ - "public" - ], - "methods": [ - "public void (ai.vespa.cloud.Environment, java.lang.String)", - "public ai.vespa.cloud.Environment environment()", - "public java.lang.String region()", - "public java.lang.String toString()", - "public int hashCode()", - "public boolean equals(java.lang.Object)", - "public static ai.vespa.cloud.Zone from(java.lang.String)" - ], - "fields": [] } } \ No newline at end of file diff --git a/container-core/src/main/java/ai/vespa/cloud/Environment.java b/container-core/src/main/java/ai/vespa/cloud/Environment.java deleted file mode 100644 index 8f1d9fc962a..00000000000 --- a/container-core/src/main/java/ai/vespa/cloud/Environment.java +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package ai.vespa.cloud; - -/** - * The environments of a Vespa cloud instance - * - * @author bratseth - */ -public enum Environment { - - dev, perf, test, staging, prod - -} diff --git a/container-core/src/main/java/ai/vespa/cloud/SystemInfo.java b/container-core/src/main/java/ai/vespa/cloud/SystemInfo.java deleted file mode 100644 index 0524ae072cd..00000000000 --- a/container-core/src/main/java/ai/vespa/cloud/SystemInfo.java +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package ai.vespa.cloud; - -import com.google.inject.Inject; -import com.yahoo.cloud.config.ConfigserverConfig; - -/** - * Provides information about the system in which this container is running. - * This is available and can be injected when running in a cloud environment. - * - * @author bratseth - */ -public class SystemInfo { - - private final Zone zone; - - /** Do not use */ - @Inject - public SystemInfo(ConfigserverConfig config) { - this.zone = new Zone(Environment.valueOf(config.environment()), config.region()); - } - - /** Create an instance for testing */ - public SystemInfo(Zone zone) { - this.zone = zone; - } - - /** Returns the zone this is running in */ - public Zone zone() { return zone; } - -} diff --git a/container-core/src/main/java/ai/vespa/cloud/Zone.java b/container-core/src/main/java/ai/vespa/cloud/Zone.java deleted file mode 100644 index 48293aa7908..00000000000 --- a/container-core/src/main/java/ai/vespa/cloud/Zone.java +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package ai.vespa.cloud; - -import java.util.Objects; - -/** - * The zone in which a cloud deployment may be running. - * A zone is a combination of an environment and a region. - * - * @author bratseth - */ -public class Zone { - - private final Environment environment; - - private final String region; - - public Zone(Environment environment, String region) { - this.environment = environment; - this.region = region; - } - - public Environment environment() { return environment; } - public String region() { return region; } - - /** Returns the string environment.region */ - @Override - public String toString() { return environment + "." + region; } - - @Override - public int hashCode() { return Objects.hash(environment, region); } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if ( ! (o instanceof Zone)) return false; - Zone other = (Zone)o; - return this.environment.equals(other.environment) && this.region.equals(other.region); - } - - /** - * Creates a zone from a string on the form environment.region - * - * @throws IllegalArgumentException if the given string is not a valid zone - */ - public static Zone from(String zoneString) { - String[] parts = zoneString.split("\\."); - if (parts.length != 2) - throw new IllegalArgumentException("A zone string must be on the form [environment].[region], but was '" + zoneString + "'"); - - Environment environment; - try { - environment = Environment.valueOf(parts[0]); - } - catch (IllegalArgumentException e) { - throw new IllegalArgumentException("Invalid zone '" + zoneString + "': No environment named '" + parts[0] + "'"); - } - return new Zone(environment, parts[1]); - } - -} diff --git a/container-core/src/main/java/ai/vespa/cloud/package-info.java b/container-core/src/main/java/ai/vespa/cloud/package-info.java deleted file mode 100644 index 259a2bda258..00000000000 --- a/container-core/src/main/java/ai/vespa/cloud/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -/** - * Public API to the Vespa cloud, available when this container runs in a cloud. - */ -@ExportPackage -@PublicApi -package ai.vespa.cloud; - -import com.yahoo.api.annotations.PublicApi; -import com.yahoo.osgi.annotation.ExportPackage; diff --git a/container-core/src/test/java/ai/vespa/cloud/SystemInfoTest.java b/container-core/src/test/java/ai/vespa/cloud/SystemInfoTest.java deleted file mode 100644 index 6bc8b395e00..00000000000 --- a/container-core/src/test/java/ai/vespa/cloud/SystemInfoTest.java +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package ai.vespa.cloud; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; - -/** - * @author bratseth - */ -public class SystemInfoTest { - - @Test - public void testSystemInfo() { - Zone zone = new Zone(Environment.dev, "us-west-1"); - SystemInfo info = new SystemInfo(zone); - assertEquals(zone, info.zone()); - } - - @Test - public void testZone() { - Zone zone = Zone.from("dev.us-west-1"); - zone = Zone.from(zone.toString()); - assertEquals(Environment.dev, zone.environment()); - assertEquals("us-west-1", zone.region()); - Zone sameZone = Zone.from("dev.us-west-1"); - assertEquals(sameZone.hashCode(), zone.hashCode()); - assertEquals(sameZone, zone); - - try { - Zone.from("invalid"); - fail("Expected exception"); - } - catch (IllegalArgumentException e) { - assertEquals("A zone string must be on the form [environment].[region], but was 'invalid'", - e.getMessage()); - } - - try { - Zone.from("invalid.us-west-1"); - fail("Expected exception"); - } - catch (IllegalArgumentException e) { - assertEquals("Invalid zone 'invalid.us-west-1': No environment named 'invalid'", e.getMessage()); - } - } - -} -- cgit v1.2.3