diff options
author | Valerij Fredriksen <valerijf@yahooinc.com> | 2023-06-01 16:06:37 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@yahooinc.com> | 2023-06-01 16:06:37 +0200 |
commit | b4da5723743f8ee547f0f9f0acd57652447df53b (patch) | |
tree | c8c10ae2ef351b65ad589a143f9d34c485e0a232 | |
parent | 4cae2ecf6c9c5ac7f329a112451909d0f7ac3950 (diff) |
Fix exclave condition
4 files changed, 10 insertions, 6 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 6cdb197b307..f2cd55b88b2 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 @@ -39,8 +39,12 @@ public interface ZoneRegistry { /** Returns whether cloudAccount in this system supports given zone */ boolean hasZone(ZoneId zoneId, CloudAccount cloudAccount); - /** Returns whether the given cloud account is an enclave */ - boolean isEnclave(CloudAccount cloudAccount); + /** Returns whether the given cloud account is not one of the system accounts */ + boolean isExternal(CloudAccount cloudAccount); + + default boolean isExclave(CloudAccount cloudAccount) { + return system().isPublic() && isExternal(cloudAccount); + } /** Returns a list containing the id of all zones in this registry */ ZoneFilter zones(); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveUriUpdater.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveUriUpdater.java index c4f3c611cc5..a8d025dbb6a 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveUriUpdater.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveUriUpdater.java @@ -57,7 +57,7 @@ public class ArchiveUriUpdater extends ControllerMaintainer { for (var application : applications.asList()) { for (var instance : application.instances().values()) { for (var deployment : instance.deployments().values()) { - if (zoneRegistry.isEnclave(deployment.cloudAccount())) accountsByZone.get(deployment.zone()).add(deployment.cloudAccount()); + if (zoneRegistry.isExclave(deployment.cloudAccount())) accountsByZone.get(deployment.zone()).add(deployment.cloudAccount()); else tenantsByZone.get(deployment.zone()).add(instance.id().tenant()); } } 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 86211ef7c35..28b048613ef 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 @@ -1883,7 +1883,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { application.projectId().ifPresent(i -> response.setString("screwdriverId", String.valueOf(i))); - if (controller.zoneRegistry().isEnclave(deployment.cloudAccount())) { + if (controller.zoneRegistry().isExternal(deployment.cloudAccount())) { Cursor enclave = response.setObject("enclave"); enclave.setString("cloudAccount", deployment.cloudAccount().value()); controller.zoneRegistry().cloudAccountAthenzDomain(deployment.cloudAccount()).ifPresent(domain -> enclave.setString("athensDomain", domain.value())); @@ -1918,7 +1918,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { response.setDouble("quota", deployment.quota().rate()); deployment.cost().ifPresent(cost -> response.setDouble("cost", cost)); - (controller.zoneRegistry().isEnclave(deployment.cloudAccount()) ? + (controller.zoneRegistry().isExclave(deployment.cloudAccount()) ? controller.archiveBucketDb().archiveUriFor(deploymentId.zoneId(), deployment.cloudAccount(), false) : controller.archiveBucketDb().archiveUriFor(deploymentId.zoneId(), deploymentId.applicationId().tenant(), false)) .ifPresent(archiveUri -> response.setString("archiveUri", archiveUri.toString())); 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 611f0bab904..76cf7c9a75c 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 @@ -272,7 +272,7 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry } @Override - public boolean isEnclave(CloudAccount cloudAccount) { + public boolean isExternal(CloudAccount cloudAccount) { return system.isPublic() && !cloudAccount.isUnspecified() && !cloudAccount.equals(systemCloudAccount); } |