aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-09-06 09:07:00 +0200
committerMartin Polden <mpolden@mpolden.no>2019-09-09 10:34:17 +0200
commit6d9688942d19691fbcfca15e7098040da61b0ade (patch)
treeb2be9f3754175cfdfe71b8b27bf4b03f6b91d5b2 /controller-server
parent756fe1bebe7e3776d37d4ac02bee48833923498f (diff)
Move ArtifactRepository to ServiceRegistry
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java8
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java15
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java5
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java11
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerControllerTester.java8
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ControllerContainerTest.java1
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java8
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)