Search in sources :

Example 1 with ApplicationCellRouter

use of com.netflix.titus.federation.service.router.ApplicationCellRouter in project titus-control-plane by Netflix.

the class FallbackJobServiceGatewayTest method setUp.

@Before
public void setUp() {
    stackName = UUID.randomUUID().toString();
    GrpcConfiguration grpcConfiguration = mock(GrpcConfiguration.class);
    when(grpcConfiguration.getRequestTimeoutMs()).thenReturn(GRPC_REQUEST_TIMEOUT_MS);
    when(grpcConfiguration.getPrimaryFallbackTimeoutMs()).thenReturn(GRPC_PRIMARY_FALLBACK_TIMEOUT_MS);
    when(fedConfig.getStack()).thenReturn(stackName);
    when(fedConfig.getCells()).thenReturn("one=1;two=2");
    when(fedConfig.getRoutingRules()).thenReturn("one=(app1.*|app2.*);two=(app3.*)");
    CellInfoResolver cellInfoResolver = new DefaultCellInfoResolver(fedConfig);
    ApplicationCellRouter cellRouter = new ApplicationCellRouter(cellInfoResolver, fedConfig);
    cells = cellInfoResolver.resolve();
    cellToServiceMap = ImmutableMap.of(cells.get(0), cellOne, cells.get(1), cellTwo);
    RemoteFederationConnector fedConnector = mock(RemoteFederationConnector.class);
    when(fedConnector.getChannel()).thenReturn(remoteFederationRule.getChannel());
    CellConnector cellConnector = mock(CellConnector.class);
    when(cellConnector.getChannels()).thenReturn(cellToServiceMap.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, cellPairEntry -> cellPairEntry.getValue().getChannel())));
    when(cellConnector.getChannelForCell(any(Cell.class))).thenAnswer(invocation -> Optional.ofNullable(cellToServiceMap.get(invocation.<Cell>getArgument(0))).map(GrpcServerRule::getChannel));
    final AggregatingCellClient aggregatingCellClient = new AggregatingCellClient(cellConnector);
    aggregatingJobServiceGateway = new AggregatingJobServiceGateway(grpcConfiguration, fedConfig, cellConnector, cellRouter, aggregatingCellClient, new AggregatingJobManagementServiceHelper(aggregatingCellClient, grpcConfiguration), titusRuntime);
    remoteJobServiceGateway = new RemoteJobServiceGateway(fedConfig, fedConnector, cellRouter, grpcConfiguration);
    fallbackJobServiceGateway = new FallbackJobServiceGateway(titusRuntime, fedConfig, remoteJobServiceGateway, aggregatingJobServiceGateway);
    clock = Clocks.test();
    dataGenerator = new ServiceDataGenerator(clock, TASKS_IN_GENERATED_JOBS);
}
Also used : ApplicationCellRouter(com.netflix.titus.federation.service.router.ApplicationCellRouter) Cell(com.netflix.titus.api.federation.model.Cell) GrpcConfiguration(com.netflix.titus.federation.startup.GrpcConfiguration) Before(org.junit.Before)

Example 2 with ApplicationCellRouter

use of com.netflix.titus.federation.service.router.ApplicationCellRouter in project titus-control-plane by Netflix.

the class AggregatingJobServiceGatewayTest method setUp.

@Before
public void setUp() {
    stackName = UUID.randomUUID().toString();
    GrpcConfiguration grpcConfiguration = mock(GrpcConfiguration.class);
    when(grpcConfiguration.getRequestTimeoutMs()).thenReturn(GRPC_REQUEST_TIMEOUT_MS);
    when(grpcConfiguration.getPrimaryFallbackTimeoutMs()).thenReturn(GRPC_PRIMARY_FALLBACK_TIMEOUT_MS);
    when(titusFederationConfiguration.getStack()).thenReturn(stackName);
    when(titusFederationConfiguration.getCells()).thenReturn("one=1;two=2");
    when(titusFederationConfiguration.getRoutingRules()).thenReturn("one=(app1.*|app2.*);two=(app3.*)");
    CellInfoResolver cellInfoResolver = new DefaultCellInfoResolver(titusFederationConfiguration);
    ApplicationCellRouter cellRouter = new ApplicationCellRouter(cellInfoResolver, titusFederationConfiguration);
    cells = cellInfoResolver.resolve();
    cellToServiceMap = ImmutableMap.of(cells.get(0), cellOne, cells.get(1), cellTwo);
    RemoteFederationConnector fedConnector = mock(RemoteFederationConnector.class);
    when(fedConnector.getChannel()).thenReturn(remoteFederationRule.getChannel());
    CellConnector cellConnector = mock(CellConnector.class);
    when(cellConnector.getChannels()).thenReturn(cellToServiceMap.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, cellPairEntry -> cellPairEntry.getValue().getChannel())));
    when(cellConnector.getChannelForCell(any(Cell.class))).thenAnswer(invocation -> Optional.ofNullable(cellToServiceMap.get(invocation.<Cell>getArgument(0))).map(GrpcServerRule::getChannel));
    final AggregatingCellClient aggregatingCellClient = new AggregatingCellClient(cellConnector);
    service = new AggregatingJobServiceGateway(grpcConfiguration, titusFederationConfiguration, cellConnector, cellRouter, aggregatingCellClient, new AggregatingJobManagementServiceHelper(aggregatingCellClient, grpcConfiguration), titusRuntime);
    clock = Clocks.test();
    dataGenerator = new ServiceDataGenerator(clock, TASKS_IN_GENERATED_JOBS);
}
Also used : ApplicationCellRouter(com.netflix.titus.federation.service.router.ApplicationCellRouter) Cell(com.netflix.titus.api.federation.model.Cell) GrpcConfiguration(com.netflix.titus.federation.startup.GrpcConfiguration) Before(org.junit.Before)

Example 3 with ApplicationCellRouter

use of com.netflix.titus.federation.service.router.ApplicationCellRouter in project titus-control-plane by Netflix.

the class AggregatingJobServiceGatewayWithSingleCellTest method setUp.

@Before
public void setUp() {
    stackName = UUID.randomUUID().toString();
    GrpcConfiguration grpcClientConfiguration = mock(GrpcConfiguration.class);
    when(grpcClientConfiguration.getRequestTimeoutMs()).thenReturn(1000L);
    TitusFederationConfiguration titusFederationConfiguration = mock(TitusFederationConfiguration.class);
    when(titusFederationConfiguration.getStack()).thenReturn(stackName);
    when(titusFederationConfiguration.getCells()).thenReturn("one=1");
    when(titusFederationConfiguration.getRoutingRules()).thenReturn("one=(app1.*|app2.*);two=(app3.*)");
    CellInfoResolver cellInfoResolver = new DefaultCellInfoResolver(titusFederationConfiguration);
    ApplicationCellRouter cellRouter = new ApplicationCellRouter(cellInfoResolver, titusFederationConfiguration);
    List<Cell> cells = cellInfoResolver.resolve();
    cellToServiceMap = ImmutableMap.of(cells.get(0), cell);
    RemoteFederationConnector fedConnector = mock(RemoteFederationConnector.class);
    when(fedConnector.getChannel()).thenReturn(remoteFederationRule.getChannel());
    CellConnector cellConnector = mock(CellConnector.class);
    when(cellConnector.getChannels()).thenReturn(cellToServiceMap.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, cellPairEntry -> cellPairEntry.getValue().getChannel())));
    when(cellConnector.getChannelForCell(any(Cell.class))).thenAnswer(invocation -> Optional.ofNullable(cellToServiceMap.get(invocation.<Cell>getArgument(0))).map(GrpcServerRule::getChannel));
    final AggregatingCellClient aggregatingCellClient = new AggregatingCellClient(cellConnector);
    final AnonymousCallMetadataResolver anonymousCallMetadataResolver = new AnonymousCallMetadataResolver();
    service = new AggregatingJobServiceGateway(grpcClientConfiguration, titusFederationConfiguration, cellConnector, cellRouter, aggregatingCellClient, new AggregatingJobManagementServiceHelper(aggregatingCellClient, grpcClientConfiguration), titusRuntime);
    clock = Clocks.test();
    dataGenerator = new ServiceDataGenerator(clock, TASKS_IN_GENERATED_JOBS);
}
Also used : TitusFederationConfiguration(com.netflix.titus.federation.startup.TitusFederationConfiguration) ApplicationCellRouter(com.netflix.titus.federation.service.router.ApplicationCellRouter) AnonymousCallMetadataResolver(com.netflix.titus.runtime.endpoint.metadata.AnonymousCallMetadataResolver) Cell(com.netflix.titus.api.federation.model.Cell) GrpcConfiguration(com.netflix.titus.federation.startup.GrpcConfiguration) Before(org.junit.Before)

Aggregations

Cell (com.netflix.titus.api.federation.model.Cell)3 ApplicationCellRouter (com.netflix.titus.federation.service.router.ApplicationCellRouter)3 GrpcConfiguration (com.netflix.titus.federation.startup.GrpcConfiguration)3 Before (org.junit.Before)3 TitusFederationConfiguration (com.netflix.titus.federation.startup.TitusFederationConfiguration)1 AnonymousCallMetadataResolver (com.netflix.titus.runtime.endpoint.metadata.AnonymousCallMetadataResolver)1