public CompletableFuture<List<NodeUri>> getControllerServerList() { if (cluster == null) { return Futures.failedFuture(new IllegalStateException("Controller cluster not initialized")); } return CompletableFuture.supplyAsync(() -> { try { return cluster.getClusterMembers().stream() .map(host -> NodeUri.newBuilder().setEndpoint(host.getIpAddr()).setPort(host.getPort()).build()) .collect(Collectors.toList()); } catch (ClusterException e) { // cluster implementation throws checked exceptions which cannot be thrown inside completable futures. throw Exceptions.sneakyThrow(e); } }, executor); }
public static SegmentHelper getSegmentHelperMock() { SegmentHelper helper = spy(new SegmentHelper()); doReturn(NodeUri.newBuilder().setEndpoint("localhost").setPort(SERVICE_PORT).build()).when(helper).getSegmentUri( anyString(), anyString(), anyLong(), any()); doReturn(CompletableFuture.completedFuture(true)).when(helper).sealSegment( anyString(), anyString(), anyLong(), any(), any(), any(), anyLong()); doReturn(CompletableFuture.completedFuture(true)).when(helper).createSegment( anyString(), anyString(), anyLong(), any(), any(), any(), any(), anyLong()); doReturn(CompletableFuture.completedFuture(true)).when(helper).deleteSegment( anyString(), anyString(), anyLong(), any(), any(), any(), anyLong()); doReturn(CompletableFuture.completedFuture(true)).when(helper).createTransaction( anyString(), anyString(), anyLong(), any(), any(), any(), any()); doReturn(CompletableFuture.completedFuture(true)).when(helper).abortTransaction( anyString(), anyString(), anyLong(), any(), any(), any(), any()); doReturn(CompletableFuture.completedFuture(true)).when(helper).commitTransaction( anyString(), anyString(), anyLong(), anyLong(), any(), any(), any(), any()); doReturn(CompletableFuture.completedFuture(true)).when(helper).updatePolicy( anyString(), anyString(), any(), anyLong(), any(), any(), any(), anyLong()); doReturn(CompletableFuture.completedFuture(true)).when(helper).truncateSegment( anyString(), anyString(), anyLong(), anyLong(), any(), any(), any(), anyLong()); doReturn(CompletableFuture.completedFuture(new WireCommands.StreamSegmentInfo(0L, "", true, true, false, 0L, 0L, 0L))).when(helper).getSegmentInfo( anyString(), anyString(), anyLong(), any(), any(), anyString()); return helper; }
public static SegmentHelper getFailingSegmentHelperMock() { SegmentHelper helper = spy(new SegmentHelper()); doReturn(NodeUri.newBuilder().setEndpoint("localhost").setPort(SERVICE_PORT).build()).when(helper).getSegmentUri( anyString(), anyString(), anyLong(), any()); doReturn(Futures.failedFuture(new RuntimeException())).when(helper).sealSegment( anyString(), anyString(), anyLong(), any(), any(), any(), anyLong()); doReturn(Futures.failedFuture(new RuntimeException())).when(helper).createSegment( anyString(), anyString(), anyLong(), any(), any(), any(), any(), anyLong()); doReturn(Futures.failedFuture(new RuntimeException())).when(helper).deleteSegment( anyString(), anyString(), anyLong(), any(), any(), any(), anyLong()); doReturn(Futures.failedFuture(new RuntimeException())).when(helper).createTransaction( anyString(), anyString(), anyLong(), any(), any(), any(), any()); doReturn(Futures.failedFuture(new RuntimeException())).when(helper).abortTransaction( anyString(), anyString(), anyLong(), any(), any(), any(), any()); doReturn(Futures.failedFuture(new RuntimeException())).when(helper).commitTransaction( anyString(), anyString(), anyLong(), anyLong(), any(), any(), any(), any()); doReturn(Futures.failedFuture(new RuntimeException())).when(helper).updatePolicy( anyString(), anyString(), any(), anyLong(), any(), any(), any(), anyLong()); return helper; } }
@Before public void setup() throws Exception { zkServer = new TestingServerStarter().start(); zkServer.start(); zkClient = CuratorFrameworkFactory.newClient(zkServer.getConnectString(), new ExponentialBackoffRetry(200, 10, 5000)); zkClient.start(); streamStore = StreamStoreFactory.createZKStore(zkClient, executor); TaskMetadataStore taskMetadataStore = TaskStoreFactory.createZKStore(zkClient, executor); HostControllerStore hostStore = HostStoreFactory.createInMemoryStore(HostMonitorConfigImpl.dummyConfig()); segmentHelperMock = spy(new SegmentHelper()); doReturn(Controller.NodeUri.newBuilder().setEndpoint("localhost").setPort(Config.SERVICE_PORT).build()).when(segmentHelperMock).getSegmentUri( anyString(), anyString(), anyInt(), any()); ConnectionFactoryImpl connectionFactory = new ConnectionFactoryImpl(ClientConfig.builder().build()); streamMetadataTasks = new StreamMetadataTasks(streamStore, hostStore, taskMetadataStore, segmentHelperMock, executor, "host", connectionFactory, AuthHelper.getDisabledAuthHelper(), requestTracker); streamTransactionMetadataTasks = new StreamTransactionMetadataTasks( streamStore, hostStore, segmentHelperMock, executor, "host", connectionFactory, AuthHelper.getDisabledAuthHelper()); controllerService = new ControllerService(streamStore, hostStore, streamMetadataTasks, streamTransactionMetadataTasks, segmentHelperMock, executor, null); controllerService.createScope(SCOPE).get(); }
/** * Converts PravegaNodeURI into NodeURI. * * @param uri The PravegaNodeURI string. * @return Node URI string. */ public static final NodeUri decode(final PravegaNodeUri uri) { Preconditions.checkNotNull(uri, "uri"); return NodeUri.newBuilder().setEndpoint(uri.getEndpoint()).setPort(uri.getPort()).build(); }
@Override public void getURI(SegmentId request, StreamObserver<NodeUri> responseObserver) { responseObserver.onNext(NodeUri.newBuilder().setEndpoint("localhost2").setPort(2).build()); responseObserver.onCompleted(); } };
@Override public void getControllerServerList(ServerRequest request, StreamObserver<ServerResponse> responseObserver) { responseObserver.onNext(ServerResponse.newBuilder() .addNodeURI(NodeUri.newBuilder().setEndpoint("localhost").setPort(serverPort1).build()) .addNodeURI(NodeUri.newBuilder().setEndpoint("localhost").setPort(serverPort2).build()) .addNodeURI(NodeUri.newBuilder().setEndpoint("localhost").setPort(serverPort3).build()) .build()); responseObserver.onCompleted(); }
@Override public void getURI(SegmentId request, StreamObserver<NodeUri> responseObserver) { responseObserver.onNext(NodeUri.newBuilder().setEndpoint("localhost3").setPort(3).build()); responseObserver.onCompleted(); } };
@Override public void getControllerServerList(ServerRequest request, StreamObserver<ServerResponse> responseObserver) { responseObserver.onNext(ServerResponse.newBuilder() .addNodeURI(NodeUri.newBuilder().setEndpoint("localhost").setPort(serverPort1).build()) .addNodeURI(NodeUri.newBuilder().setEndpoint("localhost").setPort(serverPort2).build()) .addNodeURI(NodeUri.newBuilder().setEndpoint("localhost").setPort(serverPort3).build()) .build()); responseObserver.onCompleted(); }
@Override public void getURI(SegmentId request, StreamObserver<NodeUri> responseObserver) { responseObserver.onNext(NodeUri.newBuilder().setEndpoint("localhost1").setPort(1).build()); responseObserver.onCompleted(); } };
@Override public void getURI(SegmentId request, StreamObserver<NodeUri> responseObserver) { if (request.getStreamInfo().getStream().equals("stream1")) { responseObserver.onNext(NodeUri.newBuilder().setEndpoint("localhost"). setPort(SERVICE_PORT).build()); responseObserver.onCompleted(); } else { responseObserver.onError(Status.INTERNAL.withDescription("Server error").asRuntimeException()); } }
public Controller.NodeUri getSegmentUri(final String scope, final String stream, final long segmentId, final HostControllerStore hostStore) { final Host host = hostStore.getHostForSegment(scope, stream, segmentId); return Controller.NodeUri.newBuilder().setEndpoint(host.getIpAddr()).setPort(host.getPort()).build(); }