diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2020-12-07 14:29:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-07 14:29:37 +0100 |
commit | 53484b9ec48f7694a038407af3a46e55a81ad1f3 (patch) | |
tree | 5154329e3e82c07b93b5114cae3236dd30312167 /controller-server | |
parent | 7fa90d16eb58a98c02bb5f886986c97bd66ce7c6 (diff) | |
parent | 1a38d62b198755f7aeab8802bdf266ac0bbb0246 (diff) |
Merge pull request #15714 from vespa-engine/olaa/move-repair-maintainer
Move repair maintainer
Diffstat (limited to 'controller-server')
5 files changed, 0 insertions, 125 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java index be4c889cd75..1dd84cfc7b4 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java @@ -50,7 +50,6 @@ public class ControllerMaintenance extends AbstractComponent { private final ResourceTagMaintainer resourceTagMaintainer; private final SystemRoutingPolicyMaintainer systemRoutingPolicyMaintainer; private final ApplicationMetaDataGarbageCollector applicationMetaDataGarbageCollector; - private final HostRepairMaintainer hostRepairMaintainer; private final ContainerImageExpirer containerImageExpirer; private final HostSwitchUpdater hostSwitchUpdater; @@ -80,7 +79,6 @@ public class ControllerMaintenance extends AbstractComponent { resourceTagMaintainer = new ResourceTagMaintainer(controller, intervals.resourceTagMaintainer, controller.serviceRegistry().resourceTagger()); systemRoutingPolicyMaintainer = new SystemRoutingPolicyMaintainer(controller, intervals.systemRoutingPolicyMaintainer); applicationMetaDataGarbageCollector = new ApplicationMetaDataGarbageCollector(controller, intervals.applicationMetaDataGarbageCollector); - hostRepairMaintainer = new HostRepairMaintainer(controller, intervals.hostRepairMaintainer); containerImageExpirer = new ContainerImageExpirer(controller, intervals.containerImageExpirer); hostSwitchUpdater = new HostSwitchUpdater(controller, intervals.hostSwitchUpdater); } @@ -111,7 +109,6 @@ public class ControllerMaintenance extends AbstractComponent { resourceTagMaintainer.close(); systemRoutingPolicyMaintainer.close(); applicationMetaDataGarbageCollector.close(); - hostRepairMaintainer.close(); containerImageExpirer.close(); hostSwitchUpdater.close(); } @@ -149,7 +146,6 @@ public class ControllerMaintenance extends AbstractComponent { private final Duration resourceTagMaintainer; private final Duration systemRoutingPolicyMaintainer; private final Duration applicationMetaDataGarbageCollector; - private final Duration hostRepairMaintainer; private final Duration containerImageExpirer; private final Duration hostSwitchUpdater; @@ -172,7 +168,6 @@ public class ControllerMaintenance extends AbstractComponent { this.resourceTagMaintainer = duration(30, MINUTES); this.systemRoutingPolicyMaintainer = duration(10, MINUTES); this.applicationMetaDataGarbageCollector = duration(12, HOURS); - this.hostRepairMaintainer = duration(12, HOURS); this.containerImageExpirer = duration(2, HOURS); this.hostSwitchUpdater = duration(12, HOURS); } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/HostRepairMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/HostRepairMaintainer.java deleted file mode 100644 index 57727e64e30..00000000000 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/HostRepairMaintainer.java +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.hosted.controller.maintenance; - -import com.yahoo.config.provision.CloudName; -import com.yahoo.config.provision.SystemName; -import com.yahoo.config.provision.zone.ZoneApi; -import com.yahoo.vespa.hosted.controller.Controller; -import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node; -import com.yahoo.vespa.hosted.controller.api.integration.configserver.NodeRepository; -import com.yahoo.vespa.hosted.controller.api.integration.repair.RepairTicketReport; -import com.yahoo.vespa.hosted.controller.api.integration.repair.HostRepairClient; -import com.yahoo.yolean.Exceptions; - -import java.time.Duration; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Predicate; -import java.util.logging.Logger; -import java.util.stream.Collectors; - -import static com.yahoo.yolean.Exceptions.uncheck; - -/** - * - * Responsible for keeping track of hosts under repair. - * - * @author olaa - */ -public class HostRepairMaintainer extends ControllerMaintainer { - - private final NodeRepository nodeRepository; - private final HostRepairClient repairClient; - - private static final Logger log = Logger.getLogger(HostRepairMaintainer.class.getName()); - - - public HostRepairMaintainer(Controller controller, Duration interval) { - super(controller, interval, null, SystemName.allOf(Predicate.not(SystemName::isPublic))); - this.nodeRepository = controller.serviceRegistry().configServer().nodeRepository(); - this.repairClient = controller.serviceRegistry().hostRepairClient(); - } - - - @Override - protected boolean maintain() { - AtomicInteger exceptions = new AtomicInteger(0); - - controller().zoneRegistry().zones() - .reachable().zones().stream() - .forEach(zoneApi -> { - var breakfixedNodes = nodeRepository.list((zoneApi).getId()) - .stream() - .filter(node -> node.state() == Node.State.breakfixed) - .collect(Collectors.toList()); - try { - repairClient.updateRepairStatus(zoneApi, breakfixedNodes); - } catch (Exception e) { - log.warning("Failed to update repair status; " + Exceptions.toMessageString(e)); - exceptions.incrementAndGet(); - } - } - ); - - return exceptions.get() == 0; - } - -} diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java index 96eb4b39510..ae1e2c38e6a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java @@ -19,7 +19,6 @@ import com.yahoo.vespa.hosted.controller.api.integration.dns.MemoryNameService; import com.yahoo.vespa.hosted.controller.api.integration.entity.MemoryEntityService; import com.yahoo.vespa.hosted.controller.api.integration.organization.MockContactRetriever; import com.yahoo.vespa.hosted.controller.api.integration.organization.MockIssueHandler; -import com.yahoo.vespa.hosted.controller.api.integration.repair.MockRepairClient; import com.yahoo.vespa.hosted.controller.api.integration.resource.CostReportConsumerMock; import com.yahoo.vespa.hosted.controller.api.integration.routing.GlobalRoutingService; import com.yahoo.vespa.hosted.controller.api.integration.routing.MemoryGlobalRoutingService; @@ -61,7 +60,6 @@ public class ServiceRegistryMock extends AbstractComponent implements ServiceReg private final MockResourceTagger mockResourceTagger = new MockResourceTagger(); private final ApplicationRoleService applicationRoleService = new NoopApplicationRoleService(); private final BillingController billingController = new MockBillingController(); - private final MockRepairClient repairClient = new MockRepairClient(); private final ContainerRegistryMock containerRegistry = new ContainerRegistryMock(); public ServiceRegistryMock(SystemName system) { @@ -195,11 +193,6 @@ public class ServiceRegistryMock extends AbstractComponent implements ServiceReg } @Override - public MockRepairClient hostRepairClient() { - return repairClient; - } - - @Override public ContainerRegistryMock containerRegistry() { return containerRegistry; } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostRepairMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostRepairMaintainerTest.java deleted file mode 100644 index ab6e13bb5a2..00000000000 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostRepairMaintainerTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.yahoo.vespa.hosted.controller.maintenance; - -import com.yahoo.config.provision.HostName; -import com.yahoo.config.provision.zone.ZoneId; -import com.yahoo.vespa.hosted.controller.ControllerTester; -import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node; -import org.junit.Test; - -import java.time.Duration; -import java.time.Instant; -import java.util.List; - -import static org.junit.Assert.*; - -/** - * @author olaa - */ -public class HostRepairMaintainerTest { - - private final ControllerTester tester = new ControllerTester(); - private final HostRepairMaintainer maintainer = new HostRepairMaintainer(tester.controller(), Duration.ofHours(12)); - - @Test - public void maintain() { - var zoneId = ZoneId.from("dev.us-east-1"); - var hostname1 = HostName.from("node-1-tenant-host-dev.us-east-1"); - var hostname2 = HostName.from("node-2-tenant-host-dev.us-east-1"); - var timestamp = Instant.now().toEpochMilli(); - - var node1 = new Node.Builder() - .state(Node.State.active) - .hostname(hostname1) - .build(); - var node2 = new Node.Builder() - .state(Node.State.breakfixed) - .hostname(hostname2) - .build(); - tester.configServer().nodeRepository().putNodes(zoneId, List.of(node1, node2)); - maintainer.maintain(); - var updatedNodes = tester.serviceRegistry().hostRepairClient().getUpdatedNodes(); - assertEquals(1, updatedNodes.size()); - assertEquals(hostname2, updatedNodes.get(0).hostname()); - } -}
\ No newline at end of file diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json index 5ab087aab17..b6b45bd76e0 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json @@ -31,9 +31,6 @@ "name": "DeploymentMetricsMaintainer" }, { - "name": "HostRepairMaintainer" - }, - { "name": "HostSwitchUpdater" }, { |