diff options
Diffstat (limited to 'node-repository')
4 files changed, 8 insertions, 54 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java index 8102f5cc305..b7e8395cc92 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java @@ -1,7 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision.maintenance; -import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.provision.Deployer; import com.yahoo.config.provision.Deployment; import com.yahoo.config.provision.HostLivenessTracker; @@ -68,13 +67,11 @@ public class NodeFailer extends Maintainer { private final Instant constructionTime; private final ThrottlePolicy throttlePolicy; private final Metric metric; - private final ConfigserverConfig configserverConfig; public NodeFailer(Deployer deployer, HostLivenessTracker hostLivenessTracker, ServiceMonitor serviceMonitor, NodeRepository nodeRepository, Duration downTimeLimit, Clock clock, Orchestrator orchestrator, - ThrottlePolicy throttlePolicy, Metric metric, - ConfigserverConfig configserverConfig) { + ThrottlePolicy throttlePolicy, Metric metric) { // check ping status every five minutes, but at least twice as often as the down time limit super(nodeRepository, min(downTimeLimit.dividedBy(2), Duration.ofMinutes(5))); this.deployer = deployer; @@ -86,7 +83,6 @@ public class NodeFailer extends Maintainer { this.constructionTime = clock.instant(); this.throttlePolicy = throttlePolicy; this.metric = metric; - this.configserverConfig = configserverConfig; } @Override @@ -244,7 +240,7 @@ public class NodeFailer extends Maintainer { } private boolean expectConfigRequests(Node node) { - return !node.type().isDockerHost() || configserverConfig.nodeAdminInContainer(); + return !node.type().isDockerHost(); } private boolean hasNodeRequestedConfigAfter(Node node, Instant instant) { diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java index 9ace6ad55ef..18ae7e17d6d 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.hosted.provision.maintenance; import com.google.inject.Inject; -import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.component.AbstractComponent; import com.yahoo.config.provision.Deployer; import com.yahoo.config.provision.Environment; @@ -59,21 +58,19 @@ public class NodeRepositoryMaintenance extends AbstractComponent { public NodeRepositoryMaintenance(NodeRepository nodeRepository, Deployer deployer, InfraDeployer infraDeployer, HostLivenessTracker hostLivenessTracker, ServiceMonitor serviceMonitor, Zone zone, Orchestrator orchestrator, Metric metric, - ConfigserverConfig configserverConfig, ProvisionServiceProvider provisionServiceProvider, FlagSource flagSource) { this(nodeRepository, deployer, infraDeployer, hostLivenessTracker, serviceMonitor, zone, Clock.systemUTC(), - orchestrator, metric, configserverConfig, provisionServiceProvider, flagSource); + orchestrator, metric, provisionServiceProvider, flagSource); } public NodeRepositoryMaintenance(NodeRepository nodeRepository, Deployer deployer, InfraDeployer infraDeployer, HostLivenessTracker hostLivenessTracker, ServiceMonitor serviceMonitor, Zone zone, Clock clock, Orchestrator orchestrator, Metric metric, - ConfigserverConfig configserverConfig, ProvisionServiceProvider provisionServiceProvider, FlagSource flagSource) { DefaultTimes defaults = new DefaultTimes(zone); - nodeFailer = new NodeFailer(deployer, hostLivenessTracker, serviceMonitor, nodeRepository, durationFromEnv("fail_grace").orElse(defaults.failGrace), clock, orchestrator, throttlePolicyFromEnv().orElse(defaults.throttlePolicy), metric, configserverConfig); + nodeFailer = new NodeFailer(deployer, hostLivenessTracker, serviceMonitor, nodeRepository, durationFromEnv("fail_grace").orElse(defaults.failGrace), clock, orchestrator, throttlePolicyFromEnv().orElse(defaults.throttlePolicy), metric); periodicApplicationMaintainer = new PeriodicApplicationMaintainer(deployer, nodeRepository, defaults.redeployMaintainerInterval, durationFromEnv("periodic_redeploy_interval").orElse(defaults.periodicRedeployInterval)); operatorChangeApplicationMaintainer = new OperatorChangeApplicationMaintainer(deployer, nodeRepository, clock, durationFromEnv("operator_change_redeploy_interval").orElse(defaults.operatorChangeRedeployInterval)); reservationExpirer = new ReservationExpirer(nodeRepository, clock, durationFromEnv("reservation_expiry").orElse(defaults.reservationExpiry)); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java index 9e57ae6dcd6..3e42a0efad7 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java @@ -1,7 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision.maintenance; -import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.component.Version; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ApplicationName; @@ -78,13 +77,8 @@ public class NodeFailTester { private final Orchestrator orchestrator; private final NodeRepositoryProvisioner provisioner; private final Curator curator; - private final ConfigserverConfig configserverConfig; private NodeFailTester() { - this(new ConfigserverConfig(new ConfigserverConfig.Builder())); - } - - private NodeFailTester(ConfigserverConfig configserverConfig) { clock = new ManualClock(); curator = new MockCurator(); nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone, new MockNameResolver().mockAnyLookup(), @@ -92,15 +86,10 @@ public class NodeFailTester { provisioner = new NodeRepositoryProvisioner(nodeRepository, nodeFlavors, zone, new MockProvisionServiceProvider(), new InMemoryFlagSource()); hostLivenessTracker = new TestHostLivenessTracker(clock); orchestrator = new OrchestratorMock(); - this.configserverConfig = configserverConfig; } public static NodeFailTester withTwoApplications() { - return withTwoApplications(new ConfigserverConfig(new ConfigserverConfig.Builder())); - } - - public static NodeFailTester withTwoApplications(ConfigserverConfig configserverConfig) { - NodeFailTester tester = new NodeFailTester(configserverConfig); + NodeFailTester tester = new NodeFailTester(); tester.createReadyNodes(16, nodeResources); tester.createHostNodes(3); @@ -209,7 +198,7 @@ public class NodeFailTester { } public NodeFailer createFailer() { - return new NodeFailer(deployer, hostLivenessTracker, serviceMonitor, nodeRepository, downtimeLimitOneHour, clock, orchestrator, NodeFailer.ThrottlePolicy.hosted, metric, configserverConfig); + return new NodeFailer(deployer, hostLivenessTracker, serviceMonitor, nodeRepository, downtimeLimitOneHour, clock, orchestrator, NodeFailer.ThrottlePolicy.hosted, metric); } public void allNodesMakeAConfigRequestExcept(Node ... deadNodeArray) { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java index a8b0d0becd4..66c05e474a8 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java @@ -1,8 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision.maintenance; -import com.yahoo.cloud.config.ConfigserverConfig; -import com.yahoo.config.provision.Flavor; import com.yahoo.config.provision.NodeResources; import com.yahoo.config.provision.NodeType; import com.yahoo.vespa.applicationmodel.ServiceInstance; @@ -337,34 +335,8 @@ public class NodeFailerTest { } @Test - public void docker_host_failed_without_config_requests() { - NodeFailTester tester = NodeFailTester.withTwoApplications( - new ConfigserverConfig(new ConfigserverConfig.Builder().nodeAdminInContainer(true)) - ); - - // For a day all nodes work so nothing happens - for (int minutes = 0, interval = 30; minutes < 24 * 60; minutes += interval) { - tester.clock.advance(Duration.ofMinutes(interval)); - tester.allNodesMakeAConfigRequestExcept(); - tester.failer.run(); - assertEquals( 3, tester.nodeRepository.getNodes(NodeType.host, Node.State.ready).size()); - assertEquals( 0, tester.nodeRepository.getNodes(NodeType.host, Node.State.failed).size()); - } - - - // Two ready nodes and a ready docker node die, but only 2 of those are failed out - tester.clock.advance(Duration.ofMinutes(180)); - Node dockerHost = tester.nodeRepository.getNodes(NodeType.host, Node.State.ready).iterator().next(); - tester.allNodesMakeAConfigRequestExcept(dockerHost); - tester.failer.run(); - assertEquals( 2, tester.nodeRepository.getNodes(NodeType.host, Node.State.ready).size()); - assertEquals( 1, tester.nodeRepository.getNodes(NodeType.host, Node.State.failed).size()); - } - - @Test - public void not_failed_without_config_requests_if_node_admin_on_host() { - NodeFailTester tester = NodeFailTester.withTwoApplications( - new ConfigserverConfig(new ConfigserverConfig.Builder().nodeAdminInContainer(false))); + public void docker_host_not_failed_without_config_requests() { + NodeFailTester tester = NodeFailTester.withTwoApplications(); // For a day all nodes work so nothing happens for (int minutes = 0, interval = 30; minutes < 24 * 60; minutes += interval) { |