RedfishClientPkg: Redfish task service support#98
Conversation
62a3d74 to
5881f20
Compare
| while (!IsNull (&Private->RegisteredList, Node)) { | ||
| Entry = REDFISH_TASK_REGISTERED_ENTRY_FROM_LIST (Node); | ||
|
|
||
| if ((StrCmp (Entry->ListenUri, Uri) == 0) && (Entry->Context == Context)) { |
There was a problem hiding this comment.
Wouldn't it be better to check Context value at first?
| JsonValueFree (TaskCollection); | ||
| } | ||
|
|
||
| return Status; |
There was a problem hiding this comment.
@nicklela, there is a compilation warning:
RedfishClientPkg/RedfishTaskServiceDxe/RedfishTaskServiceDxe.c:496:10: error: 'Status' may be used uninitialized in this function [-Werror=maybe-uninitialized]
return Status;
^~~~~~
cc1: all warnings being treated as errors.
|
I need more time to create flow diagram and explain how Redfish task works. So I convert this pull request to draft for now. |
|
@nicklela Can we move this draft for review? Please review the attached files for Redfish Task Service flow. /// The dispatcher will iterate through all the tasks available in the collection and will try to identify the associated |
|
Hi @nicklela , @changab , @igorkulchytskyy - Are we good with the Redfish TaskService flow, Can we merge this change? |
I remember last time Igor had question about the design. @igorkulchytskyy if you have chance, could you check the flow diagram that @achhetry update above? |
igorkulchytskyy
left a comment
There was a problem hiding this comment.
Looks good for me now. Thank you
|
Hi @nicklela , This branch has conflicts, can you please help to resolve |
|
@nicklela, just a reminder for this PR. |
Introduce new library to handle Redfish message. This library associate Redfish message to corresponding Redfish URI. When Redfish resource is ready for provisioning, driver can get all Redfish messages associated with this Redfish URI and add them into provision data. Signed-off-by: Nickle Wang <nicklew@nvidia.com>
…tate Introduce new library of updating Redfish task state to BMC. The interface between host and BMC for updating Redfish task state is not defined in industrial specification. Since this depends on platform BMC implementation, this library is created for platform owner to handle this part. Signed-off-by: Nickle Wang <nicklew@nvidia.com>
Add new library to read Redfish protocol feature attribute. Redfish feature driver calls this library to get protocol feature support on BMC. Signed-off-by: Nickle Wang <nicklew@nvidia.com>
… task Introduce new driver to handle Redfish task service. This driver reads Redfish task service and dispatch task to registered Redfish driver. When Redfish driver is done with his job, this driver helps to return task result back to BMC. Signed-off-by: Nickle Wang <nicklew@nvidia.com>
Add special handing for Redfish task service because task needs to be called before Redfish feature driver. The request from Redfish task may change the BIOS configuration so it has to be handled first. Signed-off-by: Nickle Wang <nicklew@nvidia.com>
30bf20a to
e234d82
Compare
Enable Redfish task support by adding RedfishTaskDxe driver, Redfish message library and Redfish task library to RedfishClientPkg. Signed-off-by: Nickle Wang <nicklew@nvidia.com>
Add Redfish Task service driver and its design diagram to Readme file. Signed-off-by: Nickle Wang <nicklew@nvidia.com> Co-authored-by: Aman Chhetry <achhetry@qti.qualcomm.com>
Do not run patch checks to svg image files Signed-off-by: Nickle Wang <nicklew@nvidia.com>
e234d82 to
52cdf91
Compare
Hi @changab @achhetry I have rebased this pull request to the top of tree. @achhetry I add your diagram and description of task service in #98 (comment) to Readme.md file. Thanks for your great help! Please help me to review this pull request and see if I missed anything, thanks! |
|
|
||
| **/ | ||
|
|
||
| #ifndef REDFISH_MESSAGE_LIB_H_ |
There was a problem hiding this comment.
Is this repo keeping #ifndef or moving to #pragma once ?
| DESTRUCTOR = RedfishMessageDestructor | ||
|
|
||
| # | ||
| # VALID_ARCHITECTURES = IA32 X64 EBC |
| gEfiRedfishClientPkgTokenSpaceGuid.PcdRedfishCoreExecuteOnce|TRUE|BOOLEAN|0x10000007 | ||
| # This is used to disable Redfish HTTP query by using "$expand" parameter even when | ||
| # Redfish service supports this query parameter. | ||
| gEfiRedfishClientPkgTokenSpaceGuid.PcdHttpExpandQueryDisabled|FALSE|BOOLEAN|0x2000000A |
There was a problem hiding this comment.
Is there some reason to change to 0x2* instead of incrementing previous one ?
Description
Introduce driver and library to support Redfish task service.
How This Was Tested
Build pass on RedfishClientPkg.