-
Sub-task
-
Resolution: Done
-
Normal
-
None
-
Product / Portfolio Work
-
5
-
False
-
-
False
-
None
-
Unset
-
-
As part of RHCLOUD-42396, Inventory API must accept an transaction ID as part of the request and leverage the transaction ID via database checks to ensure a previously processed request is not re-processed
- transaction ID can be captured in representation.metadata portion of request and should be added as an optional field in proto files
- When not provided, Inventory API should generate a transaction ID to use
- This change is reliant on updates to the database to include the new event_id rows
Expected Flow:
KIA as part of processing performs the following:
- If resource not found, create it (for ReportResource) or return 404 (for DeleteResource)
- If resource found, check the reporter/common rep tables for the transaction to ensure it has not been processed before
- If it has not – processes the request as normal, with the added step of updating the transaction in common/reporter rep tables
- If it has – does nothing, no updates to DB or outbox, returns 200
Note on event id updates in rep tables
- if only common is updated, a row will be inserted only into common_representation and transaction would be populated
- if only reporter is updated, a row will be inserted only into reporter_representation and transaction would be populated
- if both are updated, rows will be inserted into both common_representation and reporter_representation and transaction would be populated