From 8d8b273fdce76ac0bb01ffa1dc5b4e0957261372 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Fri, 10 Feb 2023 10:50:58 +0100 Subject: No need for generics for HostValidator anymore --- .../config/server/application/TenantApplications.java | 6 ++---- .../yahoo/vespa/config/server/host/HostRegistry.java | 18 ++++++++---------- .../yahoo/vespa/config/server/host/HostValidator.java | 8 ++++---- .../server/modelfactory/PreparedModelsBuilder.java | 7 +++---- .../vespa/config/server/session/SessionPreparer.java | 4 ++-- 5 files changed, 19 insertions(+), 24 deletions(-) (limited to 'configserver') diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java index 2a0d62a1c9a..cf6edc48f1d 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java @@ -57,7 +57,7 @@ import static java.util.stream.Collectors.toSet; * @author Ulf Lilleengen * @author jonmv */ -public class TenantApplications implements RequestHandler, HostValidator { +public class TenantApplications implements RequestHandler, HostValidator { private static final Logger log = Logger.getLogger(TenantApplications.class.getName()); @@ -402,9 +402,7 @@ public class TenantApplications implements RequestHandler, HostValidator getHostValidator() { - return this; - } + public HostValidator getHostValidator() { return this; } public ApplicationId getApplicationIdForHostName(String hostname) { return hostRegistry.getKeyForHost(hostname); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/host/HostRegistry.java b/configserver/src/main/java/com/yahoo/vespa/config/server/host/HostRegistry.java index 5c161a5f746..b89f3bba835 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/host/HostRegistry.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/host/HostRegistry.java @@ -1,27 +1,25 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.host; +import com.google.common.collect.Collections2; +import com.yahoo.config.provision.ApplicationId; +import com.yahoo.config.provision.TenantName; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; -import com.google.common.collect.Collections2; -import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.TenantName; - -import java.util.logging.Level; - /** * A host registry with a mapping between hosts (hostname as a String) and some type T * TODO: Maybe we should have a Host type, but using String for now. * * @author Ulf Lilleengen */ -public class HostRegistry implements HostValidator { +public class HostRegistry implements HostValidator { private static final Logger log = Logger.getLogger(HostRegistry.class.getName()); @@ -43,10 +41,10 @@ public class HostRegistry implements HostValidator { } @Override - public synchronized void verifyHosts(ApplicationId key, Collection newHosts) { + public synchronized void verifyHosts(ApplicationId applicationId, Collection newHosts) { for (String host : newHosts) { - if (hostAlreadyTaken(host, key)) { - throw new IllegalArgumentException("'" + key + "' tried to allocate host '" + host + + if (hostAlreadyTaken(host, applicationId)) { + throw new IllegalArgumentException("'" + applicationId + "' tried to allocate host '" + host + "', but the host is already taken by '" + host2KeyMap.get(host) + "'"); } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/host/HostValidator.java b/configserver/src/main/java/com/yahoo/vespa/config/server/host/HostValidator.java index 0d3cbb3860b..115d135b0c1 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/host/HostValidator.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/host/HostValidator.java @@ -1,16 +1,16 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.host; +import com.yahoo.config.provision.ApplicationId; import java.util.Collection; /** - * A read only host registry that has mappings from a host to some type T. - * strings. + * A read only host registry that has mappings from a host to application id * * @author Ulf Lilleengen */ -public interface HostValidator { +public interface HostValidator { - void verifyHosts(T key, Collection newHosts); + void verifyHosts(ApplicationId applicationId, Collection newHosts); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java index 18f33224d83..1bfa94a1355 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java @@ -45,7 +45,6 @@ import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; /** * @author bratseth @@ -59,7 +58,7 @@ public class PreparedModelsBuilder extends ModelsBuilder containerEndpoints; private final Optional endpointCertificateSecrets; private final ConfigDefinitionRepo configDefinitionRepo; - private final HostValidator hostValidator; + private final HostValidator hostValidator; private final PrepareParams params; private final FileRegistry fileRegistry; private final Optional currentActiveApplicationSet; @@ -76,7 +75,7 @@ public class PreparedModelsBuilder extends ModelsBuilder hostValidator, + HostValidator hostValidator, DeployLogger deployLogger, PrepareParams params, Optional currentActiveApplicationSet, @@ -171,7 +170,7 @@ public class PreparedModelsBuilder extends ModelsBuilder hostValidator, ApplicationId applicationId, Model model) { + private void validateModelHosts(HostValidator hostValidator, ApplicationId applicationId, Model model) { // Will retry here, since hosts used might not be in sync on all config servers (we wait for 2/3 servers // to respond to deployments and deletions). Instant end = Instant.now().plus(Duration.ofSeconds(1)); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java index 17a019067a3..ffafbb8827e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java @@ -126,7 +126,7 @@ public class SessionPreparer { * @param activeApplicationSet set of currently active applications. * @return the config change actions that must be done to handle the activation of the models prepared. */ - public PrepareResult prepare(HostValidator hostValidator, DeployLogger logger, PrepareParams params, + public PrepareResult prepare(HostValidator hostValidator, DeployLogger logger, PrepareParams params, Optional activeApplicationSet, Instant now, File serverDbSessionDir, ApplicationPackage applicationPackage, SessionZooKeeperClient sessionZooKeeperClient) { ApplicationId applicationId = params.getApplicationId(); @@ -181,7 +181,7 @@ public class SessionPreparer { private final PreparedModelsBuilder preparedModelsBuilder; private final FileRegistry fileRegistry; - Preparation(HostValidator hostValidator, DeployLogger logger, PrepareParams params, + Preparation(HostValidator hostValidator, DeployLogger logger, PrepareParams params, Optional currentActiveApplicationSet, Path tenantPath, File serverDbSessionDir, ApplicationPackage applicationPackage, SessionZooKeeperClient sessionZooKeeperClient) { -- cgit v1.2.3 From 4d74de92bf39aa834b93ee3a6aee7847b4de5d31 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Fri, 10 Feb 2023 10:54:57 +0100 Subject: Simplify --- .../com/yahoo/vespa/config/server/application/TenantApplications.java | 2 -- .../java/com/yahoo/vespa/config/server/session/SessionRepository.java | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) (limited to 'configserver') diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java index cf6edc48f1d..5831cb3e75f 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java @@ -402,8 +402,6 @@ public class TenantApplications implements RequestHandler, HostValidator { configActivationListener.verifyHostsAreAvailable(applicationId, newHosts); } - public HostValidator getHostValidator() { return this; } - public ApplicationId getApplicationIdForHostName(String hostname) { return hostRegistry.getKeyForHost(hostname); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java index 306b24a3c69..a0597b77539 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java @@ -13,7 +13,6 @@ import com.yahoo.config.model.api.ConfigDefinitionRepo; import com.yahoo.config.model.application.provider.DeployData; import com.yahoo.config.model.application.provider.FilesApplicationPackage; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.Tags; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; import com.yahoo.container.jdisc.secretstore.SecretStore; @@ -243,7 +242,7 @@ public class SessionRepository { ? Optional.empty() : Optional.of(sessionZooKeeperClient.createPrepareWaiter()); Optional activeApplicationSet = getActiveApplicationSet(params.getApplicationId()); - ConfigChangeActions actions = sessionPreparer.prepare(applicationRepo.getHostValidator(), logger, params, + ConfigChangeActions actions = sessionPreparer.prepare(applicationRepo, logger, params, activeApplicationSet, now, getSessionAppDir(sessionId), session.getApplicationPackage(), sessionZooKeeperClient) .getConfigChangeActions(); -- cgit v1.2.3