summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHÃ¥kon Hallingstad <hakon.hallingstad@gmail.com>2023-02-10 23:50:04 +0100
committerGitHub <noreply@github.com>2023-02-10 23:50:04 +0100
commit31b7cd9833fe8ecf783148b8510ee67222934d18 (patch)
tree22c7412683c8a6990355083d485cbed05e75504c /configserver
parent6f6a7ee65709642ea32e250eca618ffcf6a08e20 (diff)
parent4d74de92bf39aa834b93ee3a6aee7847b4de5d31 (diff)
Merge pull request #25973 from vespa-engine/hmusum/ungenerify-HostValidator
Ungenerify host validator
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java6
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/host/HostRegistry.java18
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/host/HostValidator.java8
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java7
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java4
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java3
6 files changed, 19 insertions, 27 deletions
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..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
@@ -57,7 +57,7 @@ import static java.util.stream.Collectors.toSet;
* @author Ulf Lilleengen
* @author jonmv
*/
-public class TenantApplications implements RequestHandler, HostValidator<ApplicationId> {
+public class TenantApplications implements RequestHandler, HostValidator {
private static final Logger log = Logger.getLogger(TenantApplications.class.getName());
@@ -402,10 +402,6 @@ public class TenantApplications implements RequestHandler, HostValidator<Applica
configActivationListener.verifyHostsAreAvailable(applicationId, newHosts);
}
- public HostValidator<ApplicationId> 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<ApplicationId> {
+public class HostRegistry implements HostValidator {
private static final Logger log = Logger.getLogger(HostRegistry.class.getName());
@@ -43,10 +41,10 @@ public class HostRegistry implements HostValidator<ApplicationId> {
}
@Override
- public synchronized void verifyHosts(ApplicationId key, Collection<String> newHosts) {
+ public synchronized void verifyHosts(ApplicationId applicationId, Collection<String> 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<T> {
+public interface HostValidator {
- void verifyHosts(T key, Collection<String> newHosts);
+ void verifyHosts(ApplicationId applicationId, Collection<String> 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<PreparedModelsBuilder.P
private final List<ContainerEndpoint> containerEndpoints;
private final Optional<EndpointCertificateSecrets> endpointCertificateSecrets;
private final ConfigDefinitionRepo configDefinitionRepo;
- private final HostValidator<ApplicationId> hostValidator;
+ private final HostValidator hostValidator;
private final PrepareParams params;
private final FileRegistry fileRegistry;
private final Optional<ApplicationSet> currentActiveApplicationSet;
@@ -76,7 +75,7 @@ public class PreparedModelsBuilder extends ModelsBuilder<PreparedModelsBuilder.P
ExecutorService executor,
HostProvisionerProvider hostProvisionerProvider,
Curator curator,
- HostValidator<ApplicationId> hostValidator,
+ HostValidator hostValidator,
DeployLogger deployLogger,
PrepareParams params,
Optional<ApplicationSet> currentActiveApplicationSet,
@@ -171,7 +170,7 @@ public class PreparedModelsBuilder extends ModelsBuilder<PreparedModelsBuilder.P
}
}
- private void validateModelHosts(HostValidator<ApplicationId> 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<ApplicationId> hostValidator, DeployLogger logger, PrepareParams params,
+ public PrepareResult prepare(HostValidator hostValidator, DeployLogger logger, PrepareParams params,
Optional<ApplicationSet> 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<ApplicationId> hostValidator, DeployLogger logger, PrepareParams params,
+ Preparation(HostValidator hostValidator, DeployLogger logger, PrepareParams params,
Optional<ApplicationSet> currentActiveApplicationSet, Path tenantPath,
File serverDbSessionDir, ApplicationPackage applicationPackage,
SessionZooKeeperClient sessionZooKeeperClient) {
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<ApplicationSet> 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();