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

Introduce REST Module for Scheduling and Managing Cassandra Repairs #771

Open
VictorCavichioli opened this issue Nov 18, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request PoC/Agent Tasks related to new generation of ecchronos as an agent

Comments

@VictorCavichioli
Copy link
Contributor

Story Description:

This user story aims to introduce a REST module and a rest.impl submodule to handle repair operations in Cassandra, including scheduling repairs, creating on-demand repairs, and other related functionalities. The REST module will provide an external API that enables clients to interact with ecChronos agent process programmatically, offering operations to initiate, monitor, and manage repairs.

The rest.impl submodule will handle the underlying business logic, ensuring that requests to schedule repairs, trigger repairs on-demand, and check repair statuses are executed in a consistent and reliable manner. These modules will add value by enabling enhanced management of repairs through simple REST API calls, making the repair process more accessible and automatable.

Acceptance Criteria:

[Acceptance Criterion 1]: The REST module provides endpoints to schedule repairs, trigger on-demand repairs, and retrieve the status of ongoing and past repair operations.

[Acceptance Criterion 2]: The rest.impl submodule contains the business logic required to execute scheduled and on-demand repairs, with handling for various repair parameters (e.g., keyspace, table, repair type).

[Acceptance Criterion 3]: The system logs all repair requests and responses to provide an audit trail and to facilitate troubleshooting.

[Acceptance Criterion 4]: Error handling is implemented for cases where repair requests cannot be completed, and meaningful error messages are returned to clients.

[Acceptance Criterion 5]: Both unit and integration tests are written to verify the behavior of the REST and rest.impl modules, covering all exposed functionalities.

Definition of Done:

  • The REST and rest.impl modules are fully implemented and tested, meeting all acceptance criteria.
  • API documentation is provided for the new REST endpoints, detailing request parameters, response formats, and usage examples.
  • Code has passed peer review, ensuring it meets all quality, performance, and security standards.
  • User documentation is updated to explain how to use the new scheduling and on-demand repair features.

Notes:

  • Consider providing rate limiting for repair API calls to prevent overloading the system with repair requests.
  • Ensure that permissions are enforced to restrict repair operations to authorized users only.
  • Investigate compatibility with existing maintenance schedules to avoid conflicts with other maintenance activities on Cassandra nodes.

Related to #652

@VictorCavichioli VictorCavichioli added enhancement New feature or request PoC/Agent Tasks related to new generation of ecchronos as an agent labels Nov 18, 2024
@VictorCavichioli VictorCavichioli self-assigned this Nov 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request PoC/Agent Tasks related to new generation of ecchronos as an agent
Projects
None yet
Development

No branches or pull requests

1 participant