This is an automated email from the ASF dual-hosted git repository.
ycai pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git
The following commit(s) were added to refs/heads/trunk by this push:
new 104d8048 CASSSIDECAR-195: Support INDEX_STATUS in GossipInfo
104d8048 is described below
commit 104d8048aa8d5fa055aa64a9a64ba2e570b60f52
Author: Andrew Johnson <[email protected]>
AuthorDate: Sun Jan 26 13:36:17 2025 +0000
CASSSIDECAR-195: Support INDEX_STATUS in GossipInfo
Patch by Andrew Johnson; Reviewed by Francisco Guerrero, Yifan Cai for
CASSSIDECAR-195
---
CHANGES.txt | 1 +
.../cassandra/sidecar/common/response/GossipInfoResponse.java | 11 ++++++++++-
.../sidecar/common/server/utils/GossipInfoParserTest.java | 6 ++++--
3 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index 4f12bce7..f5670bfa 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,6 @@
1.0.0
-----
+ * Fix missing field for INDEX_STATUS in GossipInfo (CASSSIDECAR-195)
* Add feature level permissions to Sidecar (CASSSIDECAR-193)
* Sidecar schema initialization can be executed on multiple thread
(CASSSIDECAR-200)
* Make sidecar operations resilient to down Cassandra nodes (CASSSIDECAR-201)
diff --git
a/client-common/src/main/java/org/apache/cassandra/sidecar/common/response/GossipInfoResponse.java
b/client-common/src/main/java/org/apache/cassandra/sidecar/common/response/GossipInfoResponse.java
index 4b1a7c3a..4968bd38 100644
---
a/client-common/src/main/java/org/apache/cassandra/sidecar/common/response/GossipInfoResponse.java
+++
b/client-common/src/main/java/org/apache/cassandra/sidecar/common/response/GossipInfoResponse.java
@@ -30,6 +30,7 @@ import static
org.apache.cassandra.sidecar.common.response.GossipInfoResponse.Go
import static
org.apache.cassandra.sidecar.common.response.GossipInfoResponse.GossipField.GENERATION;
import static
org.apache.cassandra.sidecar.common.response.GossipInfoResponse.GossipField.HEARTBEAT;
import static
org.apache.cassandra.sidecar.common.response.GossipInfoResponse.GossipField.HOST_ID;
+import static
org.apache.cassandra.sidecar.common.response.GossipInfoResponse.GossipField.INDEX_STATUS;
import static
org.apache.cassandra.sidecar.common.response.GossipInfoResponse.GossipField.INTERNAL_ADDRESS_AND_PORT;
import static
org.apache.cassandra.sidecar.common.response.GossipInfoResponse.GossipField.INTERNAL_IP;
import static
org.apache.cassandra.sidecar.common.response.GossipInfoResponse.GossipField.LOAD;
@@ -191,6 +192,12 @@ public class GossipInfoResponse extends HashMap<String,
GossipInfoResponse.Gossi
return read(this, HOST_ID);
}
+ @Nullable
+ public String indexStatus()
+ {
+ return read(this, INDEX_STATUS);
+ }
+
@Nullable
public String tokens()
{
@@ -275,7 +282,9 @@ public class GossipInfoResponse extends HashMap<String,
GossipInfoResponse.Gossi
* as a comma-separated list.
**/
SSTABLE_VERSIONS,
- DISK_USAGE;
+ DISK_USAGE,
+ INDEX_STATUS, // Introduced in Cassandra 5.0 for SAI
+ ;
static String read(GossipInfo gossipInfo, GossipField field)
{
diff --git
a/server-common/src/test/java/org/apache/cassandra/sidecar/common/server/utils/GossipInfoParserTest.java
b/server-common/src/test/java/org/apache/cassandra/sidecar/common/server/utils/GossipInfoParserTest.java
index 840c7653..b9c53e6f 100644
---
a/server-common/src/test/java/org/apache/cassandra/sidecar/common/server/utils/GossipInfoParserTest.java
+++
b/server-common/src/test/java/org/apache/cassandra/sidecar/common/server/utils/GossipInfoParserTest.java
@@ -35,7 +35,7 @@ class GossipInfoParserTest
assertThat(result).containsKey("/127.0.0.1")
.containsKey("localhost2/127.0.0.2")
.containsKey("/127.0.0.3");
- assertThat(result.get("/127.0.0.1")).hasSize(6);
+ assertThat(result.get("/127.0.0.1")).hasSize(7);
assertThat(result.get("localhost2/127.0.0.2")).hasSize(6);
assertThat(result.get("/127.0.0.3")).hasSize(6);
GossipInfoResponse.GossipInfo gossipInfo = result.get("/127.0.0.1");
@@ -45,6 +45,7 @@ class GossipInfoParserTest
assertThat(gossipInfo.statusWithPort()).isEqualTo("NORMAL,-9223372036854775808");
assertThat(gossipInfo.sstableVersions()).isEqualTo(Collections.singletonList("big-nb"));
assertThat(gossipInfo.tokens()).isEqualTo("<hidden>");
+
assertThat(gossipInfo.indexStatus()).isEqualTo("{\"ks.tbl_idx\":\"BUILD_SUCCEEDED\"}");
}
@Test
@@ -82,5 +83,6 @@ class GossipInfoParserTest
" LOAD:211:88971.0\n" +
" STATUS_WITH_PORT:19:NORMAL,-9223372036854775808\n" +
" SSTABLE_VERSIONS:6:big-nb\n" +
- " TOKENS:18:<hidden>";
+ " TOKENS:18:<hidden>\n" +
+ " INDEX_STATUS:2198:{\"ks.tbl_idx\":\"BUILD_SUCCEEDED\"}";
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]