Skip to content

feat: expose YCQL port in devnet-info export#88

Merged
redpanda-f merged 1 commit intomainfrom
feat/redpanda/ycql-port-support
Mar 10, 2026
Merged

feat: expose YCQL port in devnet-info export#88
redpanda-f merged 1 commit intomainfrom
feat/redpanda/ycql-port-support

Conversation

@redpanda-f
Copy link
Copy Markdown
Contributor

This is needed as part of scenario tests for checking cassandra indexstore caches.

This does not break DevnetInfoV1, merely extends it, so no major version updates is required.

Part of #72

@redpanda-f redpanda-f requested a review from rvagg March 10, 2026 07:35
@redpanda-f redpanda-f self-assigned this Mar 10, 2026
Copilot AI review requested due to automatic review settings March 10, 2026 07:35
@FilOzzy FilOzzy added this to FOC Mar 10, 2026
@github-project-automation github-project-automation bot moved this to 📌 Triage in FOC Mar 10, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Extends the exported devnet-info.json schema to include YugabyteDB’s YCQL (Cassandra-compatible) port so scenario tests (e.g., Cassandra indexstore cache checks) can discover and connect to the correct CQL endpoint.

Changes:

  • Add ycql_port to the YugabyteInfo schema.
  • Populate ycql_port in the devnet-info exporter from the SetupContext (yugabyte_<id>_ycql_port).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/external_api/export.rs Reads yugabyte_<provider_id>_ycql_port from the setup context and includes it in exported YugabyteInfo.
src/external_api/devnet_info.rs Extends the YugabyteInfo struct with a new ycql_port field and documentation.

/// YSQL port for Postgres-compatible connections
pub ysql_port: u16,
/// YCQL port for Cassandra-compatible connections
pub ycql_port: u16,
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

YugabyteInfo is a public struct (re-exported via crate::external_api) and the crate is versioned as 1.x. Adding a new non-optional field is a semver-breaking API change for Rust consumers (struct literals / exhaustive patterns) and also makes deserializing older devnet-info.json (without ycql_port) fail. To keep this extension backward/forward compatible within schema v1, consider making ycql_port an Option<u16> with #[serde(default)] (and populate it as Some(...) in the exporter), or alternatively bump the exported schema version and introduce a v2 struct.

Suggested change
pub ycql_port: u16,
#[serde(default)]
pub ycql_port: Option<u16>,

Copilot uses AI. Check for mistakes.
@github-project-automation github-project-automation bot moved this from 📌 Triage to ✔️ Approved by reviewer in FOC Mar 10, 2026
@redpanda-f redpanda-f merged commit 82ed483 into main Mar 10, 2026
7 checks passed
@github-project-automation github-project-automation bot moved this from ✔️ Approved by reviewer to 🎉 Done in FOC Mar 10, 2026
@redpanda-f redpanda-f deleted the feat/redpanda/ycql-port-support branch March 10, 2026 09:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🎉 Done

Development

Successfully merging this pull request may close these issues.

4 participants