Post by nschellenberger on Mar 29, 2023 19:19:07 GMT
We're implementing a CompositionService in a Redfish service which is an aggregator. The ComputerSystems and ResourceBlocks being composed belong to two or more different aggregated sub-sources. What is the canonical or recommended way to handle the various composition-related Links properties between these?
Some random thoughts were :
In our case the answer may (?) be further influenced by the fact that while the aggregator can (obviously) reach all of the sub-services involved, the sub-services will typically not be able to route Redfish traffic to each other (for reasons outside the immediate scope of this question, they may not even be IP-reachable from one another).
Some random thoughts were :
- update the sub-source models with Links which ref URIs having schema/authority portion for the counterpart e.g. the composed ComputerSystem on one sub-source Links to ResourceBlock(s) on other(s) using an entity-ref like `@odata.id: "https://resourceblockhost42/redfish/v1/etc"`; or
- augment the sub-source models by creating "placeholders" for the counterparts on other sources with Links ManagedBy e.g. creating a placeholder ComputerSystem on the ResourceBlock sub-source, with the ResourceBlock Links pointing to that "local" relative entity-id but the local placeholder ComputerSystem resource having no useful content beyond a ManagedBy Links pointing at the real manager on the applicable other sub-source; or
- persist the Links only on the aggregating service's aggregated model and leave the sub-services blissfully unaware of each other--possibly leading to confusion if anyone accesses those sub-services directly and doesn't see the composition related links....
In our case the answer may (?) be further influenced by the fact that while the aggregator can (obviously) reach all of the sub-services involved, the sub-services will typically not be able to route Redfish traffic to each other (for reasons outside the immediate scope of this question, they may not even be IP-reachable from one another).