Currently at the reception of an AggregationSourceDiscovered event the library creates an AggregationSource object locally and imports a reference of the Fabrics exposed by the Agent. To trigger a crawl-out inspection of the Redfish tree, the Agent informs that a Fabric is read by sending the event ResourceCreated. The schema below show the various steps.
There are some design issues with the current approach:
In step 2 we save a reference to the Fabrics exposed by the Agent but such resources do not get imported straight away. In case of a delayed reception of the ResourceCreated event, the state results inconsistent.
Agents do not possess an identifier to discriminate themself. Sunfish needs to inspect the resource to find the ManagingAgent (see #10)
I propose we update the current mechanism and PATCH the Subscription describing the EventDestination stored in the Agent with a Context that matches the Id of the AggregationService persistent in Sunfish.
Example of EventDestination on the Sunfish Agent where Context is the Id of the AggregationSource generated by Sunfish as part of the registration.
With this approach events sent to an EventDestination can report the Context, and aid Sunfish in identifying the source of the message. Example of message with Context.
Currently at the reception of an
AggregationSourceDiscovered
event the library creates an AggregationSource object locally and imports a reference of the Fabrics exposed by the Agent. To trigger a crawl-out inspection of the Redfish tree, the Agent informs that a Fabric is read by sending the eventResourceCreated
. The schema below show the various steps.There are some design issues with the current approach:
ResourceCreated
event, the state results inconsistent.ManagingAgent
(see #10)I propose we update the current mechanism and
PATCH
the Subscription describing theEventDestination
stored in the Agent with aContext
that matches the Id of the AggregationService persistent in Sunfish.Example of
EventDestination
on the Sunfish Agent whereContext
is the Id of the AggregationSource generated by Sunfish as part of the registration.With this approach events sent to an
EventDestination
can report theContext
, and aid Sunfish in identifying the source of the message. Example of message withContext
.