use of io.confluent.ksql.rest.entity.CommandStatus in project ksql by confluentinc.
the class StatusResourceTest method testGetStatus.
@Test
public void testGetStatus() throws Exception {
StatusResource testResource = getTestStatusResource();
for (Map.Entry<CommandId, CommandStatus> commandEntry : mockCommandStatuses.entrySet()) {
CommandId commandId = commandEntry.getKey();
CommandStatus expectedCommandStatus = commandEntry.getValue();
Object statusEntity = testResource.getStatus(commandId.getType().name(), commandId.getEntity(), commandId.getAction().name()).getEntity();
assertThat(statusEntity, instanceOf(CommandStatus.class));
CommandStatus testCommandStatus = (CommandStatus) statusEntity;
assertEquals(expectedCommandStatus, testCommandStatus);
}
}
use of io.confluent.ksql.rest.entity.CommandStatus in project ksql by confluentinc.
the class KsqlRestClient method makeStatusRequest.
public RestResponse<CommandStatus> makeStatusRequest(String commandId) {
RestResponse<CommandStatus> result;
Response response = makeGetRequest(String.format("status/%s", commandId));
if (response.getStatus() == Response.Status.OK.getStatusCode()) {
result = RestResponse.successful(response.readEntity(CommandStatus.class));
} else {
result = RestResponse.erroneous(response.readEntity(ErrorMessage.class));
}
response.close();
return result;
}
use of io.confluent.ksql.rest.entity.CommandStatus in project ksql by confluentinc.
the class KsqlResourceTest method testInstantRegisterTopic.
@Test
public void testInstantRegisterTopic() throws Exception {
KsqlResource testResource = TestKsqlResourceUtil.get(ksqlEngine, ksqlRestConfig);
final String ksqlTopic = "FOO";
final String kafkaTopic = "bar";
final String format = "json";
final String ksqlString = String.format("REGISTER TOPIC %s WITH (kafka_topic='%s', value_format='%s');", ksqlTopic, kafkaTopic, format);
final Map<String, Expression> createTopicProperties = new HashMap<>();
createTopicProperties.put(DdlConfig.KAFKA_TOPIC_NAME_PROPERTY, new StringLiteral(kafkaTopic));
createTopicProperties.put(DdlConfig.VALUE_FORMAT_PROPERTY, new StringLiteral(format));
final RegisterTopic ksqlStatement = new RegisterTopic(QualifiedName.of(ksqlTopic), false, createTopicProperties);
final CommandId commandId = new CommandId(CommandId.Type.TOPIC, ksqlTopic, CommandId.Action.CREATE);
final CommandStatus commandStatus = new CommandStatus(CommandStatus.Status.QUEUED, "Statement written to command topic");
final CommandStatusEntity expectedCommandStatusEntity = new CommandStatusEntity(ksqlString, commandId, commandStatus);
final Map<String, Object> streamsProperties = Collections.emptyMap();
KsqlEntity testKsqlEntity = makeSingleRequest(testResource, ksqlString, ksqlStatement, streamsProperties, KsqlEntity.class);
assertEquals(expectedCommandStatusEntity, testKsqlEntity);
}
use of io.confluent.ksql.rest.entity.CommandStatus in project ksql by confluentinc.
the class StatusResourceTest method getTestStatusResource.
private StatusResource getTestStatusResource() {
StatementExecutor mockStatementExecutor = mock(StatementExecutor.class);
expect(mockStatementExecutor.getStatuses()).andReturn(mockCommandStatuses);
for (Map.Entry<CommandId, CommandStatus> commandEntry : mockCommandStatuses.entrySet()) {
expect(mockStatementExecutor.getStatus(commandEntry.getKey())).andReturn(Optional.of(commandEntry.getValue()));
}
expect(mockStatementExecutor.getStatus(anyObject(CommandId.class))).andReturn(Optional.empty());
replay(mockStatementExecutor);
return new StatusResource(mockStatementExecutor);
}
use of io.confluent.ksql.rest.entity.CommandStatus in project ksql by confluentinc.
the class StatusResource method getStatus.
@GET
@Path("/{type}/{entity}/{action}")
public Response getStatus(@PathParam("type") String type, @PathParam("entity") String entity, @PathParam("action") String action) throws Exception {
CommandId commandId = new CommandId(type, entity, action);
Optional<CommandStatus> commandStatus = statementExecutor.getStatus(commandId);
if (!commandStatus.isPresent()) {
throw new Exception("Command not found");
}
return Response.ok(commandStatus.get()).build();
}
Aggregations