From 252db7d52b9950c9ab4154fd4384039a57e24df7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojciech=20B=C4=85czkowski?= Date: Fri, 24 Jan 2025 10:44:43 +0100 Subject: [PATCH 1/2] Fix bug in StateListenerTest Recently introduced change has an incorrect version check logic that skips 2025.1.x versions. They won't be skipped anymore. --- .../java/com/datastax/driver/core/StateListenerTest.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/driver-core/src/test/java/com/datastax/driver/core/StateListenerTest.java b/driver-core/src/test/java/com/datastax/driver/core/StateListenerTest.java index ab574d8a4f4..9d4f1e50cad 100644 --- a/driver-core/src/test/java/com/datastax/driver/core/StateListenerTest.java +++ b/driver-core/src/test/java/com/datastax/driver/core/StateListenerTest.java @@ -53,10 +53,12 @@ public void should_receive_events_when_node_states_change() throws InterruptedEx listener.waitForEvent(); // Different expectation for Scylla versions since 6.0.0 and 2024.2, both included + VersionNumber minOss = VersionNumber.parse("6.0.0"); + VersionNumber minEnterprise = VersionNumber.parse("2024.2"); VersionNumber scyllaVer = ccm().getScyllaVersion(); - if (scyllaVer != null - && ((scyllaVer.getMajor() >= 6 && scyllaVer.getMajor() <= 9) - || (scyllaVer.getMajor() >= 2024 && scyllaVer.getMinor() >= 2))) { + boolean isEnterprise = scyllaVer.getMajor() >= 2017; + if ((isEnterprise && scyllaVer.compareTo(minEnterprise) >= 0) + || (!isEnterprise && scyllaVer.compareTo(minOss) >= 0)) { listener.setExpectedEvent(DOWN); } else { listener.setExpectedEvent(REMOVE); From f3a8bc007f25d6767b7f8f34f85b6ec7dc2b4f35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojciech=20B=C4=85czkowski?= Date: Fri, 24 Jan 2025 10:45:09 +0100 Subject: [PATCH 2/2] Adjust cluster version logs in CCMBridge CCMBridge will now report correct Scylla version in use when configured for Scylla, instead of listing the Cassandra version. When using custom cluster version string CCMBridge will output what version number it resolves to. --- .../java/com/datastax/driver/core/CCMBridge.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/driver-core/src/test/java/com/datastax/driver/core/CCMBridge.java b/driver-core/src/test/java/com/datastax/driver/core/CCMBridge.java index 62f674a8852..80d461aa5e5 100644 --- a/driver-core/src/test/java/com/datastax/driver/core/CCMBridge.java +++ b/driver-core/src/test/java/com/datastax/driver/core/CCMBridge.java @@ -258,6 +258,14 @@ public class CCMBridge implements CCMAccess { GLOBAL_DSE_VERSION_NUMBER, GLOBAL_CASSANDRA_VERSION_NUMBER, CASSANDRA_INSTALL_ARGS); + } else if (GLOBAL_SCYLLA_VERSION_NUMBER != null) { + GLOBAL_CASSANDRA_VERSION_NUMBER = VersionNumber.parse(inputCassandraVersion); + GLOBAL_DSE_VERSION_NUMBER = null; + logger.info( + "Tests requiring CCM will by default use Scylla version {} and report Cassandra version {} when asked specifically for it (install arguments: {})", + GLOBAL_SCYLLA_VERSION_NUMBER, + GLOBAL_CASSANDRA_VERSION_NUMBER, + CASSANDRA_INSTALL_ARGS); } else { GLOBAL_CASSANDRA_VERSION_NUMBER = VersionNumber.parse(inputCassandraVersion); GLOBAL_DSE_VERSION_NUMBER = null; @@ -358,6 +366,10 @@ private static VersionNumber parseScyllaInputVersion(String versionString) { "Failed to parse scylla.version: " + versionString + ". Trying to get it through CCM.", e); parsedScyllaVersionNumber = getScyllaVersionThroughCcm(versionString); + logger.info( + String.format( + "Version string %s corresponds here to version number %s", + versionString, parsedScyllaVersionNumber)); } return parsedScyllaVersionNumber; }