diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2019-02-28 15:49:32 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2019-04-11 10:49:20 +0200 |
commit | 7395d8fc26ea263059b26e9a4eec5c1059def301 (patch) | |
tree | 7267d8f3c0718185bed9e98218873c7df9136a70 /configserver | |
parent | c19c1309f08594090a8c1d9739dcf1091a641f8a (diff) |
Let TenantRequestHandler own a TenantApplications
Diffstat (limited to 'configserver')
3 files changed, 17 insertions, 9 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java index 3f462a9ed9e..943ae6248fc 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java @@ -31,7 +31,7 @@ public class TenantBuilder { private SessionFactory sessionFactory; private LocalSessionLoader localSessionLoader; private TenantApplications applicationRepo; - private ReloadHandler reloadHandler; + private TenantRequestHandler reloadHandler; private RequestHandler requestHandler; private RemoteSessionFactory remoteSessionFactory; private TenantFileSystemDirs tenantFileSystemDirs; @@ -120,7 +120,7 @@ public class TenantBuilder { private void createApplicationRepo() { if (applicationRepo == null) { - applicationRepo = TenantApplications.create(componentRegistry.getCurator(), reloadHandler, tenant); + applicationRepo = reloadHandler.applications(); } } @@ -130,7 +130,8 @@ public class TenantBuilder { tenant, Collections.singletonList(componentRegistry.getReloadListener()), ConfigResponseFactory.create(componentRegistry.getConfigserverConfig()), - componentRegistry.getHostRegistries()); + componentRegistry.getHostRegistries(), + componentRegistry.getCurator()); if (hostValidator == null) { this.hostValidator = impl; } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRequestHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRequestHandler.java index 16b3b76210c..fe34e6c361d 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRequestHandler.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRequestHandler.java @@ -16,6 +16,7 @@ import com.yahoo.vespa.config.protocol.ConfigResponse; import com.yahoo.vespa.config.server.NotFoundException; import com.yahoo.vespa.config.server.application.ApplicationMapper; import com.yahoo.vespa.config.server.application.ApplicationSet; +import com.yahoo.vespa.config.server.application.TenantApplications; import com.yahoo.vespa.config.server.rpc.ConfigResponseFactory; import com.yahoo.vespa.config.server.host.HostRegistries; import com.yahoo.vespa.config.server.host.HostRegistry; @@ -29,6 +30,7 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.TenantName; import com.yahoo.vespa.config.server.monitoring.MetricUpdater; import com.yahoo.vespa.config.server.monitoring.Metrics; +import com.yahoo.vespa.curator.Curator; /** * A per tenant request handler, for handling reload (activate application) and getConfig requests for @@ -44,23 +46,25 @@ public class TenantRequestHandler implements RequestHandler, ReloadHandler, Host private final TenantName tenant; private final List<ReloadListener> reloadListeners; private final ConfigResponseFactory responseFactory; - private final HostRegistry<ApplicationId> hostRegistry; private final ApplicationMapper applicationMapper = new ApplicationMapper(); private final MetricUpdater tenantMetricUpdater; private final Clock clock = Clock.systemUTC(); + private final TenantApplications applications; public TenantRequestHandler(Metrics metrics, TenantName tenant, List<ReloadListener> reloadListeners, ConfigResponseFactory responseFactory, - HostRegistries hostRegistries) { + HostRegistries hostRegistries, + Curator curator) { // TODO jvenstad: Merge this class with TenantApplications, and straighten this out. this.metrics = metrics; this.tenant = tenant; - this.reloadListeners = reloadListeners; + this.reloadListeners = List.copyOf(reloadListeners); this.responseFactory = responseFactory; - tenantMetricUpdater = metrics.getOrCreateMetricUpdater(Metrics.createDimensions(tenant)); - hostRegistry = hostRegistries.createApplicationHostRegistry(tenant); + this.tenantMetricUpdater = metrics.getOrCreateMetricUpdater(Metrics.createDimensions(tenant)); + this.hostRegistry = hostRegistries.createApplicationHostRegistry(tenant); + this.applications = TenantApplications.create(curator, this, tenant); } /** @@ -238,4 +242,6 @@ public class TenantRequestHandler implements RequestHandler, ReloadHandler, Host } } + TenantApplications applications() { return applications; } + } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRequestHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRequestHandlerTest.java index d3d468ee5a9..952f87cbc6d 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRequestHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRequestHandlerTest.java @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.tenant; +import com.yahoo.component.Version; import com.yahoo.config.ConfigInstance; import com.yahoo.config.SimpletypesConfig; import com.yahoo.config.application.api.ApplicationPackage; @@ -92,7 +93,7 @@ public class TenantRequestHandlerTest { Metrics sh = Metrics.createTestMetrics(); List<ReloadListener> listeners = new ArrayList<>(); listeners.add(listener); - server = new TenantRequestHandler(sh, tenant, listeners, new UncompressedConfigResponseFactory(), new HostRegistries()); + server = new TenantRequestHandler(sh, tenant, listeners, new UncompressedConfigResponseFactory(), new HostRegistries(), curator); componentRegistry = new TestComponentRegistry.Builder() .curator(curator) .modelFactoryRegistry(createRegistry()) |