-
Notifications
You must be signed in to change notification settings - Fork 32
✨ Adding RPC entry points to dynamic-sidecar for disk and volumes
#7651
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
✨ Adding RPC entry points to dynamic-sidecar for disk and volumes
#7651
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #7651 +/- ##
==========================================
- Coverage 87.57% 87.40% -0.17%
==========================================
Files 1804 1630 -174
Lines 70197 66154 -4043
Branches 1137 893 -244
==========================================
- Hits 61478 57825 -3653
+ Misses 8409 8084 -325
+ Partials 310 245 -65
Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
…-long-running-rpc-interface-to-dy-sidecar
…-long-running-rpc-interface-to-dy-sidecar
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces new RPC entry points to enable disk and volume operations in the dynamic-sidecar service, paving the way for migrating from a REST interface to a full RPC interface.
- Added unit tests for RPC endpoints managing volumes, disk usage, and reserved disk space.
- Refactored services and API routes to integrate the RabbitMQ RPC client.
- Updated the shared store model to use a type alias for the compose specification.
Reviewed Changes
Copilot reviewed 23 out of 23 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/unit/api/rpc/test__volumes.py | Added tests validating volume state saving and error handling for invalid categories. |
| tests/unit/api/rpc/test__disk_usage.py | Introduced tests for updating disk usage via RPC. |
| tests/unit/api/rpc/test__disk.py | Added tests for freeing reserved disk space via RPC. |
| tests/unit/api/rpc/conftest.py | Cleaned up and removed redundant disk usage test setups. |
| src/simcore_service_dynamic_sidecar/services/volumes.py | Added async service to save volume state using the shared store. |
| src/simcore_service_dynamic_sidecar/services/disk.py | Introduced a wrapper to remove reserved disk space. |
| src/simcore_service_dynamic_sidecar/models/shared_store.py | Updated compose_spec field to use a type alias from models_library. |
| src/simcore_service_dynamic_sidecar/api/rpc/routes.py | Registered new RPC routers for disk and volume operations. |
| src/simcore_service_dynamic_sidecar/api/rpc/_volumes.py | Created RPC endpoint for saving volume state. |
| src/simcore_service_dynamic_sidecar/api/rpc/_disk_usage.py | Added validate_call decorator to the disk usage update RPC endpoint. |
| src/simcore_service_dynamic_sidecar/api/rpc/_disk.py | Exposed RPC endpoint to free reserved disk space. |
| src/simcore_service_dynamic_sidecar/api/rest/volumes.py | Updated REST endpoint to delegate volume state saving to the new service. |
| src/simcore_service_dynamic_sidecar/api/rest/disk.py | Adjusted REST endpoint to call the new disk service. |
| packages/service-library/.../volumes.py | Defined RPC interface function for saving volume state using RabbitMQ. |
| packages/service-library/.../disk_usage.py | Adjusted RPC interface for updating disk usage with inline validation. |
| packages/service-library/.../disk.py | Created RPC interface for freeing reserved disk space. |
| packages/models-library/src/models_library/api_schemas_dynamic_sidecar/containers.py | Added a type alias for the compose specification string. |
services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/models/shared_store.py
Outdated
Show resolved
Hide resolved
packages/models-library/src/models_library/api_schemas_dynamic_sidecar/containers.py
Outdated
Show resolved
Hide resolved
…-long-running-rpc-interface-to-dy-sidecar
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thx
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks. maybe check the pydantic-yaml library.
packages/models-library/src/models_library/api_schemas_dynamic_sidecar/containers.py
Show resolved
Hide resolved
packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/dynamic_sidecar/disk.py
Outdated
Show resolved
Hide resolved
|
@Mergifyio queue |
✅ The pull request has been merged automaticallyThe pull request has been merged automatically at 3595349 |
…-long-running-rpc-interface-to-dy-sidecar
|



What do these changes do?
This is part of a series of PRs which will migrate the entire interface of the dynamic-sidecar to RPC. The idea is to drop the REST interface when dropping the scheduler from
director-v2.NOTE:
Related issue/s
dynamic-sidecar[part1] #7251How to test
Dev-ops