summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2022-10-26 16:36:10 +0200
committerValerij Fredriksen <valerijf@yahooinc.com>2022-10-27 13:18:20 +0200
commitabe78abeb5e7ed00dc3a743ca77a13e95fa47ce6 (patch)
tree2a4bd85bb288ac1bc8d20ca2153b09eef4f4aaf7
parent15719d50be8f37fdf78f4e6855af26c7d47d0ad8 (diff)
Return enclave information for instance in application/v4
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java3
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java2
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java6
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java5
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java1
5 files changed, 15 insertions, 2 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java
index fa28840d7ee..d26ebb62181 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java
@@ -110,4 +110,7 @@ public interface ZoneRegistry {
/** IAM tenant developer role ARN */
Optional<String> tenantDeveloperRoleArn(TenantName tenant);
+ /** Returns athenz domain tied to the given cloud account */
+ AthenzDomain cloudAccountAthenzDomain(CloudAccount cloudAccount);
+
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
index 7e284a8aef5..902c1803b6b 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
@@ -670,7 +670,7 @@ public class ApplicationController {
}
}
- private Optional<CloudAccount> decideCloudAccountOf(DeploymentId deployment, DeploymentSpec spec) {
+ public Optional<CloudAccount> decideCloudAccountOf(DeploymentId deployment, DeploymentSpec spec) {
ZoneId zoneId = deployment.zoneId();
Optional<CloudAccount> requestedAccount = spec.instance(deployment.applicationId().instance())
.flatMap(instanceSpec -> instanceSpec.cloudAccount(zoneId.environment(),
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
index 35483309cae..161e4b30dd9 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
@@ -1814,6 +1814,12 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
application.projectId().ifPresent(i -> response.setString("screwdriverId", String.valueOf(i)));
+ controller.applications().decideCloudAccountOf(deploymentId, application.deploymentSpec()).ifPresent(cloudAccount -> {
+ Cursor enclave = response.setObject("enclave");
+ enclave.setString("cloudAccount", cloudAccount.value());
+ enclave.setString("athensDomain", controller.zoneRegistry().cloudAccountAthenzDomain(cloudAccount).value());
+ });
+
var instance = application.instances().get(deploymentId.applicationId().instance());
if (instance != null) {
if (!instance.rotations().isEmpty() && deployment.zone().environment() == Environment.prod)
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java
index a3ea56ccc72..dd0f2ca028c 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java
@@ -255,6 +255,11 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry
@Override public Optional<String> tenantDeveloperRoleArn(TenantName tenant) { return Optional.empty(); }
@Override
+ public AthenzDomain cloudAccountAthenzDomain(CloudAccount cloudAccount) {
+ return AthenzDomain.from("vespa.enclave");
+ }
+
+ @Override
public boolean hasZone(ZoneId zoneId) {
return zones.stream().anyMatch(zone -> zone.getId().equals(zoneId));
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java
index af0a85f1a90..ab671be23eb 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java
@@ -331,7 +331,6 @@ public class ApplicationApiCloudTest extends ControllerContainerCloudTest {
"\"error-code\":\"BAD_REQUEST\"," +
"\"message\":\"Invalid application id\"" +
"}", 400);
-
}
@Test