fix(resource-registry): implement get_parents() on ResourceDagMixin #3252

Merged
freemo merged 1 commits from fix/v3.7.0-resource-dag-mixin-get-parents into master 2026-04-05 21:11:48 +00:00

1 Commits

Author SHA1 Message Date
freemo cd162488ec fix(resource-registry): implement get_parents() on ResourceDagMixin
CI / lint (pull_request) Successful in 26s
CI / typecheck (pull_request) Successful in 51s
CI / quality (pull_request) Successful in 41s
CI / security (pull_request) Successful in 1m4s
CI / build (pull_request) Successful in 27s
CI / helm (pull_request) Successful in 29s
CI / unit_tests (pull_request) Successful in 7m2s
CI / e2e_tests (pull_request) Successful in 17m44s
CI / integration_tests (pull_request) Successful in 23m6s
CI / docker (pull_request) Successful in 1m23s
CI / coverage (pull_request) Successful in 10m43s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 58m12s
Add get_parents(name_or_id: str) -> list[Resource] method to ResourceDagMixin
in _resource_registry_dag.py. The method is symmetric to the existing
get_children() method but queries ResourceLinkModel by child_id instead of
parent_id to return all direct parent resources.

Implementation details:
- Calls show_resource() first to raise NotFoundError for non-existent resources
- Queries ResourceLinkModel filtered by child_id=resource.resource_id
- Returns deterministically sorted list (by name, then resource_id)
- Exposed via ResourceRegistryService through the mixin inheritance chain

The BDD scenario 'Get parents returns all direct parents' in
resource_dag.feature now passes. All 15 existing @dag_traversal and other
DAG scenarios continue to pass with no regression.

ISSUES CLOSED: #2844
2026-04-05 08:27:19 +00:00