diff options
3 files changed, 31 insertions, 33 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/DeploymentId.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/DeploymentId.java index c0bebf54803..1cdae46fec1 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/DeploymentId.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/DeploymentId.java @@ -3,55 +3,52 @@ package com.yahoo.vespa.hosted.controller.api.identifiers; import com.yahoo.config.provision.ZoneId; +import java.util.Objects; + /** - * Application + zone. + * ApplicationId x ZoneId. * * @author smorgrav * @author bratseth */ public class DeploymentId { - private final com.yahoo.config.provision.ApplicationId application; - private final ZoneId zone; + private final com.yahoo.config.provision.ApplicationId applicationId; + private final ZoneId zoneId; - public DeploymentId(com.yahoo.config.provision.ApplicationId application, ZoneId zone) { - this.application = application; - this.zone = zone; + public DeploymentId(com.yahoo.config.provision.ApplicationId applicationId, ZoneId zoneId) { + this.applicationId = applicationId; + this.zoneId = zoneId; } public com.yahoo.config.provision.ApplicationId applicationId() { - return application; + return applicationId; } - public ZoneId zone() { return zone; } + public ZoneId zoneId() { + return zoneId; + } public String dottedString() { return unCapitalize(applicationId().tenant().value()) + "." - + unCapitalize(applicationId().application().value()) + "." - + unCapitalize(zone.environment().value()) + "." - + unCapitalize(zone.region().value()) + "." - + unCapitalize(application.instance().value()); + + unCapitalize(applicationId().application().value()) + "." + + unCapitalize(zoneId.environment().value()) + "." + + unCapitalize(zoneId.region().value()) + "." + + unCapitalize(applicationId.instance().value()); } @Override public boolean equals(Object o) { if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - DeploymentId other = (DeploymentId) o; - if ( ! this.application.equals(other.application)) return false; - // TODO: Simplify when Zone implements equals - if ( ! this.zone.environment().equals(other.zone.environment())) return false; - if ( ! this.zone.region().equals(other.zone.region())) return false; - return true; + if ( ! (o instanceof DeploymentId)) return false; + DeploymentId id = (DeploymentId) o; + return Objects.equals(applicationId, id.applicationId) && + Objects.equals(zoneId, id.zoneId); } @Override public int hashCode() { - // TODO: Simplify when Zone implements hashCode - return application.hashCode() + - 7 * zone.environment().hashCode() + - 31 * zone.region().hashCode(); + return Objects.hash(applicationId, zoneId); } @Override @@ -60,10 +57,11 @@ public class DeploymentId { } public String toUserFriendlyString() { - return application + " in " + zone; + return applicationId + " in " + zoneId; } private static String unCapitalize(String str) { return str.toLowerCase().substring(0,1) + str.substring(1); } + } 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 6ae11246fd6..5974833aaf0 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 @@ -425,9 +425,9 @@ public class ApplicationApiHandler extends LoggingRequestHandler { DeploymentId deploymentId = new DeploymentId(application.id(), ZoneId.from(environment, region)); - Deployment deployment = application.deployments().get(deploymentId.zone()); + Deployment deployment = application.deployments().get(deploymentId.zoneId()); if (deployment == null) - throw new NotExistsException(application + " is not deployed in " + deploymentId.zone()); + throw new NotExistsException(application + " is not deployed in " + deploymentId.zoneId()); Slime slime = new Slime(); toSlime(slime.setObject(), deploymentId, deployment, request); @@ -443,7 +443,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { serviceUrlArray.addString(uri.toString()); } - response.setString("nodes", withPath("/zone/v2/" + deploymentId.zone().environment() + "/" + deploymentId.zone().region() + "/nodes/v2/node/?&recursive=true&application=" + deploymentId.applicationId().tenant() + "." + deploymentId.applicationId().application() + "." + deploymentId.applicationId().instance(), request.getUri()).toString()); + response.setString("nodes", withPath("/zone/v2/" + deploymentId.zoneId().environment() + "/" + deploymentId.zoneId().region() + "/nodes/v2/node/?&recursive=true&application=" + deploymentId.applicationId().tenant() + "." + deploymentId.applicationId().application() + "." + deploymentId.applicationId().instance(), request.getUri()).toString()); controller.getLogServerUrl(deploymentId) .ifPresent(elkUrl -> response.setString("elkUrl", elkUrl.toString())); @@ -452,7 +452,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { response.setString("version", deployment.version().toFullString()); response.setString("revision", deployment.revision().id()); response.setLong("deployTimeEpochMs", deployment.at().toEpochMilli()); - Duration deploymentTimeToLive = controller.zoneRegistry().getDeploymentTimeToLive(deploymentId.zone()); + Duration deploymentTimeToLive = controller.zoneRegistry().getDeploymentTimeToLive(deploymentId.zoneId()); response.setLong("expiryTimeEpochMs", deployment.at().plus(deploymentTimeToLive).toEpochMilli()); controller.applications().get(deploymentId.applicationId()).flatMap(application -> application.deploymentJobs().projectId()) diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java index 206ced18bac..3383654a884 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java @@ -81,8 +81,8 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry @Override public Optional<URI> getLogServerUri(DeploymentId deploymentId) { - return Optional.of(deploymentId.zone()) - .map(z -> URI.create(String.format("http://log.%s.test", deploymentId.zone().value()))); + return Optional.of(deploymentId.zoneId()) + .map(z -> URI.create(String.format("http://log.%s.test", deploymentId.zoneId().value()))); } @Override @@ -97,8 +97,8 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry @Override public URI getMonitoringSystemUri(DeploymentId deploymentId) { - return URI.create("http://monitoring-system.test/?environment=" + deploymentId.zone().environment().value() + "®ion=" - + deploymentId.zone().region().value() + "&application=" + deploymentId.applicationId().toShortString()); + return URI.create("http://monitoring-system.test/?environment=" + deploymentId.zoneId().environment().value() + "®ion=" + + deploymentId.zoneId().region().value() + "&application=" + deploymentId.applicationId().toShortString()); } @Override |