diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-09-06 14:27:53 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-09-09 10:34:17 +0200 |
commit | c1986f854e4e1c630ebbb00cbe22ccf86a298ff7 (patch) | |
tree | 07285de68d9d80c45c568afc9371bb792a3acaab | |
parent | d03c25a827cc43de7fc873156b60027ebaaba504 (diff) |
Move BuildService to ServiceRegistry
8 files changed, 25 insertions, 16 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/ServiceRegistry.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/ServiceRegistry.java index bdaa742f9c2..f545cb8ff47 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/ServiceRegistry.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/ServiceRegistry.java @@ -67,4 +67,7 @@ public interface ServiceRegistry { RunDataStore runDataStore(); + // TODO: No longer used. Remove this once untangled from test code + BuildService buildService(); + } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java index 59d5bac5ee3..cbf90db84f9 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java @@ -128,7 +128,7 @@ public class ApplicationController { ApplicationController(Controller controller, CuratorDb curator, AccessControl accessControl, RotationsConfig rotationsConfig, - BuildService buildService, Clock clock) { + Clock clock) { this.controller = controller; this.curator = curator; this.accessControl = accessControl; @@ -140,7 +140,7 @@ public class ApplicationController { routingPolicies = new RoutingPolicies(controller); rotationRepository = new RotationRepository(rotationsConfig, this, curator); - deploymentTrigger = new DeploymentTrigger(controller, buildService, clock); + deploymentTrigger = new DeploymentTrigger(controller, controller.serviceRegistry().buildService(), clock); provisionApplicationCertificate = Flags.PROVISION_APPLICATION_CERTIFICATE.bindTo(controller.flagSource()); deploymentSpecValidator = new DeploymentSpecValidator(controller); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java index 1458d245b7f..3a55b926850 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java @@ -11,7 +11,6 @@ import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.zone.ZoneApi; import com.yahoo.vespa.curator.Lock; import com.yahoo.vespa.flags.FlagSource; -import com.yahoo.vespa.hosted.controller.api.integration.BuildService; import com.yahoo.vespa.hosted.controller.api.integration.ServiceRegistry; import com.yahoo.vespa.hosted.controller.api.integration.maven.MavenRepository; import com.yahoo.vespa.hosted.controller.api.integration.metrics.MetricsService; @@ -84,13 +83,13 @@ public class Controller extends AbstractComponent { public Controller(CuratorDb curator, RotationsConfig rotationsConfig, ZoneRegistry zoneRegistry, MetricsService metricsService, AccessControl accessControl, - BuildService buildService, FlagSource flagSource, + FlagSource flagSource, MavenRepository mavenRepository, ServiceRegistry serviceRegistry) { this(curator, rotationsConfig, zoneRegistry, metricsService, Clock.systemUTC(), accessControl, - buildService, com.yahoo.net.HostName::getLocalhost, flagSource, + com.yahoo.net.HostName::getLocalhost, flagSource, mavenRepository, serviceRegistry); } @@ -99,7 +98,7 @@ public class Controller extends AbstractComponent { MetricsService metricsService, Clock clock, AccessControl accessControl, - BuildService buildService, Supplier<String> hostnameSupplier, + Supplier<String> hostnameSupplier, FlagSource flagSource, MavenRepository mavenRepository, ServiceRegistry serviceRegistry) { @@ -116,7 +115,6 @@ public class Controller extends AbstractComponent { jobController = new JobController(this); applicationController = new ApplicationController(this, curator, accessControl, Objects.requireNonNull(rotationsConfig, "RotationsConfig cannot be null"), - Objects.requireNonNull(buildService, "BuildService cannot be null"), clock ); tenantController = new TenantController(this, curator, accessControl); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java index ac9a0014fdb..253c878f25f 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java @@ -119,7 +119,7 @@ public final class ControllerTester { this.buildService = buildService; this.metricsService = metricsService; this.controller = createController(curator, rotationsConfig, clock, zoneRegistry, - athenzDb, buildService, + athenzDb, metricsService, serviceRegistry); // Make root logger use time from manual clock @@ -158,8 +158,6 @@ public final class ControllerTester { public ServiceRegistryMock serviceRegistry() { return serviceRegistry; } - public MockBuildService buildService() { return buildService; } - public MetricsServiceMock metricsService() { return metricsService; } public Optional<Record> findCname(String name) { @@ -169,7 +167,7 @@ public final class ControllerTester { /** Create a new controller instance. Useful to verify that controller state is rebuilt from persistence */ public final void createNewController() { controller = createController(curator, rotationsConfig, clock, zoneRegistry, athenzDb, - buildService, metricsService, + metricsService, serviceRegistry); } @@ -302,7 +300,7 @@ public final class ControllerTester { ManualClock clock, ZoneRegistryMock zoneRegistryMock, AthenzDbMock athensDb, - BuildService buildService, MetricsServiceMock metricsService, + MetricsServiceMock metricsService, ServiceRegistryMock serviceRegistry) { Controller controller = new Controller(curator, rotationsConfig, @@ -310,7 +308,6 @@ public final class ControllerTester { metricsService, clock, new AthenzFacade(new AthenzClientFactoryMock(athensDb)), - buildService, () -> "test-controller", new InMemoryFlagSource(), new MockMavenRepository(), diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java index c1fb8fdc36c..04603245af6 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java @@ -87,7 +87,7 @@ public class DeploymentTester { public ApplicationController applications() { return tester.controller().applications(); } - public MockBuildService buildService() { return tester.buildService(); } + public MockBuildService buildService() { return tester.serviceRegistry().buildServiceMock(); } public DeploymentTrigger deploymentTrigger() { return tester.controller().applications().deploymentTrigger(); } 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 132a4adc404..101a5d78b1e 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 @@ -2,6 +2,7 @@ package com.yahoo.vespa.hosted.controller.integration; import com.yahoo.component.AbstractComponent; +import com.yahoo.vespa.hosted.controller.api.integration.BuildService; import com.yahoo.vespa.hosted.controller.api.integration.RunDataStore; import com.yahoo.vespa.hosted.controller.api.integration.ServiceRegistry; import com.yahoo.vespa.hosted.controller.api.integration.aws.AwsEventFetcher; @@ -32,6 +33,7 @@ import com.yahoo.vespa.hosted.controller.api.integration.routing.MemoryGlobalRou import com.yahoo.vespa.hosted.controller.api.integration.routing.RoutingGenerator; import com.yahoo.vespa.hosted.controller.api.integration.stubs.DummyOwnershipIssues; import com.yahoo.vespa.hosted.controller.api.integration.stubs.LoggingDeploymentIssues; +import com.yahoo.vespa.hosted.controller.api.integration.stubs.MockBuildService; import com.yahoo.vespa.hosted.controller.api.integration.stubs.MockMailer; import com.yahoo.vespa.hosted.controller.api.integration.stubs.MockMeteringClient; import com.yahoo.vespa.hosted.controller.api.integration.stubs.MockRunDataStore; @@ -65,6 +67,7 @@ public class ServiceRegistryMock extends AbstractComponent implements ServiceReg private final MockTesterCloud mockTesterCloud = new MockTesterCloud(); private final ApplicationStoreMock applicationStoreMock = new ApplicationStoreMock(); private final MockRunDataStore mockRunDataStore = new MockRunDataStore(); + private final MockBuildService mockBuildService = new MockBuildService(); @Override public ConfigServer configServer() { @@ -157,6 +160,11 @@ public class ServiceRegistryMock extends AbstractComponent implements ServiceReg } @Override + public BuildService buildService() { + return mockBuildService; + } + + @Override public NameService nameService() { return memoryNameService; } @@ -189,4 +197,8 @@ public class ServiceRegistryMock extends AbstractComponent implements ServiceReg return artifactRepositoryMock; } + public MockBuildService buildServiceMock() { + return mockBuildService; + } + } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerControllerTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerControllerTester.java index 39034e18c09..648dd10378a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerControllerTester.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerControllerTester.java @@ -139,7 +139,7 @@ public class ContainerControllerTester { } private void notifyJobCompletion(DeploymentJobs.JobReport report) { - MockBuildService buildService = (MockBuildService) containerTester.container().components().getComponent(MockBuildService.class.getName()); + MockBuildService buildService = containerTester.serviceRegistry().buildServiceMock(); if (report.jobType() != component && ! buildService.remove(report.buildJob())) throw new IllegalArgumentException(report.jobType() + " is not running for " + report.applicationId()); assertFalse("Unexpected entry '" + report.jobType() + "@" + report.projectId() + " in: " + buildService.jobs(), diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ControllerContainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ControllerContainerTest.java index d5a3378ce8c..0fc7bcfc76f 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ControllerContainerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ControllerContainerTest.java @@ -67,7 +67,6 @@ public class ControllerContainerTest { " <component id='com.yahoo.vespa.hosted.controller.integration.ZoneRegistryMock'/>\n" + " <component id='com.yahoo.vespa.hosted.controller.integration.ServiceRegistryMock'/>\n" + " <component id='com.yahoo.vespa.hosted.controller.Controller'/>\n" + - " <component id='com.yahoo.vespa.hosted.controller.api.integration.stubs.MockBuildService'/>\n" + " <component id='com.yahoo.vespa.hosted.controller.integration.ConfigServerProxyMock'/>\n" + " <component id='com.yahoo.vespa.hosted.controller.integration.MetricsServiceMock'/>\n" + " <component id='com.yahoo.vespa.hosted.controller.maintenance.ControllerMaintenance'/>\n" + |