diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-09-06 09:07:00 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-09-09 10:34:17 +0200 |
commit | 6d9688942d19691fbcfca15e7098040da61b0ade (patch) | |
tree | b2be9f3754175cfdfe71b8b27bf4b03f6b91d5b2 /controller-server | |
parent | 756fe1bebe7e3776d37d4ac02bee48833923498f (diff) |
Move ArtifactRepository to ServiceRegistry
Diffstat (limited to 'controller-server')
9 files changed, 26 insertions, 36 deletions
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 3e4e2780ff9..6432680f71f 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, - ArtifactRepository artifactRepository, ApplicationStore applicationStore, + ApplicationStore applicationStore, BuildService buildService, Clock clock) { this.controller = controller; this.curator = curator; @@ -136,7 +136,7 @@ public class ApplicationController { this.configServer = controller.serviceRegistry().configServer(); this.routingGenerator = controller.serviceRegistry().routingGenerator(); this.clock = clock; - this.artifactRepository = artifactRepository; + this.artifactRepository = controller.serviceRegistry().artifactRepository(); this.applicationStore = applicationStore; routingPolicies = new RoutingPolicies(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 5d3ae7cb753..e3693aabe27 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 @@ -15,7 +15,6 @@ 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.deployment.ApplicationStore; -import com.yahoo.vespa.hosted.controller.api.integration.deployment.ArtifactRepository; import com.yahoo.vespa.hosted.controller.api.integration.deployment.TesterCloud; import com.yahoo.vespa.hosted.controller.api.integration.maven.MavenRepository; import com.yahoo.vespa.hosted.controller.api.integration.metrics.MetricsService; @@ -88,13 +87,13 @@ public class Controller extends AbstractComponent { public Controller(CuratorDb curator, RotationsConfig rotationsConfig, ZoneRegistry zoneRegistry, MetricsService metricsService, AccessControl accessControl, - ArtifactRepository artifactRepository, ApplicationStore applicationStore, TesterCloud testerCloud, + ApplicationStore applicationStore, TesterCloud testerCloud, BuildService buildService, RunDataStore runDataStore, FlagSource flagSource, MavenRepository mavenRepository, ServiceRegistry serviceRegistry) { this(curator, rotationsConfig, zoneRegistry, metricsService, - Clock.systemUTC(), accessControl, artifactRepository, applicationStore, testerCloud, + Clock.systemUTC(), accessControl, applicationStore, testerCloud, buildService, runDataStore, com.yahoo.net.HostName::getLocalhost, flagSource, mavenRepository, serviceRegistry); } @@ -104,7 +103,7 @@ public class Controller extends AbstractComponent { MetricsService metricsService, Clock clock, AccessControl accessControl, - ArtifactRepository artifactRepository, ApplicationStore applicationStore, TesterCloud testerCloud, + ApplicationStore applicationStore, TesterCloud testerCloud, BuildService buildService, RunDataStore runDataStore, Supplier<String> hostnameSupplier, FlagSource flagSource, MavenRepository mavenRepository, ServiceRegistry serviceRegistry) { @@ -122,7 +121,6 @@ public class Controller extends AbstractComponent { jobController = new JobController(this, runDataStore, Objects.requireNonNull(testerCloud)); applicationController = new ApplicationController(this, curator, accessControl, Objects.requireNonNull(rotationsConfig, "RotationsConfig cannot be null"), - Objects.requireNonNull(artifactRepository, "ArtifactRepository cannot be null"), Objects.requireNonNull(applicationStore, "ApplicationStore cannot be null"), Objects.requireNonNull(buildService, "BuildService cannot be null"), clock diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java index 19d2ff5a544..10f536498f2 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java @@ -222,7 +222,7 @@ public class ControllerTest { ApplicationVersion applicationVersion = ApplicationVersion.from(source, 101); runDeployment(tester, app.id(), applicationVersion, applicationPackage, source,101); assertEquals("Artifact is downloaded twice in staging and once for other zones", 5, - tester.artifactRepository().hits(app.id(), applicationVersion.id())); + tester.controllerTester().serviceRegistry().artifactRepositoryMock().hits(app.id(), applicationVersion.id())); // Application is upgraded. This makes deployment orchestration pick the last successful application version in // zones which do not have permanent deployments, e.g. test and staging 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 9d04d6950f7..0927fda6b25 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 @@ -20,7 +20,6 @@ import com.yahoo.vespa.hosted.controller.api.identifiers.Property; import com.yahoo.vespa.hosted.controller.api.identifiers.PropertyId; import com.yahoo.vespa.hosted.controller.api.integration.BuildService; import com.yahoo.vespa.hosted.controller.api.integration.deployment.ApplicationStore; -import com.yahoo.vespa.hosted.controller.api.integration.deployment.ArtifactRepository; import com.yahoo.vespa.hosted.controller.api.integration.deployment.JobType; import com.yahoo.vespa.hosted.controller.api.integration.dns.MemoryNameService; import com.yahoo.vespa.hosted.controller.api.integration.dns.Record; @@ -35,7 +34,6 @@ import com.yahoo.vespa.hosted.controller.athenz.impl.AthenzFacade; import com.yahoo.vespa.hosted.controller.athenz.mock.AthenzClientFactoryMock; import com.yahoo.vespa.hosted.controller.athenz.mock.AthenzDbMock; import com.yahoo.vespa.hosted.controller.integration.ApplicationStoreMock; -import com.yahoo.vespa.hosted.controller.integration.ArtifactRepositoryMock; import com.yahoo.vespa.hosted.controller.integration.ConfigServerMock; import com.yahoo.vespa.hosted.controller.integration.MetricsServiceMock; import com.yahoo.vespa.hosted.controller.integration.ServiceRegistryMock; @@ -77,7 +75,6 @@ public final class ControllerTester { private final ServiceRegistryMock serviceRegistry; private final CuratorDb curator; private final RotationsConfig rotationsConfig; - private final ArtifactRepositoryMock artifactRepository; private final ApplicationStoreMock applicationStore; private final MockBuildService buildService; private final MetricsServiceMock metricsService; @@ -91,7 +88,6 @@ public final class ControllerTester { new ZoneRegistryMock(), curatorDb, rotationsConfig, - new ArtifactRepositoryMock(), new ApplicationStoreMock(), new MockBuildService(), metricsService, @@ -117,7 +113,6 @@ public final class ControllerTester { private ControllerTester(AthenzDbMock athenzDb, ManualClock clock, ZoneRegistryMock zoneRegistry, CuratorDb curator, RotationsConfig rotationsConfig, - ArtifactRepositoryMock artifactRepository, ApplicationStoreMock appStoreMock, MockBuildService buildService, MetricsServiceMock metricsService, ServiceRegistryMock serviceRegistry) { @@ -127,12 +122,11 @@ public final class ControllerTester { this.serviceRegistry = serviceRegistry; this.curator = curator; this.rotationsConfig = rotationsConfig; - this.artifactRepository = artifactRepository; this.applicationStore = appStoreMock; this.buildService = buildService; this.metricsService = metricsService; this.controller = createController(curator, rotationsConfig, clock, zoneRegistry, - athenzDb, artifactRepository, appStoreMock, buildService, + athenzDb, appStoreMock, buildService, metricsService, serviceRegistry); // Make root logger use time from manual clock @@ -171,8 +165,6 @@ public final class ControllerTester { public ServiceRegistryMock serviceRegistry() { return serviceRegistry; } - public ArtifactRepositoryMock artifactRepository() { return artifactRepository; } - public ApplicationStoreMock applicationStore() { return applicationStore; } public MockBuildService buildService() { return buildService; } @@ -186,7 +178,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, - artifactRepository, applicationStore, buildService, metricsService, + applicationStore, buildService, metricsService, serviceRegistry); } @@ -319,7 +311,7 @@ public final class ControllerTester { ManualClock clock, ZoneRegistryMock zoneRegistryMock, AthenzDbMock athensDb, - ArtifactRepository artifactRepository, ApplicationStore applicationStore, + ApplicationStore applicationStore, BuildService buildService, MetricsServiceMock metricsService, ServiceRegistryMock serviceRegistry) { Controller controller = new Controller(curator, @@ -328,7 +320,6 @@ public final class ControllerTester { metricsService, clock, new AthenzFacade(new AthenzClientFactoryMock(athensDb)), - artifactRepository, applicationStore, new MockTesterCloud(), buildService, 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 05fb9927724..10a2741e1f4 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 @@ -19,7 +19,6 @@ import com.yahoo.vespa.hosted.controller.application.DeploymentJobs; import com.yahoo.vespa.hosted.controller.application.JobStatus; import com.yahoo.vespa.hosted.controller.application.SystemApplication; import com.yahoo.vespa.hosted.controller.integration.ApplicationStoreMock; -import com.yahoo.vespa.hosted.controller.integration.ArtifactRepositoryMock; import com.yahoo.vespa.hosted.controller.integration.ConfigServerMock; import com.yahoo.vespa.hosted.controller.maintenance.JobControl; import com.yahoo.vespa.hosted.controller.maintenance.NameServiceDispatcher; @@ -99,8 +98,6 @@ public class DeploymentTester { public ConfigServerMock configServer() { return tester.serviceRegistry().configServerMock(); } - public ArtifactRepositoryMock artifactRepository() { return tester.artifactRepository(); } - public ApplicationStoreMock applicationStore() { return tester.applicationStore(); } public Application application(String name) { @@ -173,7 +170,7 @@ public class DeploymentTester { /** Notify the controller about a job completing */ public BuildJob jobCompletion(JobType job) { - return new BuildJob(this::notifyJobCompletion, tester.artifactRepository()).type(job); + return new BuildJob(this::notifyJobCompletion, tester.serviceRegistry().artifactRepositoryMock()).type(job); } /** Simulate the full lifecycle of an application deployment as declared in given application package */ 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 07ba5555c7c..2b34a6a5136 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 @@ -8,6 +8,7 @@ import com.yahoo.vespa.hosted.controller.api.integration.aws.MockAwsEventFetcher import com.yahoo.vespa.hosted.controller.api.integration.certificates.ApplicationCertificateMock; import com.yahoo.vespa.hosted.controller.api.integration.certificates.ApplicationCertificateProvider; import com.yahoo.vespa.hosted.controller.api.integration.configserver.ConfigServer; +import com.yahoo.vespa.hosted.controller.api.integration.deployment.ArtifactRepository; import com.yahoo.vespa.hosted.controller.api.integration.dns.MemoryNameService; import com.yahoo.vespa.hosted.controller.api.integration.dns.NameService; import com.yahoo.vespa.hosted.controller.api.integration.entity.EntityService; @@ -55,6 +56,7 @@ public class ServiceRegistryMock extends AbstractComponent implements ServiceReg private final CostReportConsumerMock costReportConsumerMock = new CostReportConsumerMock(); private final MockBilling mockBilling = new MockBilling(); private final MockAwsEventFetcher mockAwsEventFetcher = new MockAwsEventFetcher(); + private final ArtifactRepositoryMock artifactRepositoryMock = new ArtifactRepositoryMock(); @Override public ConfigServer configServer() { @@ -127,6 +129,11 @@ public class ServiceRegistryMock extends AbstractComponent implements ServiceReg } @Override + public ArtifactRepository artifactRepository() { + return artifactRepositoryMock; + } + + @Override public NameService nameService() { return memoryNameService; } @@ -155,4 +162,8 @@ public class ServiceRegistryMock extends AbstractComponent implements ServiceReg return mockContactRetriever; } + public ArtifactRepositoryMock artifactRepositoryMock() { + return artifactRepositoryMock; + } + } 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 54fe575a365..39034e18c09 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 @@ -27,7 +27,6 @@ import com.yahoo.vespa.hosted.controller.athenz.mock.AthenzClientFactoryMock; import com.yahoo.vespa.hosted.controller.athenz.mock.AthenzDbMock; import com.yahoo.vespa.hosted.controller.deployment.BuildJob; import com.yahoo.vespa.hosted.controller.deployment.DeploymentSteps; -import com.yahoo.vespa.hosted.controller.integration.ArtifactRepositoryMock; import com.yahoo.vespa.hosted.controller.maintenance.JobControl; import com.yahoo.vespa.hosted.controller.maintenance.Upgrader; import com.yahoo.vespa.hosted.controller.persistence.CuratorDb; @@ -60,11 +59,6 @@ public class ContainerControllerTester { public Controller controller() { return containerTester.controller(); } - public ArtifactRepositoryMock artifactRepository() { - return (ArtifactRepositoryMock) containerTester.container().components() - .getComponent(ArtifactRepositoryMock.class.getName()); - } - public Upgrader upgrader() { return upgrader; } /** Returns the wrapped generic container tester */ @@ -118,7 +112,7 @@ public class ContainerControllerTester { /** Notify the controller about a job completing */ public BuildJob jobCompletion(JobType job) { - return new BuildJob(this::notifyJobCompletion, artifactRepository()).type(job); + return new BuildJob(this::notifyJobCompletion, containerTester.serviceRegistry().artifactRepositoryMock()).type(job); } // ---- Delegators: 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 108242124bf..bb7658f6f2e 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 @@ -73,7 +73,6 @@ public class ControllerContainerTest { " <component id='com.yahoo.vespa.hosted.controller.integration.MetricsServiceMock'/>\n" + " <component id='com.yahoo.vespa.hosted.controller.maintenance.ControllerMaintenance'/>\n" + " <component id='com.yahoo.vespa.hosted.controller.maintenance.JobControl'/>\n" + - " <component id='com.yahoo.vespa.hosted.controller.integration.ArtifactRepositoryMock'/>\n" + " <component id='com.yahoo.vespa.hosted.controller.integration.ApplicationStoreMock'/>\n" + " <component id='com.yahoo.vespa.hosted.controller.api.integration.stubs.MockTesterCloud'/>\n" + " <component id='com.yahoo.vespa.hosted.controller.api.integration.stubs.MockMavenRepository'/>\n" + diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java index 102e05ff923..ec6c905b7e7 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java @@ -1417,7 +1417,7 @@ public class ApplicationApiTest extends ControllerContainerTest { Version vespaVersion = new Version("6.1"); // system version from mock config server client - BuildJob job = new BuildJob(report -> notifyCompletion(report, controllerTester), controllerTester.artifactRepository()) + BuildJob job = new BuildJob(report -> notifyCompletion(report, controllerTester), controllerTester.containerTester().serviceRegistry().artifactRepositoryMock()) .application(app) .projectId(projectId); job.type(JobType.component).uploadArtifact(applicationPackage).submit(); @@ -1468,7 +1468,7 @@ public class ApplicationApiTest extends ControllerContainerTest { .build(); // Report job failing with out of capacity - BuildJob job = new BuildJob(report -> notifyCompletion(report, controllerTester), controllerTester.artifactRepository()) + BuildJob job = new BuildJob(report -> notifyCompletion(report, controllerTester), controllerTester.containerTester().serviceRegistry().artifactRepositoryMock()) .application(app) .projectId(projectId); job.type(JobType.component).uploadArtifact(applicationPackage).submit(); @@ -1649,8 +1649,8 @@ public class ApplicationApiTest extends ControllerContainerTest { ContainerTester tester = controllerTester.containerTester(); // Trigger application change - controllerTester.artifactRepository().put(application, applicationPackage,"1.0." + buildNumber - + "-commit1"); + controllerTester.containerTester().serviceRegistry().artifactRepositoryMock() + .put(application, applicationPackage,"1.0." + buildNumber + "-commit1"); controllerTester.jobCompletion(JobType.component) .application(application) .projectId(projectId) |