diff options
Diffstat (limited to 'configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java')
-rw-r--r-- | configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java index 2b2ed13fcfe..06c224b5a09 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java @@ -12,7 +12,6 @@ import com.yahoo.jrt.Supervisor; import com.yahoo.jrt.Transport; import com.yahoo.net.HostName; import com.yahoo.test.ManualClock; -import com.yahoo.vespa.config.GenerationCounter; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.MemoryGenerationCounter; import com.yahoo.vespa.config.server.MockProvisioner; @@ -24,7 +23,7 @@ import com.yahoo.vespa.config.server.TestConfigDefinitionRepo; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.filedistribution.FileServer; import com.yahoo.vespa.config.server.host.ConfigRequestHostLivenessTracker; -import com.yahoo.vespa.config.server.host.HostRegistries; +import com.yahoo.vespa.config.server.host.HostRegistry; import com.yahoo.vespa.config.server.monitoring.Metrics; import com.yahoo.vespa.config.server.rpc.security.NoopRpcAuthorizer; import com.yahoo.vespa.config.server.tenant.Tenant; @@ -55,15 +54,15 @@ public class RpcTester implements AutoCloseable { private final ManualClock clock = new ManualClock(Instant.ofEpochMilli(100)); private final String myHostname = HostName.getLocalhost(); private final HostLivenessTracker hostLivenessTracker = new ConfigRequestHostLivenessTracker(clock); - private final GenerationCounter generationCounter; private final Spec spec; - private RpcServer rpcServer; + private final RpcServer rpcServer; private Thread t; private Supervisor sup; private final ApplicationId applicationId; private final TenantName tenantName; private final TenantRepository tenantRepository; + private final HostRegistry hostRegistry = new HostRegistry(); private final ApplicationRepository applicationRepository; private final List<Integer> allocatedPorts = new ArrayList<>(); @@ -85,23 +84,26 @@ public class RpcTester implements AutoCloseable { .configDefinitionsDir(temporaryFolder.newFolder().getAbsolutePath()) .fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath()); configserverConfig = new ConfigserverConfig(configBuilder); + rpcServer = createRpcServer(configserverConfig); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() .configDefinitionRepo(new TestConfigDefinitionRepo()) .configServerConfig(configserverConfig) + .reloadListener(rpcServer) .build(); - tenantRepository = new TenantRepository(componentRegistry); + tenantRepository = new TenantRepository(componentRegistry, hostRegistry); tenantRepository.addTenant(tenantName); + startRpcServer(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) + .withConfigserverConfig(configserverConfig) .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .build(); - generationCounter = new MemoryGenerationCounter(); - createAndStartRpcServer(); assertFalse(hostLivenessTracker.lastRequestFrom(myHostname).isPresent()); } public void close() { + rpcServer.stop(); for (Integer port : allocatedPorts) { PortRangeAllocator.releasePort(port); } @@ -113,24 +115,25 @@ public class RpcTester implements AutoCloseable { return port; } - void createAndStartRpcServer() throws IOException { - HostRegistries hostRegistries = new HostRegistries(); - hostRegistries.createApplicationHostRegistry(tenantName).update(applicationId, List.of("localhost")); - hostRegistries.getTenantHostRegistry().update(tenantName, List.of("localhost")); - rpcServer = new RpcServer(configserverConfig, - new SuperModelRequestHandler(new TestConfigDefinitionRepo(), - configserverConfig, - new SuperModelManager( - configserverConfig, - Zone.defaultZone() , - generationCounter, - new InMemoryFlagSource())), - Metrics.createTestMetrics(), - hostRegistries, - hostLivenessTracker, - new FileServer(temporaryFolder.newFolder()), - new NoopRpcAuthorizer(), - new RpcRequestHandlerProvider()); + RpcServer createRpcServer(ConfigserverConfig config) throws IOException { + return new RpcServer(config, + new SuperModelRequestHandler(new TestConfigDefinitionRepo(), + configserverConfig, + new SuperModelManager( + config, + Zone.defaultZone(), + new MemoryGenerationCounter(), + new InMemoryFlagSource())), + Metrics.createTestMetrics(), + hostRegistry, + hostLivenessTracker, + new FileServer(temporaryFolder.newFolder()), + new NoopRpcAuthorizer(), + new RpcRequestHandlerProvider()); + } + + void startRpcServer() { + hostRegistry.update(applicationId, List.of("localhost")); rpcServer.onTenantCreate(tenantRepository.getTenant(tenantName)); t = new Thread(rpcServer); t.start(); @@ -165,7 +168,7 @@ public class RpcTester implements AutoCloseable { void performRequest(Request req) { clock.advance(Duration.ofMillis(10)); - sup.connect(spec).invokeSync(req, 120.0); + sup.connect(spec).invokeSync(req, 10.0); if (req.methodName().equals(RpcServer.getConfigMethodName)) assertEquals(clock.instant(), hostLivenessTracker.lastRequestFrom(myHostname).get()); } |