Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CASSSIDECAR-151: Adds sidecar endpoint for node decommissioning operation #144

Open
wants to merge 2 commits into
base: trunk
Choose a base branch
from

Conversation

arjunashok
Copy link
Contributor

@arjunashok arjunashok commented Nov 2, 2024

These changes are part of the effort to introduce bespoke Sidecar APIs to support key operational functionality currently managed through nodetool commands.

These changes specifically incorporate the node decommission functionality in a sidecar endpoint.

Update 12/19

  • Rebased changes from job management framework after CASSSIDECAR-150 was merged.

Changes

  • Incorporates Decommission API api/v1/cassandra/node/decommission
  • Leverages the job-management framework (CASSANDRASC-150) via a concrete DecommissionJob, which invokes the JMX API to trigger decommission operation.
  • Unit tests and integration tests
  • SidecarClient changes and tests for the new API

@@ -111,6 +111,10 @@ public final class ApiEndpointsV1

public static final String CONNECTED_CLIENT_STATS_ROUTE = API_V1 + CASSANDRA + "/stats/connected-clients";

public static final String LIST_JOBS_ROUTE = API_V1 + CASSANDRA + "/jobs";
public static final String JOB_STATUS_ROUTE = API_V1 + CASSANDRA + "/jobs/" + JOB_ID_PATH_PARAM + "/status";
public static final String NODE_DECOMMISSION_ROUTE = API_V1 + CASSANDRA + "/node/decommission";

Choose a reason for hiding this comment

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

We are using management in the prefix, for example /api/v1/cassandra/management/node/decommission for JMX and nodetool operations. IIRC, we discussed this during Sidecar's JMX APIs design meeting

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Right, and I feel these are different from those (and we arrived at this design during the nodetool APIs review), as they are specific to the administrative node operations like decommission, repair, rebuild etc. We can converge on the URI offline if you'd like.

@yifan-c yifan-c changed the title CASSANDRASC-151 Adds sidecar endpoint for node decommissioning operation CASSSIDECAR-151: Adds sidecar endpoint for node decommissioning operation Nov 19, 2024
@arjunashok arjunashok marked this pull request as ready for review December 19, 2024 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants