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]

Reply via email to