summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-10-18 18:31:32 +0200
committerjonmv <venstad@gmail.com>2023-10-19 08:58:57 +0200
commit33e43513f7b09817f1ef063042262a39e566c133 (patch)
treec0b5d2720575bac36122d4dd57b221f072234d5c /node-repository
parentc8363bb1e00530dd3da7ff2b082a169060de0e80 (diff)
Reduce logging, and avoid need for component declaration
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfraApplicationRedeployer.java38
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiHandler.java11
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java1
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InfraApplicationRedeployerTest.java4
4 files changed, 29 insertions, 25 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfraApplicationRedeployer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfraApplicationRedeployer.java
index 87c24bd4c48..a78fd3c3fbd 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfraApplicationRedeployer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfraApplicationRedeployer.java
@@ -1,6 +1,5 @@
package com.yahoo.vespa.hosted.provision.maintenance;
-import com.yahoo.component.AbstractComponent;
import com.yahoo.component.annotation.Inject;
import com.yahoo.concurrent.DaemonThreadFactory;
import com.yahoo.concurrent.UncheckedTimeoutException;
@@ -13,8 +12,8 @@ import com.yahoo.vespa.applicationmodel.InfrastructureApplication;
import com.yahoo.vespa.hosted.provision.Node.State;
import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.service.duper.TenantHostApplication;
+import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ConcurrentSkipListSet;
import java.util.concurrent.ExecutorService;
@@ -24,6 +23,7 @@ import java.util.function.Function;
import java.util.function.Supplier;
import java.util.logging.Logger;
+import static java.util.logging.Level.FINE;
import static java.util.logging.Level.INFO;
import static java.util.logging.Level.WARNING;
@@ -33,7 +33,7 @@ import static java.util.logging.Level.WARNING;
*
* @author jonmv
*/
-public class InfraApplicationRedeployer extends AbstractComponent {
+public class InfraApplicationRedeployer implements AutoCloseable {
private static final Logger log = Logger.getLogger(InfraApplicationRedeployer.class.getName());
@@ -55,7 +55,7 @@ public class InfraApplicationRedeployer extends AbstractComponent {
}
public void readied(NodeType type) {
- readied(applicationOf(type));
+ applicationOf(type).ifPresent(this::readied);
}
private void readied(InfrastructureApplication application) {
@@ -64,18 +64,16 @@ public class InfraApplicationRedeployer extends AbstractComponent {
}
private void checkAndRedeploy(InfrastructureApplication application) {
- log.log(INFO, () -> "Checking if " + application.name() + " should be redeployed");
if ( ! readiedTypes.remove(application)) return;
- log.log(INFO, () -> "Trying to redeploy " + application.id() + " after completing provisioning of " + application.name());
try (Mutex lock = locks.apply(application.id())) {
if (application.nodeType().isHost() && nodes.get().state(State.ready).nodeType(application.nodeType()).isEmpty()) return;
- log.log(INFO, () -> "Redeploying " + application.id() + " after completing provisioning of " + application.name());
+ log.log(FINE, () -> "Redeploying " + application.id() + " after completing provisioning for " + application.name());
try {
deployer.getDeployment(application.id()).ifPresent(Deployment::activate);
- readied(childOf(application));
+ childOf(application).ifPresent(this::readied);
}
catch (RuntimeException e) {
- log.log(WARNING, "Failed redeploying " + application.id() + ", will be retried by maintainer", e);
+ log.log(INFO, "Failed redeploying " + application.id() + ", will be retried by maintainer", e);
}
}
catch (UncheckedTimeoutException collision) {
@@ -83,26 +81,26 @@ public class InfraApplicationRedeployer extends AbstractComponent {
}
}
- private static InfrastructureApplication applicationOf(NodeType type) {
+ private static Optional<InfrastructureApplication> applicationOf(NodeType type) {
return switch (type) {
- case host -> InfrastructureApplication.TENANT_HOST;
- case confighost -> InfrastructureApplication.CONFIG_SERVER_HOST;
- case controllerhost -> InfrastructureApplication.CONTROLLER_HOST;
- case proxyhost -> InfrastructureApplication.PROXY_HOST;
- default -> null;
+ case host -> Optional.of(InfrastructureApplication.TENANT_HOST);
+ case confighost -> Optional.of(InfrastructureApplication.CONFIG_SERVER_HOST);
+ case controllerhost -> Optional.of(InfrastructureApplication.CONTROLLER_HOST);
+ case proxyhost -> Optional.of(InfrastructureApplication.PROXY_HOST);
+ default -> Optional.empty();
};
}
- private static InfrastructureApplication childOf(InfrastructureApplication application) {
+ private static Optional<InfrastructureApplication> childOf(InfrastructureApplication application) {
return switch (application) {
- case CONFIG_SERVER_HOST -> InfrastructureApplication.CONFIG_SERVER;
- case CONTROLLER_HOST -> InfrastructureApplication.CONTROLLER;
- default -> null;
+ case CONFIG_SERVER_HOST -> Optional.of(InfrastructureApplication.CONFIG_SERVER);
+ case CONTROLLER_HOST -> Optional.of(InfrastructureApplication.CONTROLLER);
+ default -> Optional.empty();
};
}
@Override
- public void deconstruct() {
+ public void close() {
executor.shutdown();
try {
if (executor.awaitTermination(10, TimeUnit.SECONDS)) return;
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiHandler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiHandler.java
index 52d4cdf792b..0d9666e4f26 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiHandler.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiHandler.java
@@ -9,6 +9,7 @@ import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostFilter;
import com.yahoo.config.provision.HostName;
+import com.yahoo.config.provision.InfraDeployer;
import com.yahoo.config.provision.NodeFlavors;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
@@ -80,12 +81,12 @@ public class NodesV2ApiHandler extends ThreadedHttpRequestHandler {
@Inject
public NodesV2ApiHandler(Context parentCtx, Orchestrator orchestrator, NodeRepository nodeRepository,
- NodeFlavors flavors, InfraApplicationRedeployer infraApplicationRedeployer) {
+ NodeFlavors flavors, InfraDeployer infraDeployer) {
super(parentCtx);
this.orchestrator = orchestrator;
this.nodeRepository = nodeRepository;
this.nodeFlavors = flavors;
- this.infraApplicationRedeployer = infraApplicationRedeployer;
+ this.infraApplicationRedeployer = new InfraApplicationRedeployer(infraDeployer, nodeRepository);
}
@Override
@@ -513,4 +514,10 @@ public class NodesV2ApiHandler extends ThreadedHttpRequestHandler {
}
}
+ @Override
+ public void destroy() {
+ super.destroy();
+ infraApplicationRedeployer.close();
+ }
+
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java
index 8039d1450d9..f653416d973 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java
@@ -38,7 +38,6 @@ public class ContainerConfig {
<component id='com.yahoo.vespa.hosted.provision.testutils.MockMetricsFetcher'/>
<component id='com.yahoo.vespa.hosted.provision.testutils.MockNodeRepository'/>
<component id='com.yahoo.vespa.hosted.provision.testutils.MockProvisionServiceProvider'/>
- <component id='com.yahoo.vespa.hosted.provision.maintenance.InfraApplicationRedeployer'/>
<component id='com.yahoo.vespa.hosted.provision.maintenance.NodeRepositoryMaintenance'/>
<component id='com.yahoo.vespa.flags.InMemoryFlagSource'/>
<component id='com.yahoo.config.provision.Zone'/>
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InfraApplicationRedeployerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InfraApplicationRedeployerTest.java
index bd8607ef327..7a8129ad275 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InfraApplicationRedeployerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InfraApplicationRedeployerTest.java
@@ -83,7 +83,7 @@ class InfraApplicationRedeployerTest {
redeployer.readied(NodeType.confighost);
outro.await(10, TimeUnit.SECONDS);
- redeployer.deconstruct();
+ redeployer.close();
locks.verify();
deployer.verify();
}
@@ -115,7 +115,7 @@ class InfraApplicationRedeployerTest {
deployer.expect(cfg, Optional::empty);
redeployer.readied(NodeType.confighost);
latch.await(10, TimeUnit.SECONDS);
- redeployer.deconstruct();
+ redeployer.close();
locks.verify();
deployer.verify();
}