use of io.confluent.ksql.rest.entity.QueryDescriptionList in project ksql by confluentinc.
the class ListQueriesExecutorTest method shouldNotMergeDifferentQueryDescriptions.
@Test
public void shouldNotMergeDifferentQueryDescriptions() {
// Given
when(sessionProperties.getInternalRequest()).thenReturn(false);
final ConfiguredStatement<ListQueries> showQueries = (ConfiguredStatement<ListQueries>) engine.configure("SHOW QUERIES EXTENDED;");
final PersistentQueryMetadata localMetadata = givenPersistentQuery("id", RUNNING_QUERY_STATE);
final PersistentQueryMetadata remoteMetadata = givenPersistentQuery("different id", ERROR_QUERY_STATE);
final KsqlEngine engine = mock(KsqlEngine.class);
when(engine.getAllLiveQueries()).thenReturn(ImmutableList.of(localMetadata));
when(engine.getPersistentQueries()).thenReturn(ImmutableList.of(localMetadata));
final Map<KsqlHostInfoEntity, KsqlQueryStatus> remoteMap = Collections.singletonMap(REMOTE_KSQL_HOST_INFO_ENTITY, KsqlQueryStatus.RUNNING);
final List<QueryDescription> remoteQueryDescriptions = Collections.singletonList(QueryDescriptionFactory.forQueryMetadata(remoteMetadata, remoteMap));
when(remoteQueryDescriptionList.getQueryDescriptions()).thenReturn(remoteQueryDescriptions);
when(ksqlEntityList.get(anyInt())).thenReturn(remoteQueryDescriptionList);
when(response.getResponse()).thenReturn(ksqlEntityList);
// When
final QueryDescriptionList queries = (QueryDescriptionList) CUSTOM_EXECUTORS.listQueries().execute(showQueries, sessionProperties, engine, serviceContext).getEntity().orElseThrow(IllegalStateException::new);
// Then
assertThat(queries.getQueryDescriptions(), containsInAnyOrder(QueryDescriptionFactory.forQueryMetadata(localMetadata, LOCAL_KSQL_HOST_INFO_MAP), QueryDescriptionFactory.forQueryMetadata(remoteMetadata, remoteMap)));
}
use of io.confluent.ksql.rest.entity.QueryDescriptionList in project ksql by confluentinc.
the class ListQueriesExecutorTest method shouldScatterGatherAndMergeShowQueriesExtended.
@Test
public void shouldScatterGatherAndMergeShowQueriesExtended() {
// Given
when(sessionProperties.getInternalRequest()).thenReturn(false);
final ConfiguredStatement<ListQueries> showQueries = (ConfiguredStatement<ListQueries>) engine.configure("SHOW QUERIES EXTENDED;");
final StreamsTaskMetadata localTaskMetadata = mock(StreamsTaskMetadata.class);
final StreamsTaskMetadata remoteTaskMetadata = mock(StreamsTaskMetadata.class);
final PersistentQueryMetadata localMetadata = givenPersistentQuery("id", RUNNING_QUERY_STATE, Collections.singleton(localTaskMetadata));
final PersistentQueryMetadata remoteMetadata = givenPersistentQuery("id", ERROR_QUERY_STATE, Collections.singleton(remoteTaskMetadata));
final KsqlEngine engine = mock(KsqlEngine.class);
when(engine.getAllLiveQueries()).thenReturn(ImmutableList.of(localMetadata));
when(engine.getPersistentQueries()).thenReturn(ImmutableList.of(localMetadata));
final List<QueryDescription> remoteQueryDescriptions = Collections.singletonList(QueryDescriptionFactory.forQueryMetadata(remoteMetadata, Collections.singletonMap(REMOTE_KSQL_HOST_INFO_ENTITY, KsqlQueryStatus.ERROR)));
when(remoteQueryDescriptionList.getQueryDescriptions()).thenReturn(remoteQueryDescriptions);
when(ksqlEntityList.get(anyInt())).thenReturn(remoteQueryDescriptionList);
when(response.getResponse()).thenReturn(ksqlEntityList);
final Map<KsqlHostInfoEntity, KsqlQueryStatus> mergedMap = new HashMap<>();
mergedMap.put(REMOTE_KSQL_HOST_INFO_ENTITY, KsqlQueryStatus.ERROR);
mergedMap.put(LOCAL_KSQL_HOST_INFO_ENTITY, KsqlQueryStatus.RUNNING);
// When
final QueryDescriptionList queries = (QueryDescriptionList) CUSTOM_EXECUTORS.listQueries().execute(showQueries, sessionProperties, engine, serviceContext).getEntity().orElseThrow(IllegalStateException::new);
// Then
final QueryDescription mergedQueryDescription = QueryDescriptionFactory.forQueryMetadata(localMetadata, mergedMap);
mergedQueryDescription.updateTaskMetadata(Collections.singleton(remoteTaskMetadata));
assertThat(queries.getQueryDescriptions(), containsInAnyOrder(mergedQueryDescription));
}
use of io.confluent.ksql.rest.entity.QueryDescriptionList in project ksql by confluentinc.
the class ListQueriesExecutorTest method shouldListQueriesExtended.
@Test
public void shouldListQueriesExtended() {
// Given
final ConfiguredStatement<ListQueries> showQueries = (ConfiguredStatement<ListQueries>) engine.configure("SHOW QUERIES EXTENDED;");
final PersistentQueryMetadata metadata = givenPersistentQuery("id", KafkaStreams.State.CREATED);
final KsqlEngine engine = mock(KsqlEngine.class);
when(engine.getAllLiveQueries()).thenReturn(ImmutableList.of(metadata));
// When
final QueryDescriptionList queries = (QueryDescriptionList) CUSTOM_EXECUTORS.listQueries().execute(showQueries, sessionProperties, engine, this.engine.getServiceContext()).getEntity().orElseThrow(IllegalStateException::new);
// Then
assertThat(queries.getQueryDescriptions(), containsInAnyOrder(QueryDescriptionFactory.forQueryMetadata(metadata, LOCAL_KSQL_HOST_INFO_MAP)));
}
use of io.confluent.ksql.rest.entity.QueryDescriptionList in project ksql by confluentinc.
the class ListQueriesExecutorTest method shouldIncludeUnresponsiveIfShowQueriesExtendedErrorResponse.
@Test
public void shouldIncludeUnresponsiveIfShowQueriesExtendedErrorResponse() {
// Given
when(sessionProperties.getInternalRequest()).thenReturn(false);
final ConfiguredStatement<ListQueries> showQueries = (ConfiguredStatement<ListQueries>) engine.configure("SHOW QUERIES EXTENDED;");
final PersistentQueryMetadata metadata = givenPersistentQuery("id", RUNNING_QUERY_STATE);
final KsqlEngine engine = mock(KsqlEngine.class);
when(engine.getAllLiveQueries()).thenReturn(ImmutableList.of(metadata));
when(engine.getPersistentQueries()).thenReturn(ImmutableList.of(metadata));
when(response.isErroneous()).thenReturn(true);
when(response.getErrorMessage()).thenReturn(new KsqlErrorMessage(10000, "error"));
final Map<KsqlHostInfoEntity, KsqlQueryStatus> map = new HashMap<>();
map.put(LOCAL_KSQL_HOST_INFO_ENTITY, KsqlQueryStatus.RUNNING);
map.put(REMOTE_KSQL_HOST_INFO_ENTITY, KsqlQueryStatus.UNRESPONSIVE);
// When
final QueryDescriptionList queries = (QueryDescriptionList) CUSTOM_EXECUTORS.listQueries().execute(showQueries, sessionProperties, engine, serviceContext).getEntity().orElseThrow(IllegalStateException::new);
// Then
assertThat(queries.getQueryDescriptions(), containsInAnyOrder(QueryDescriptionFactory.forQueryMetadata(metadata, map)));
}
use of io.confluent.ksql.rest.entity.QueryDescriptionList in project ksql by confluentinc.
the class ShowQueriesMultiNodeFunctionalTest method getShowQueriesExtendedResult.
private static QueryExtendedResults getShowQueriesExtendedResult(final TestKsqlRestApp restApp) {
final List<KsqlEntity> results = RestIntegrationTestUtil.makeKsqlRequest(restApp, "Show Queries Extended;");
if (results.size() != 1) {
return new QueryExtendedResults();
}
final KsqlEntity result = results.get(0);
if (!(result instanceof QueryDescriptionList)) {
return new QueryExtendedResults();
}
final List<QueryDescription> queryDescriptions = ((QueryDescriptionList) result).getQueryDescriptions();
if (queryDescriptions.size() != 1) {
return new QueryExtendedResults();
}
return new QueryExtendedResults(queryDescriptions.get(0).getKsqlHostQueryStatus().keySet(), queryDescriptions.get(0).getTasksMetadata());
}
Aggregations