summaryrefslogtreecommitdiffstats
path: root/hosted-zone-api
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-06-29 09:46:13 +0200
committerMartin Polden <mpolden@mpolden.no>2022-06-29 09:57:03 +0200
commit59b5da29c4c1bce5a3bc06e28bacb861d4d620b4 (patch)
tree6bca720d8df0592abd888c9f8c7459dad3d6ccef /hosted-zone-api
parentc4988ee92920c827bb60f0ce30dcd7d8b49e5363 (diff)
Add cloud to SystemInfo
Diffstat (limited to 'hosted-zone-api')
-rw-r--r--hosted-zone-api/abi-spec.json20
-rw-r--r--hosted-zone-api/src/main/java/ai/vespa/cloud/Cloud.java9
-rw-r--r--hosted-zone-api/src/main/java/ai/vespa/cloud/SystemInfo.java9
-rw-r--r--hosted-zone-api/src/test/java/ai/vespa/cloud/SystemInfoTest.java4
4 files changed, 39 insertions, 3 deletions
diff --git a/hosted-zone-api/abi-spec.json b/hosted-zone-api/abi-spec.json
index 826f731b4e0..5708ae8374c 100644
--- a/hosted-zone-api/abi-spec.json
+++ b/hosted-zone-api/abi-spec.json
@@ -16,6 +16,23 @@
],
"fields": []
},
+ "ai.vespa.cloud.Cloud": {
+ "superClass": "java.lang.Record",
+ "interfaces": [],
+ "attributes": [
+ "public",
+ "final",
+ "record"
+ ],
+ "methods": [
+ "public void <init>(java.lang.String)",
+ "public final java.lang.String toString()",
+ "public final int hashCode()",
+ "public final boolean equals(java.lang.Object)",
+ "public java.lang.String name()"
+ ],
+ "fields": []
+ },
"ai.vespa.cloud.Cluster": {
"superClass": "java.lang.Object",
"interfaces": [],
@@ -72,9 +89,10 @@
"public"
],
"methods": [
- "public void <init>(ai.vespa.cloud.ApplicationId, ai.vespa.cloud.Zone, ai.vespa.cloud.Cluster, ai.vespa.cloud.Node)",
+ "public void <init>(ai.vespa.cloud.ApplicationId, ai.vespa.cloud.Zone, ai.vespa.cloud.Cloud, ai.vespa.cloud.Cluster, ai.vespa.cloud.Node)",
"public ai.vespa.cloud.ApplicationId application()",
"public ai.vespa.cloud.Zone zone()",
+ "public ai.vespa.cloud.Cloud cloud()",
"public ai.vespa.cloud.Cluster cluster()",
"public ai.vespa.cloud.Node node()"
],
diff --git a/hosted-zone-api/src/main/java/ai/vespa/cloud/Cloud.java b/hosted-zone-api/src/main/java/ai/vespa/cloud/Cloud.java
new file mode 100644
index 00000000000..75d002b80dd
--- /dev/null
+++ b/hosted-zone-api/src/main/java/ai/vespa/cloud/Cloud.java
@@ -0,0 +1,9 @@
+package ai.vespa.cloud;
+
+/**
+ * The cloud provider of a Vespa Cloud instance.
+ *
+ * @author mpolden
+ */
+public record Cloud(String name) {
+}
diff --git a/hosted-zone-api/src/main/java/ai/vespa/cloud/SystemInfo.java b/hosted-zone-api/src/main/java/ai/vespa/cloud/SystemInfo.java
index 752e78b580f..9502ccdb52c 100644
--- a/hosted-zone-api/src/main/java/ai/vespa/cloud/SystemInfo.java
+++ b/hosted-zone-api/src/main/java/ai/vespa/cloud/SystemInfo.java
@@ -13,12 +13,14 @@ public class SystemInfo {
private final ApplicationId application;
private final Zone zone;
+ private final Cloud cloud;
private final Cluster cluster;
private final Node node;
- public SystemInfo(ApplicationId application, Zone zone, Cluster cluster, Node node) {
+ public SystemInfo(ApplicationId application, Zone zone, Cloud cloud, Cluster cluster, Node node) {
this.application = Objects.requireNonNull(application, "Application cannot be null");
this.zone = Objects.requireNonNull(zone, "Zone cannot be null");
+ this.cloud = Objects.requireNonNull(cloud, "Cloud cannot be null");
this.cluster = Objects.requireNonNull(cluster, "Cluster cannot be null");
this.node = Objects.requireNonNull(node, "Node cannot be null");
}
@@ -29,6 +31,11 @@ public class SystemInfo {
/** Returns the zone this is running in */
public Zone zone() { return zone; }
+ /** Returns the cloud provider this is using */
+ public Cloud cloud() {
+ return cloud;
+ }
+
/** Returns the cluster this is part of */
public Cluster cluster() { return cluster; }
diff --git a/hosted-zone-api/src/test/java/ai/vespa/cloud/SystemInfoTest.java b/hosted-zone-api/src/test/java/ai/vespa/cloud/SystemInfoTest.java
index c14955d6614..80b22a185bb 100644
--- a/hosted-zone-api/src/test/java/ai/vespa/cloud/SystemInfoTest.java
+++ b/hosted-zone-api/src/test/java/ai/vespa/cloud/SystemInfoTest.java
@@ -17,12 +17,14 @@ public class SystemInfoTest {
public void testSystemInfo() {
ApplicationId application = new ApplicationId("tenant1", "application1", "instance1");
Zone zone = new Zone(Environment.dev, "us-west-1");
+ Cloud cloud = new Cloud("aws");
Cluster cluster = new Cluster(1, List.of());
Node node = new Node(0);
- SystemInfo info = new SystemInfo(application, zone, cluster, node);
+ SystemInfo info = new SystemInfo(application, zone, cloud, cluster, node);
assertEquals(application, info.application());
assertEquals(zone, info.zone());
+ assertEquals(cloud, info.cloud());
assertEquals(cluster, info.cluster());
assertEquals(node, info.node());
}