From 23afd5993ba3e22334c42e1a4af7d146cf5da801 Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Mon, 22 Oct 2018 11:08:24 +0200 Subject: Add GET suspended status to application/v2 --- configserver/pom.xml | 12 ++++ .../vespa/config/server/ApplicationRepository.java | 20 ++++-- .../config/server/http/v2/ApplicationHandler.java | 19 ++++- .../server/http/v2/ListApplicationsHandler.java | 5 +- .../server/http/v2/ListApplicationsResponse.java | 4 +- .../config/server/http/v2/ListTenantsResponse.java | 1 - .../vespa/config/server/http/v2/PrepareResult.java | 1 + .../server/http/v2/SessionActiveHandler.java | 1 - .../config/server/ApplicationRepositoryTest.java | 15 +++- .../server/application/OrchestratorMock.java | 83 ++++++++++++++++++++++ .../vespa/config/server/deploy/DeployTester.java | 7 +- .../http/v2/ApplicationContentHandlerTest.java | 2 + .../server/http/v2/ApplicationHandlerTest.java | 8 ++- .../server/http/v2/SessionActiveHandlerTest.java | 6 +- .../server/http/v2/SessionContentHandlerTest.java | 6 +- .../server/http/v2/SessionCreateHandlerTest.java | 2 + .../server/http/v2/SessionPrepareHandlerTest.java | 2 + .../config/server/http/v2/TenantHandlerTest.java | 6 +- .../server/maintenance/MaintainerTester.java | 6 +- 19 files changed, 187 insertions(+), 19 deletions(-) create mode 100644 configserver/src/test/java/com/yahoo/vespa/config/server/application/OrchestratorMock.java (limited to 'configserver') diff --git a/configserver/pom.xml b/configserver/pom.xml index 2aeecb1ba2f..a9cade47446 100644 --- a/configserver/pom.xml +++ b/configserver/pom.xml @@ -45,6 +45,18 @@ ${project.version} provided + + com.yahoo.vespa + orchestrator + ${project.version} + provided + + + com.yahoo.vespa + application-model + ${project.version} + provided + com.yahoo.vespa config-bundle diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java index 3e11637b801..0594524af37 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java @@ -53,6 +53,7 @@ import com.yahoo.vespa.config.server.session.SilentDeployLogger; import com.yahoo.vespa.config.server.tenant.Rotations; import com.yahoo.vespa.config.server.tenant.Tenant; import com.yahoo.vespa.config.server.tenant.TenantRepository; +import com.yahoo.vespa.orchestrator.Orchestrator; import java.io.File; import java.io.IOException; @@ -94,31 +95,36 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye private final DeployLogger logger = new SilentDeployLogger(); private final ConfigserverConfig configserverConfig; private final FileDistributionStatus fileDistributionStatus; + private final Orchestrator orchestrator; @Inject public ApplicationRepository(TenantRepository tenantRepository, HostProvisionerProvider hostProvisionerProvider, ConfigConvergenceChecker configConvergenceChecker, HttpProxy httpProxy, - ConfigserverConfig configserverConfig) { + ConfigserverConfig configserverConfig, + Orchestrator orchestrator) { this(tenantRepository, hostProvisionerProvider.getHostProvisioner(), - configConvergenceChecker, httpProxy, configserverConfig, Clock.systemUTC(), new FileDistributionStatus()); + configConvergenceChecker, httpProxy, configserverConfig, orchestrator, + Clock.systemUTC(), new FileDistributionStatus()); } // For testing public ApplicationRepository(TenantRepository tenantRepository, Provisioner hostProvisioner, + Orchestrator orchestrator, Clock clock) { - this(tenantRepository, hostProvisioner, clock, new ConfigserverConfig(new ConfigserverConfig.Builder())); + this(tenantRepository, hostProvisioner, orchestrator, clock, new ConfigserverConfig(new ConfigserverConfig.Builder())); } // For testing public ApplicationRepository(TenantRepository tenantRepository, Provisioner hostProvisioner, + Orchestrator orchestrator, Clock clock, ConfigserverConfig configserverConfig) { this(tenantRepository, Optional.of(hostProvisioner), new ConfigConvergenceChecker(), new HttpProxy(new SimpleHttpFetcher()), - configserverConfig, clock, new FileDistributionStatus()); + configserverConfig, orchestrator, clock, new FileDistributionStatus()); } private ApplicationRepository(TenantRepository tenantRepository, @@ -126,6 +132,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye ConfigConvergenceChecker configConvergenceChecker, HttpProxy httpProxy, ConfigserverConfig configserverConfig, + Orchestrator orchestrator, Clock clock, FileDistributionStatus fileDistributionStatus) { this.tenantRepository = tenantRepository; @@ -134,6 +141,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye this.httpProxy = httpProxy; this.clock = clock; this.configserverConfig = configserverConfig; + this.orchestrator = orchestrator; this.fileDistributionStatus = fileDistributionStatus; } @@ -387,6 +395,10 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye hostProvisioner.ifPresent(provisioner -> provisioner.restart(applicationId, hostFilter)); } + public boolean isSuspended(ApplicationId application) { + return orchestrator.getAllSuspendedApplications().contains(application); + } + public HttpResponse filedistributionStatus(ApplicationId applicationId, Duration timeout) { return fileDistributionStatus.status(getApplication(applicationId), timeout); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandler.java index a3c17f3a89e..f05ea5eee8d 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandler.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandler.java @@ -28,9 +28,9 @@ import java.time.Duration; * Operations on applications (delete, wait for config convergence, restart, application content etc.) * * @author hmusum - * @since 5.4 */ public class ApplicationHandler extends HttpHandler { + private final Zone zone; private final ApplicationRepository applicationRepository; @@ -102,6 +102,10 @@ public class ApplicationHandler extends HttpHandler { return applicationRepository.getLogs(applicationId, apiParams); } + if (isIsSuspendedRequest(request)) { + return new ApplicationSuspendedResponse(applicationRepository.isSuspended(applicationId)); + } + return new GetApplicationResponse(Response.Status.OK, applicationRepository.getApplicationGeneration(applicationId)); } @@ -150,6 +154,11 @@ public class ApplicationHandler extends HttpHandler { "http://*/application/v2/tenant/*/application/*"); } + private static boolean isIsSuspendedRequest(HttpRequest request) { + return getBindingMatch(request).groupCount() == 4 && + request.getUri().getPath().endsWith("/suspended"); + } + private static boolean isLogRequest(HttpRequest request) { return getBindingMatch(request).groupCount() == 4 && request.getUri().getPath().endsWith("/logs"); @@ -228,4 +237,12 @@ public class ApplicationHandler extends HttpHandler { object.setLong("generation", generation); } } + + private static class ApplicationSuspendedResponse extends JSONResponse { + ApplicationSuspendedResponse(boolean suspended) { + super(Response.Status.OK); + object.setBool("suspended", suspended); + } + } + } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandler.java index 15401709f1c..56895e3516e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandler.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandler.java @@ -23,9 +23,9 @@ import java.util.List; * Handler for listing currently active applications for a tenant. * * @author Ulf Lilleengen - * @since 5.1 */ public class ListApplicationsHandler extends HttpHandler { + private final TenantRepository tenantRepository; private final Zone zone; @@ -40,7 +40,7 @@ public class ListApplicationsHandler extends HttpHandler { @Override public HttpResponse handleGET(HttpRequest request) { TenantName tenantName = Utils.getTenantNameFromApplicationsRequest(request); - final String urlBase = Utils.getUrlBase(request, "/application/v2/tenant/" + tenantName + "/application/"); + String urlBase = Utils.getUrlBase(request, "/application/v2/tenant/" + tenantName + "/application/"); List applicationIds = listApplicationIds(tenantName); Collection applicationUrls = Collections2.transform(applicationIds, new Function() { @@ -67,4 +67,5 @@ public class ListApplicationsHandler extends HttpHandler { sb.append("/instance/").append(id.instance().value()); return sb.toString(); } + } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsResponse.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsResponse.java index 3089216f433..a4527305abb 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsResponse.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsResponse.java @@ -15,10 +15,11 @@ import java.util.Collection; * Response that lists applications. * * @author Ulf Lilleengen - * @since 5.1 */ public class ListApplicationsResponse extends HttpResponse { + private final Slime slime = new Slime(); + public ListApplicationsResponse(int status, Collection applications) { super(status); Cursor array = slime.setArray(); @@ -36,4 +37,5 @@ public class ListApplicationsResponse extends HttpResponse { public String getContentType() { return HttpConfigResponse.JSON_CONTENT_TYPE; } + } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java index 4eefcc0ca75..95a71881b47 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java @@ -11,7 +11,6 @@ import com.yahoo.vespa.config.server.http.SessionResponse; * Tenant list response * * @author vegardh - * */ public class ListTenantsResponse extends SessionResponse { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/PrepareResult.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/PrepareResult.java index 99320df11df..bb2b57ba45c 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/PrepareResult.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/PrepareResult.java @@ -32,4 +32,5 @@ public class PrepareResult { public Slime deployLog() { return deployLog; } + } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandler.java index e482bec9ed9..2ccef8b85df 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandler.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandler.java @@ -24,7 +24,6 @@ import com.yahoo.vespa.config.server.http.Utils; * Handler that activates a session given by tenant and id (PUT). * * @author vegardh - * @since 5.1 */ public class SessionActiveHandler extends SessionHandler { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java index ef25effbc64..694464ee578 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java @@ -19,6 +19,7 @@ import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.io.IOUtils; import com.yahoo.test.ManualClock; import com.yahoo.text.Utf8; +import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.deploy.DeployTester; import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.http.v2.PrepareResult; @@ -76,6 +77,7 @@ public class ApplicationRepositoryTest { private ApplicationRepository applicationRepository; private TenantRepository tenantRepository; private SessionHandlerTest.MockProvisioner provisioner; + private OrchestratorMock orchestrator; private TimeoutBudget timeoutBudget; @Rule @@ -90,8 +92,9 @@ public class ApplicationRepositoryTest { tenantRepository.addTenant(tenant1); tenantRepository.addTenant(tenant2); tenantRepository.addTenant(tenant3); + orchestrator = new OrchestratorMock(); provisioner = new SessionHandlerTest.MockProvisioner(); - applicationRepository = new ApplicationRepository(tenantRepository, provisioner, clock); + applicationRepository = new ApplicationRepository(tenantRepository, provisioner, orchestrator, clock); timeoutBudget = new TimeoutBudget(clock, Duration.ofSeconds(60)); } @@ -117,6 +120,14 @@ public class ApplicationRepositoryTest { assertTrue(result.configChangeActions().getRestartActions().isEmpty()); } + @Test + public void testSuspension() { + deployApp(testApp); + assertFalse(applicationRepository.isSuspended(applicationId())); + orchestrator.suspend(applicationId()); + assertTrue(applicationRepository.isSuspended(applicationId())); + } + @Test public void getLogs() { WireMockServer wireMock = new WireMockServer(wireMockConfig().port(8080)); @@ -197,7 +208,7 @@ public class ApplicationRepositoryTest { tenantRepository.addTenant(tenant1); Provisioner provisioner = new SessionHandlerTest.MockProvisioner(); - applicationRepository = new ApplicationRepository(tenantRepository, provisioner, clock); + applicationRepository = new ApplicationRepository(tenantRepository, provisioner, orchestrator, clock); timeoutBudget = new TimeoutBudget(clock, Duration.ofSeconds(60)); // TODO: Deploy an app with a bundle or file that will be a file reference, too much missing in test setup to get this working now diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/application/OrchestratorMock.java b/configserver/src/test/java/com/yahoo/vespa/config/server/application/OrchestratorMock.java new file mode 100644 index 00000000000..e61d3710fac --- /dev/null +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/application/OrchestratorMock.java @@ -0,0 +1,83 @@ +package com.yahoo.vespa.config.server.application; + +import com.yahoo.config.provision.ApplicationId; +import com.yahoo.vespa.applicationmodel.HostName; +import com.yahoo.vespa.orchestrator.Host; +import com.yahoo.vespa.orchestrator.Orchestrator; +import com.yahoo.vespa.orchestrator.model.NodeGroup; +import com.yahoo.vespa.orchestrator.status.ApplicationInstanceStatus; +import com.yahoo.vespa.orchestrator.status.HostStatus; + +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * (Only the suspended applications part of this is in use) + * + * @author bratseth + */ +public class OrchestratorMock implements Orchestrator { + + private final Set suspendedHosts = new HashSet<>(); + private final Set suspendedApplications = new HashSet<>(); + + @Override + public Host getHost(HostName hostName) { + return null; + } + + @Override + public HostStatus getNodeStatus(HostName hostName) { + return suspendedHosts.contains(hostName) ? HostStatus.ALLOWED_TO_BE_DOWN : HostStatus.NO_REMARKS; + } + + @Override + public void setNodeStatus(HostName hostName, HostStatus state) {} + + @Override + public void resume(HostName hostName) { + suspendedHosts.remove(hostName); + } + + @Override + public void suspend(HostName hostName) { + suspendedHosts.add(hostName); + } + + @Override + public void suspendGroup(NodeGroup nodeGroup) { + nodeGroup.getHostNames().forEach(this::suspend); + } + + @Override + public ApplicationInstanceStatus getApplicationInstanceStatus(ApplicationId appId) { + return suspendedApplications.contains(appId) + ? ApplicationInstanceStatus.ALLOWED_TO_BE_DOWN : ApplicationInstanceStatus.NO_REMARKS; + } + + @Override + public Set getAllSuspendedApplications() { + return Collections.unmodifiableSet(suspendedApplications); + } + + @Override + public void resume(ApplicationId appId) { + suspendedApplications.remove(appId); + } + + @Override + public void suspend(ApplicationId appId) { + suspendedApplications.add(appId); + } + + @Override + public void acquirePermissionToRemove(HostName hostName) {} + + @Override + public void suspendAll(HostName parentHostname, List hostNames) { + hostNames.forEach(this::suspend); + } + +} diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java index 0d2654d693e..952d757be53 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java @@ -29,6 +29,7 @@ import com.yahoo.transaction.NestedTransaction; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.TimeoutBudget; +import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.v2.PrepareResult; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.monitoring.Metrics; @@ -122,7 +123,11 @@ public class DeployTester { catch (Exception e) { throw new IllegalArgumentException(e); } - applicationRepository = new ApplicationRepository(tenantRepository, new ProvisionerAdapter(provisioner), clock, configserverConfig); + applicationRepository = new ApplicationRepository(tenantRepository, + new ProvisionerAdapter(provisioner), + new OrchestratorMock(), + clock, + configserverConfig); } public Tenant tenant() { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java index 221d134c0f5..b0bb3bf244f 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java @@ -10,6 +10,7 @@ import com.yahoo.jdisc.Response; import com.yahoo.config.provision.ApplicationId; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.TestComponentRegistry; +import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.ContentHandlerTestBase; import com.yahoo.vespa.config.server.session.Session; import com.yahoo.vespa.config.server.tenant.Tenant; @@ -66,6 +67,7 @@ public class ApplicationContentHandlerTest extends ContentHandlerTestBase { Zone.defaultZone(), new ApplicationRepository(tenantRepository, new MockProvisioner(), + new OrchestratorMock(), clock)); pathPrefix = createPath(idTenant1, Zone.defaultZone()); baseUrl = baseServer + pathPrefix; diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java index c8c1815bba0..149b2e17bd9 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java @@ -16,6 +16,7 @@ import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.ConfigConvergenceChecker; import com.yahoo.vespa.config.server.application.HttpProxy; +import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; import com.yahoo.vespa.config.server.http.StaticResponse; @@ -72,7 +73,9 @@ public class ApplicationHandlerTest { tenantRepository.addTenant(TenantBuilder.create(componentRegistry, foobar)); provisioner = new SessionHandlerTest.MockProvisioner(); applicationRepository = new ApplicationRepository(tenantRepository, - provisioner, Clock.systemUTC()); + provisioner, + new OrchestratorMock(), + Clock.systemUTC()); listApplicationsHandler = new ListApplicationsHandler(ListApplicationsHandler.testOnlyContext(), tenantRepository, Zone.defaultZone()); @@ -150,7 +153,8 @@ public class ApplicationHandlerTest { HostProvisionerProvider.withProvisioner(provisioner), new ConfigConvergenceChecker(stateApiFactory), mockHttpProxy, - new ConfigserverConfig(new ConfigserverConfig.Builder())); + new ConfigserverConfig(new ConfigserverConfig.Builder()), + new OrchestratorMock()); ApplicationHandler mockHandler = createApplicationHandler(applicationRepository); when(mockHttpProxy.get(any(), eq(host), eq("container-clustercontroller"), eq("clustercontroller-status/v1/clusterName1"))) .thenReturn(new StaticResponse(200, "text/html", "...")); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java index b4e3f2374be..aab5fc68d1d 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java @@ -23,6 +23,7 @@ import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.SuperModelGenerationCounter; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.MemoryTenantApplications; +import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.application.TenantApplications; import com.yahoo.vespa.config.server.deploy.TenantFileSystemDirs; import com.yahoo.vespa.config.server.deploy.ZooKeeperClient; @@ -360,7 +361,10 @@ public class SessionActiveHandlerTest extends SessionHandlerTest { private SessionActiveHandler createHandler() { return new SessionActiveHandler(SessionActiveHandler.testOnlyContext(), - new ApplicationRepository(tenantRepository, hostProvisioner, clock), + new ApplicationRepository(tenantRepository, + hostProvisioner, + new OrchestratorMock(), + clock), tenantRepository, Zone.defaultZone()); } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java index 1428e384f2b..42b3fadc0de 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java @@ -10,6 +10,7 @@ import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.text.Utf8; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.TestComponentRegistry; +import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.ContentHandlerTestBase; import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.tenant.TenantBuilder; @@ -169,7 +170,10 @@ public class SessionContentHandlerTest extends ContentHandlerTestBase { private SessionContentHandler createHandler() { return new SessionContentHandler( SessionContentHandler.testOnlyContext(), - new ApplicationRepository(tenantRepository, new SessionHandlerTest.MockProvisioner(), clock), + new ApplicationRepository(tenantRepository, + new SessionHandlerTest.MockProvisioner(), + new OrchestratorMock(), + clock), tenantRepository); } } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java index 640f5dafbed..803a87ada1c 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java @@ -9,6 +9,7 @@ import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.MemoryTenantApplications; +import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.application.TenantApplications; import com.yahoo.vespa.config.server.http.CompressedApplicationInputStreamTest; import com.yahoo.vespa.config.server.http.HandlerTest; @@ -227,6 +228,7 @@ public class SessionCreateHandlerTest extends SessionHandlerTest { SessionCreateHandler.testOnlyContext(), new ApplicationRepository(tenantRepository, new SessionHandlerTest.MockProvisioner(), + new OrchestratorMock(), clock), tenantRepository, componentRegistry.getConfigserverConfig()); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java index e9b53c95c70..e8b20217a76 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java @@ -21,6 +21,7 @@ import com.yahoo.transaction.Transaction; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.ApplicationSet; +import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.host.HostRegistry; import com.yahoo.vespa.config.server.application.MemoryTenantApplications; import com.yahoo.vespa.config.server.configchange.ConfigChangeActions; @@ -385,6 +386,7 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { SessionPrepareHandler.testOnlyContext(), new ApplicationRepository(tenantRepository, new MockProvisioner(), + new OrchestratorMock(), clock), tenantRepository, componentRegistry.getConfigserverConfig()); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java index 35b22d19d6a..a4117ee7b51 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java @@ -14,6 +14,7 @@ import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.TenantName; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.TestComponentRegistry; +import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.http.SessionResponse; import com.yahoo.vespa.config.server.tenant.Tenant; @@ -38,7 +39,10 @@ public class TenantHandlerTest { public void setup() { tenantRepository = new TenantRepository(new TestComponentRegistry.Builder().curator(new MockCurator()).build()); ApplicationRepository applicationRepository = - new ApplicationRepository(tenantRepository, new SessionHandlerTest.MockProvisioner(), Clock.systemUTC()); + new ApplicationRepository(tenantRepository, + new SessionHandlerTest.MockProvisioner(), + new OrchestratorMock(), + Clock.systemUTC()); handler = new TenantHandler(TenantHandler.testOnlyContext(), tenantRepository, applicationRepository); } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java index b92feffbb55..659baf5a184 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.maintenance; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.GlobalComponentRegistry; import com.yahoo.vespa.config.server.TestComponentRegistry; +import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.curator.Curator; @@ -21,7 +22,10 @@ class MaintainerTester { curator = new MockCurator(); GlobalComponentRegistry componentRegistry = new TestComponentRegistry.Builder().curator(curator).build(); tenantRepository = new TenantRepository(componentRegistry, false); - applicationRepository = new ApplicationRepository(tenantRepository, new SessionHandlerTest.MockProvisioner(), Clock.systemUTC()); + applicationRepository = new ApplicationRepository(tenantRepository, + new SessionHandlerTest.MockProvisioner(), + new OrchestratorMock(), + Clock.systemUTC()); } Curator curator() { return curator; } -- cgit v1.2.3