dynamic-scheduler now uses RPC to reach the catalog - #9599
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #9599 +/- ##
==========================================
- Coverage 88.18% 88.16% -0.03%
==========================================
Files 1563 1559 -4
Lines 60661 60596 -65
Branches 1583 1583
==========================================
- Hits 53496 53424 -72
- Misses 6743 6751 +8
+ Partials 422 421 -1
Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
dynamic-scheduler now uses RPC to reach the catalog
There was a problem hiding this comment.
Pull request overview
This PR refactors dynamic-scheduler to use the Catalog RabbitMQ RPC interface (instead of HTTP) when retrieving service docker-image labels, and extends the Catalog RPC surface to expose get_service_labels end-to-end.
Changes:
- Switch
dynamic-schedulerstop logic to fetch service labels viaservicelib.rabbitmq.rpc_interfaces.catalog.services.get_service_labels(...). - Remove the
dynamic-schedulerHTTP thin/public Catalog clients and their related app settings and docker-compose env wiring. - Add
get_service_labelsto Catalog’s RPC server, the shared service-library RPC client, and test/support helpers (plus a Catalog unit test).
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| services/dynamic-scheduler/tests/unit/services/test_catalog.py | Removes HTTP-based Catalog client unit tests (client removed). |
| services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/common_interface.py | Uses Catalog RPC (get_service_labels) to decide legacy vs dynamic-sidecar stop behavior. |
| services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/catalog/_thin_client.py | Removes HTTP thin client implementation. |
| services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/catalog/_setup.py | Removes Catalog client lifespan/plugin setup. |
| services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/catalog/_public_client.py | Removes HTTP public client wrapper. |
| services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/catalog/init.py | Removes Catalog client exports. |
| services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/core/settings.py | Removes Catalog HTTP settings from dynamic-scheduler settings. |
| services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/core/application.py | Removes Catalog plugin configuration from app composition. |
| services/docker-compose.yml | Drops CATALOG_HOST/PORT envs from the dynamic-scheduler service section. |
| services/catalog/tests/unit/with_dbs/test_api_rpc.py | Adds unit test for Catalog RPC get_service_labels. |
| services/catalog/src/simcore_service_catalog/service/catalog_services.py | Adds service-layer helper to fetch/validate labels from director as SimcoreServiceLabels. |
| services/catalog/src/simcore_service_catalog/api/rpc/_services.py | Exposes get_service_labels over Catalog RPC. |
| packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/catalog/services.py | Adds shared RPC client method get_service_labels. |
| packages/pytest-simcore/src/pytest_simcore/helpers/catalog_rpc.py | Extends Catalog RPC test side-effects with get_service_labels. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
pcrespov
left a comment
There was a problem hiding this comment.
thx for following up on this.
…-catalog-client-dynamic-scheduler
|
@Mergifyio queue |
Merge Queue Status
This pull request spent 46 seconds in the queue, including 2 seconds running CI. Required conditions to merge
|
|



What do these changes do?
Replaced HTTP client form
dynamic-schedulerwith the RPC one since the HTTP interface of the catalog is deprecated.Related issue/s
How to test
Dev-ops