@Test public void testCreateScope() throws ExecutionException, InterruptedException { when(this.mockControllerService.createScope(any())).thenReturn( CompletableFuture.completedFuture(Controller.CreateScopeStatus.newBuilder() .setStatus(Controller.CreateScopeStatus.Status.SUCCESS).build())); Assert.assertTrue(this.testController.createScope("scope").join()); when(this.mockControllerService.createScope(any())).thenReturn( CompletableFuture.completedFuture(Controller.CreateScopeStatus.newBuilder() .setStatus(Controller.CreateScopeStatus.Status.SCOPE_EXISTS).build())); Assert.assertFalse(this.testController.createScope("scope").join()); when(this.mockControllerService.createScope(any())).thenReturn( CompletableFuture.completedFuture(Controller.CreateScopeStatus.newBuilder() .setStatus(Controller.CreateScopeStatus.Status.FAILURE).build())); assertThrows("Expected ControllerFailureException", () -> this.testController.createScope("scope").join(), ex -> ex instanceof ControllerFailureException); when(this.mockControllerService.createScope(any())).thenReturn( CompletableFuture.completedFuture(Controller.CreateScopeStatus.newBuilder() .setStatus(Controller.CreateScopeStatus.Status.INVALID_SCOPE_NAME).build())); assertThrows("Expected IllegalArgumentException", () -> this.testController.createScope("scope").join(), ex -> ex instanceof IllegalArgumentException); when(this.mockControllerService.createScope(any())).thenReturn( CompletableFuture.completedFuture(Controller.CreateScopeStatus.newBuilder() .setStatusValue(-1).build())); assertThrows("Expected ControllerFailureException", () -> this.testController.createScope("scope").join(), ex -> ex instanceof ControllerFailureException); }
assertEquals(Controller.CreateScopeStatus.Status.SUCCESS, scopeStatus.getStatus()); Controller.CreateStreamStatus streamStatus = consumer.createStream(SCOPE, STREAM, configuration1, start).get(); assertEquals(Controller.CreateStreamStatus.Status.SUCCESS, streamStatus.getStatus());
public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { return io.pravega.controller.stream.api.grpc.v1.Controller.CreateScopeStatus.getDescriptor().getEnumTypes().get(0); }
Assert.assertEquals(Controller.CreateScopeStatus.Status.SUCCESS, consumer.createScope(SCOPE).join().getStatus()); Assert.assertEquals(Controller.CreateStreamStatus.Status.SUCCESS, streamMetadataTasks.createStream(SCOPE, STREAM, configuration1, System.currentTimeMillis()).join());
Assert.assertEquals(Controller.CreateScopeStatus.Status.SUCCESS, consumer.createScope(SCOPE).join().getStatus()); Assert.assertEquals(Controller.CreateStreamStatus.Status.SUCCESS, streamMetadataTasks.createStream(SCOPE, STREAM, configuration1, System.currentTimeMillis()).join());
Assert.assertEquals(result.get().getStatus(), CreateScopeStatus.Status.SUCCESS);
this.controllerService.createScope(ModelHelper.createScopeInfo(SCOPE1), result1); createScopeStatus = result1.get(); assertEquals("Create Scope", CreateScopeStatus.Status.SUCCESS, createScopeStatus.getStatus());
if (scopeStatus.getStatus() == CreateScopeStatus.Status.SUCCESS) { log.info("Successfully created new scope: {}", createScopeRequest.getScopeName()); return Response.status(Status.CREATED). entity(new ScopeProperty().scopeName(createScopeRequest.getScopeName())).build(); } else if (scopeStatus.getStatus() == CreateScopeStatus.Status.SCOPE_EXISTS) { log.warn("Scope name: {} already exists", createScopeRequest.getScopeName()); return Response.status(Status.CONFLICT).build();
this.controllerService.createScope(ModelHelper.createScopeInfo(SCOPE3), result1); createScopeStatus = result1.get(); assertEquals("Create Scope", CreateScopeStatus.Status.SUCCESS, createScopeStatus.getStatus()); this.controllerService.createScope(ModelHelper.createScopeInfo(SCOPE2), result3); createScopeStatus = result3.get(); assertEquals("Create Scope", CreateScopeStatus.Status.SUCCESS, createScopeStatus.getStatus());
CreateScopeStatus.newBuilder().setStatus(CreateScopeStatus.Status.SUCCESS).build())); Response response = addAuthHeaders(client.target(resourceURI).request()).buildPost(Entity.json(createScopeRequest)).invoke(); assertEquals("Create Scope response code", 201, response.getStatus()); CreateScopeStatus.newBuilder().setStatus(CreateScopeStatus.Status.SCOPE_EXISTS).build())); response = addAuthHeaders(client.target(resourceURI).request()).buildPost(Entity.json(createScopeRequest)).invoke(); assertEquals("Create Scope response code", 409, response.getStatus()); CreateScopeStatus.newBuilder().setStatus(CreateScopeStatus.Status.FAILURE).build())); response = addAuthHeaders(client.target(resourceURI).request()).buildPost(Entity.json(createScopeRequest)).invoke(); assertEquals("Create Scope response code", 500, response.getStatus()); CreateScopeStatus.newBuilder().setStatus(CreateScopeStatus.Status.SCOPE_EXISTS).build())); createScopeRequest.setScopeName("_system"); response = addAuthHeaders(client.target(resourceURI).request()).buildPost(Entity.json(createScopeRequest)).invoke();
assertEquals(Controller.CreateScopeStatus.Status.SUCCESS, scopeStatus.getStatus()); Controller.CreateStreamStatus streamStatus = consumer.createStream(SCOPE, STREAM, configuration1, start).get(); assertEquals(Controller.CreateStreamStatus.Status.SUCCESS, streamStatus.getStatus());
Assert.assertEquals(Controller.CreateScopeStatus.Status.SUCCESS, consumer.createScope(SCOPE).join().getStatus()); Assert.assertEquals(Controller.CreateStreamStatus.Status.SUCCESS, streamMetadataTasks.createStream(SCOPE, STREAM, configuration1, 0).join());
this.controllerService.createScope(ModelHelper.createScopeInfo(SCOPE1), result1); createScopeStatus = result1.get(); assertEquals("Create Scope", CreateScopeStatus.Status.SUCCESS, createScopeStatus.getStatus());
Assert.assertEquals(Controller.CreateScopeStatus.Status.SUCCESS, consumer.createScope(SCOPE).join().getStatus()); Assert.assertEquals(Controller.CreateStreamStatus.Status.SUCCESS, streamMetadataTasks.createStream(SCOPE, STREAM, configuration1, 0).join());
@Test public void testZkCreateScope() throws Exception { // create new scope test final StreamMetadataStore store = new ZKStreamMetadataStore(cli, executor); final String scopeName = "Scope1"; CompletableFuture<CreateScopeStatus> createScopeStatus = store.createScope(scopeName); // createScope returns null on success, and exception on failure assertEquals("Create new scope :", CreateScopeStatus.Status.SUCCESS, createScopeStatus.get().getStatus()); // create duplicate scope test createScopeStatus = store.createScope(scopeName); assertEquals("Create new scope :", CreateScopeStatus.Status.SCOPE_EXISTS, createScopeStatus.get().getStatus()); //listStreamsInScope test final String streamName1 = "Stream1"; final String streamName2 = "Stream2"; final ScalingPolicy policy = ScalingPolicy.fixed(5); StreamConfiguration streamConfig = StreamConfiguration.builder().scalingPolicy(policy).build(); StreamConfiguration streamConfig2 = StreamConfiguration.builder().scalingPolicy(policy).build(); store.createStream(scopeName, streamName1, streamConfig, System.currentTimeMillis(), null, executor).get(); store.setState(scopeName, streamName1, State.ACTIVE, null, executor).get(); store.createStream(scopeName, streamName2, streamConfig2, System.currentTimeMillis(), null, executor).get(); store.setState(scopeName, streamName2, State.ACTIVE, null, executor).get(); Map<String, StreamConfiguration> listOfStreams = store.listStreamsInScope(scopeName).get(); assertEquals("Size of list", 2, listOfStreams.size()); assertTrue("Name of stream at index zero", listOfStreams.containsKey("Stream1")); assertTrue("Name of stream at index one", listOfStreams.containsKey("Stream2")); }
@io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "createScope", requestType = io.pravega.controller.stream.api.grpc.v1.Controller.ScopeInfo.class, responseType = io.pravega.controller.stream.api.grpc.v1.Controller.CreateScopeStatus.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) public static io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.ScopeInfo, io.pravega.controller.stream.api.grpc.v1.Controller.CreateScopeStatus> getCreateScopeMethod() { io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.ScopeInfo, io.pravega.controller.stream.api.grpc.v1.Controller.CreateScopeStatus> getCreateScopeMethod; if ((getCreateScopeMethod = ControllerServiceGrpc.getCreateScopeMethod) == null) { synchronized (ControllerServiceGrpc.class) { if ((getCreateScopeMethod = ControllerServiceGrpc.getCreateScopeMethod) == null) { ControllerServiceGrpc.getCreateScopeMethod = getCreateScopeMethod = io.grpc.MethodDescriptor.<io.pravega.controller.stream.api.grpc.v1.Controller.ScopeInfo, io.pravega.controller.stream.api.grpc.v1.Controller.CreateScopeStatus>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName( "io.pravega.controller.stream.api.grpc.v1.ControllerService", "createScope")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.ScopeInfo.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.CreateScopeStatus.getDefaultInstance())) .setSchemaDescriptor(new ControllerServiceMethodDescriptorSupplier("createScope")) .build(); } } } return getCreateScopeMethod; }
@Test public void truncateStreamTests() { CreateScopeStatus createScopeStatus; CreateStreamStatus createStreamStatus; final StreamConfiguration configuration1 = StreamConfiguration.builder().scalingPolicy(ScalingPolicy.fixed(4)).build(); // Create a test scope. ResultObserver<CreateScopeStatus> result1 = new ResultObserver<>(); this.controllerService.createScope(ModelHelper.createScopeInfo(SCOPE1), result1); createScopeStatus = result1.get(); assertEquals("Create Scope", CreateScopeStatus.Status.SUCCESS, createScopeStatus.getStatus()); // Create a test stream. ResultObserver<CreateStreamStatus> result2 = new ResultObserver<>(); this.controllerService.createStream(ModelHelper.decode(SCOPE1, STREAM1, configuration1), result2); createStreamStatus = result2.get(); assertEquals("Create stream", CreateStreamStatus.Status.SUCCESS, createStreamStatus.getStatus()); //Truncate the stream ResultObserver<UpdateStreamStatus> result3 = new ResultObserver<>(); this.controllerService.truncateStream(Controller.StreamCut.newBuilder() .setStreamInfo(StreamInfo.newBuilder() .setScope(SCOPE1) .setStream(STREAM1) .build()) .putCut(0, 0).putCut(1, 0).putCut(2, 0).putCut(3, 0).build(), result3); UpdateStreamStatus truncateStreamStatus = result3.get(); assertEquals(UpdateStreamStatus.Status.SUCCESS, truncateStreamStatus.getStatus()); }
@Test public void createScopeTests() { CreateScopeStatus status; // region createScope ResultObserver<CreateScopeStatus> result1 = new ResultObserver<>(); this.controllerService.createScope(ModelHelper.createScopeInfo(SCOPE1), result1); status = result1.get(); assertEquals(status.getStatus(), CreateScopeStatus.Status.SUCCESS); ResultObserver<CreateScopeStatus> result2 = new ResultObserver<>(); this.controllerService.createScope(ModelHelper.createScopeInfo(SCOPE2), result2); status = result2.get(); assertEquals(status.getStatus(), CreateScopeStatus.Status.SUCCESS); // endregion // region duplicate create scope ResultObserver<CreateScopeStatus> result3 = new ResultObserver<>(); this.controllerService.createScope(ModelHelper.createScopeInfo(SCOPE2), result3); status = result3.get(); assertEquals(status.getStatus(), CreateScopeStatus.Status.SCOPE_EXISTS); // endregion // region with invalid scope with name "abc/def' ResultObserver<CreateScopeStatus> result4 = new ResultObserver<>(); this.controllerService.createScope(ModelHelper.createScopeInfo("abc/def"), result4); status = result4.get(); assertEquals(status.getStatus(), CreateScopeStatus.Status.INVALID_SCOPE_NAME); // endregion }
@Override public void createScope(ScopeInfo request, StreamObserver<CreateScopeStatus> responseObserver) { if (request.getScope().equals("scope1")) { responseObserver.onNext(CreateScopeStatus.newBuilder().setStatus( CreateScopeStatus.Status.SUCCESS).build()); responseObserver.onCompleted(); } else if (request.getScope().equals("scope2")) { responseObserver.onNext(CreateScopeStatus.newBuilder().setStatus( CreateScopeStatus.Status.FAILURE).build()); responseObserver.onCompleted(); } else if (request.getScope().equals("scope3")) { responseObserver.onNext(CreateScopeStatus.newBuilder() .setStatus(CreateScopeStatus.Status.INVALID_SCOPE_NAME) .build()); responseObserver.onCompleted(); } else if (request.getScope().equals("scope4")) { responseObserver.onNext(CreateScopeStatus.newBuilder() .setStatus(CreateScopeStatus.Status.SCOPE_EXISTS) .build()); responseObserver.onCompleted(); } else { responseObserver.onError(Status.INTERNAL.withDescription("Server error").asRuntimeException()); } }