Search in sources :

Example 1 with Node

use of com.datastax.oss.driver.api.core.metadata.Node in project spring-boot by spring-projects.

the class CassandraDriverHealthIndicatorTests method mockCqlSessionWithNodeState.

private CqlSession mockCqlSessionWithNodeState(NodeState... nodeStates) {
    CqlSession session = mock(CqlSession.class);
    Metadata metadata = mock(Metadata.class);
    List<Node> nodes = new ArrayList<>();
    for (NodeState nodeState : nodeStates) {
        Node node = mock(Node.class);
        given(node.getState()).willReturn(nodeState);
        nodes.add(node);
    }
    given(session.getMetadata()).willReturn(metadata);
    given(metadata.getNodes()).willReturn(createNodesWithRandomUUID(nodes));
    return session;
}
Also used : NodeState(com.datastax.oss.driver.api.core.metadata.NodeState) Node(com.datastax.oss.driver.api.core.metadata.Node) Metadata(com.datastax.oss.driver.api.core.metadata.Metadata) ArrayList(java.util.ArrayList) CqlSession(com.datastax.oss.driver.api.core.CqlSession)

Example 2 with Node

use of com.datastax.oss.driver.api.core.metadata.Node in project spring-boot by spring-projects.

the class CassandraDriverReactiveHealthIndicatorTests method mockCqlSessionWithNodeState.

private CqlSession mockCqlSessionWithNodeState(NodeState... nodeStates) {
    CqlSession session = mock(CqlSession.class);
    Metadata metadata = mock(Metadata.class);
    List<Node> nodes = new ArrayList<>();
    for (NodeState nodeState : nodeStates) {
        Node node = mock(Node.class);
        given(node.getState()).willReturn(nodeState);
        nodes.add(node);
    }
    given(session.getMetadata()).willReturn(metadata);
    given(metadata.getNodes()).willReturn(createNodesWithRandomUUID(nodes));
    return session;
}
Also used : NodeState(com.datastax.oss.driver.api.core.metadata.NodeState) Node(com.datastax.oss.driver.api.core.metadata.Node) Metadata(com.datastax.oss.driver.api.core.metadata.Metadata) ArrayList(java.util.ArrayList) CqlSession(com.datastax.oss.driver.api.core.CqlSession)

Example 3 with Node

use of com.datastax.oss.driver.api.core.metadata.Node in project zipkin by openzipkin.

the class CassandraStorageExtension method poolInFlight.

// Use metrics to wait for in-flight requests to settle per
// https://groups.google.com/a/lists.datastax.com/g/java-driver-user/c/5um_yGNynow/m/cInH5I5jBgAJ
static boolean poolInFlight(CqlSession session) {
    Collection<Node> nodes = session.getMetadata().getNodes().values();
    Optional<Metrics> metrics = session.getMetrics();
    for (Node node : nodes) {
        int inFlight = metrics.flatMap(m -> m.getNodeMetric(node, DefaultNodeMetric.IN_FLIGHT)).map(m -> ((Gauge<Integer>) m).getValue()).orElse(0);
        if (inFlight > 0)
            return true;
    }
    return false;
}
Also used : Node(com.datastax.oss.driver.api.core.metadata.Node) Metrics(com.datastax.oss.driver.api.core.metrics.Metrics) DefaultNodeMetric(com.datastax.oss.driver.api.core.metrics.DefaultNodeMetric) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) LoggerFactory(org.slf4j.LoggerFactory) ExtensionContext(org.junit.jupiter.api.extension.ExtensionContext) ArrayList(java.util.ArrayList) Slf4jLogConsumer(org.testcontainers.containers.output.Slf4jLogConsumer) CqlSession(com.datastax.oss.driver.api.core.CqlSession) Assumptions.assumeTrue(org.junit.jupiter.api.Assumptions.assumeTrue) SEARCH_TABLES(zipkin2.storage.cassandra.ITCassandraStorage.SEARCH_TABLES) TABLE_SPAN(zipkin2.storage.cassandra.Schema.TABLE_SPAN) GenericContainer(org.testcontainers.containers.GenericContainer) InvalidQueryException(com.datastax.oss.driver.api.core.servererrors.InvalidQueryException) Call.propagateIfFatal(zipkin2.Call.propagateIfFatal) DockerImageName.parse(org.testcontainers.utility.DockerImageName.parse) Wait(org.testcontainers.containers.wait.strategy.Wait) TABLE_DEPENDENCY(zipkin2.storage.cassandra.Schema.TABLE_DEPENDENCY) Logger(org.slf4j.Logger) Collection(java.util.Collection) TestAbortedException(org.opentest4j.TestAbortedException) List(java.util.List) BeforeAllCallback(org.junit.jupiter.api.extension.BeforeAllCallback) AfterAllCallback(org.junit.jupiter.api.extension.AfterAllCallback) Optional(java.util.Optional) Gauge(com.codahale.metrics.Gauge) Metrics(com.datastax.oss.driver.api.core.metrics.Metrics) Node(com.datastax.oss.driver.api.core.metadata.Node) Gauge(com.codahale.metrics.Gauge)

Example 4 with Node

use of com.datastax.oss.driver.api.core.metadata.Node in project zipkin by openzipkin.

the class InternalForTests method mockSession.

static CqlSession mockSession() {
    CqlSession session = mock(CqlSession.class);
    Metadata metadata = mock(Metadata.class);
    Node node = mock(Node.class);
    when(session.getMetadata()).thenReturn(metadata);
    when(metadata.getNodes()).thenReturn(Collections.singletonMap(UUID.fromString("11111111-1111-1111-1111-111111111111"), node));
    when(node.getCassandraVersion()).thenReturn(Version.parse("3.11.9"));
    KeyspaceMetadata keyspaceMetadata = mock(KeyspaceMetadata.class);
    when(session.getMetadata()).thenReturn(metadata);
    when(metadata.getKeyspace("zipkin2")).thenReturn(Optional.of(keyspaceMetadata));
    when(keyspaceMetadata.getTable(TABLE_SERVICE_REMOTE_SERVICES)).thenReturn(Optional.of(mock(TableMetadata.class)));
    return session;
}
Also used : Node(com.datastax.oss.driver.api.core.metadata.Node) TableMetadata(com.datastax.oss.driver.api.core.metadata.schema.TableMetadata) KeyspaceMetadata(com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata) Metadata(com.datastax.oss.driver.api.core.metadata.Metadata) CqlSession(com.datastax.oss.driver.api.core.CqlSession) KeyspaceMetadata(com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata)

Example 5 with Node

use of com.datastax.oss.driver.api.core.metadata.Node in project zipkin by openzipkin.

the class SchemaTest method ensureKeyspaceMetadata_failsWhenKeyspaceMetadataIsNotNull.

@Test
public void ensureKeyspaceMetadata_failsWhenKeyspaceMetadataIsNotNull() {
    CqlSession session = mock(CqlSession.class);
    Metadata metadata = mock(Metadata.class);
    Node node = mock(Node.class);
    when(session.getMetadata()).thenReturn(metadata);
    when(metadata.getNodes()).thenReturn(Collections.singletonMap(UUID.fromString("11111111-1111-1111-1111-111111111111"), node));
    when(node.getCassandraVersion()).thenReturn(Version.parse("3.11.3"));
    assertThatThrownBy(() -> Schema.ensureKeyspaceMetadata(session, "zipkin2")).isInstanceOf(RuntimeException.class).hasMessageStartingWith("Cannot read keyspace metadata for keyspace");
}
Also used : Node(com.datastax.oss.driver.api.core.metadata.Node) KeyspaceMetadata(com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata) Metadata(com.datastax.oss.driver.api.core.metadata.Metadata) CqlSession(com.datastax.oss.driver.api.core.CqlSession) Test(org.junit.Test)

Aggregations

CqlSession (com.datastax.oss.driver.api.core.CqlSession)11 Node (com.datastax.oss.driver.api.core.metadata.Node)11 Metadata (com.datastax.oss.driver.api.core.metadata.Metadata)10 KeyspaceMetadata (com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata)6 Test (org.junit.Test)5 ArrayList (java.util.ArrayList)4 NodeState (com.datastax.oss.driver.api.core.metadata.NodeState)3 List (java.util.List)2 UUID (java.util.UUID)2 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)2 Test (org.junit.jupiter.api.Test)2 Health (org.springframework.boot.actuate.health.Health)2 Gauge (com.codahale.metrics.Gauge)1 DriverTimeoutException (com.datastax.oss.driver.api.core.DriverTimeoutException)1 Version (com.datastax.oss.driver.api.core.Version)1 TableMetadata (com.datastax.oss.driver.api.core.metadata.schema.TableMetadata)1 DefaultNodeMetric (com.datastax.oss.driver.api.core.metrics.DefaultNodeMetric)1 Metrics (com.datastax.oss.driver.api.core.metrics.Metrics)1 InvalidQueryException (com.datastax.oss.driver.api.core.servererrors.InvalidQueryException)1 Collection (java.util.Collection)1