diff options
author | jonmv <venstad@gmail.com> | 2023-10-18 18:31:32 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-10-19 08:58:57 +0200 |
commit | 33e43513f7b09817f1ef063042262a39e566c133 (patch) | |
tree | c0b5d2720575bac36122d4dd57b221f072234d5c /node-repository | |
parent | c8363bb1e00530dd3da7ff2b082a169060de0e80 (diff) |
Reduce logging, and avoid need for component declaration
Diffstat (limited to 'node-repository')
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(); } |