Re: [edk2-devel] [edk2-redfish-client][PATCH 2/3] RedfishClientPkg/Edk2RedfishResourceConfigLib: support config2 protocol
[AMD Official Use Only - General] Looks good to me. Reviewed-by: Abner Chang > -Original Message- > From: Nickle Wang > Sent: Monday, March 4, 2024 9:27 PM > To: devel@edk2.groups.io > Cc: Chang, Abner ; Igor Kulchytskyy > ; Nick Ramirez > Subject: [edk2-redfish-client][PATCH 2/3] > RedfishClientPkg/Edk2RedfishResourceConfigLib: support config2 protocol > > Caution: This message originated from an External Source. Use proper caution > when opening attachments, clicking links, or responding. > > > Support Redfish resource config2 protocol in Edk2RedfishResourceConfigLib. > This library will try Redfish resource config2 protocol first. And if > there is no matching protocol found, Redfish resource config protocol will > be used. > > Signed-off-by: Nickle Wang > Cc: Abner Chang > Cc: Igor Kulchytskyy > Cc: Nick Ramirez > --- > .../EdkIIRedfishResourceConfigLib.inf | 4 +- > .../Library/EdkIIRedfishResourceConfigLib.h | 33 +- > .../EdkIIRedfishResourceConfigInternal.h | 44 ++ > .../EdkIIRedfishResourceConfigLib.c | 391 ++ > 4 files changed, 385 insertions(+), 87 deletions(-) > create mode 100644 > RedfishClientPkg/Library/EdkIIRedfishResourceConfigLib/EdkIIRedfishResourc > eConfigInternal.h > > diff --git > a/RedfishClientPkg/Library/EdkIIRedfishResourceConfigLib/EdkIIRedfishReso > urceConfigLib.inf > b/RedfishClientPkg/Library/EdkIIRedfishResourceConfigLib/EdkIIRedfishReso > urceConfigLib.inf > index 2d10445f0..998a05c80 100644 > --- > a/RedfishClientPkg/Library/EdkIIRedfishResourceConfigLib/EdkIIRedfishReso > urceConfigLib.inf > +++ > b/RedfishClientPkg/Library/EdkIIRedfishResourceConfigLib/EdkIIRedfishReso > urceConfigLib.inf > @@ -22,6 +22,7 @@ > # > > [Sources] > + EdkIIRedfishResourceConfigInternal.h >EdkIIRedfishResourceConfigLib.c > > [Packages] > @@ -42,8 +43,9 @@ >RedfishHttpLib > > [Protocols] > - gEdkIIRedfishResourceConfigProtocolGuid ## CONSUMES ## > + gEdkIIRedfishResourceConfigProtocolGuid ## CONSUMES ## >gEdkIIRedfishFeatureInterchangeDataProtocolGuid ## CONSUMES ## > + gEdkIIRedfishResourceConfig2ProtocolGuid## CONSUEMS ## > > [Pcd] >gEfiRedfishClientPkgTokenSpaceGuid.PcdMaxRedfishSchemaStringSize > diff --git a/RedfishClientPkg/Include/Library/EdkIIRedfishResourceConfigLib.h > b/RedfishClientPkg/Include/Library/EdkIIRedfishResourceConfigLib.h > index 3aa953cec..57c7f2b80 100644 > --- a/RedfishClientPkg/Include/Library/EdkIIRedfishResourceConfigLib.h > +++ b/RedfishClientPkg/Include/Library/EdkIIRedfishResourceConfigLib.h > @@ -16,6 +16,7 @@ > #include > #include > #include > +#include > #include > > /** > @@ -23,6 +24,7 @@ > >@param[in] Schema Redfish schema information. >@param[in] Uri Target URI to create resource. > + @param[in] JsonTextThe JSON data in ASCII string format. > This is > optional. >@param[in] InformationExchange Pointer to > RESOURCE_INFORMATION_EXCHANGE. >@param[in] HttpPostModeTRUE if resource does not exist, HTTP POST > method is used. > FALSE if the resource exist but some of > properties are > missing, > @@ -33,9 +35,11 @@ > > **/ > EFI_STATUS > +EFIAPI > EdkIIRedfishResourceConfigProvisioning ( >IN REDFISH_SCHEMA_INFO*Schema, >IN EFI_STRING Uri, > + IN CHAR8 *JsonText OPTIONAL, >IN RESOURCE_INFORMATION_EXCHANGE *InformationExchange, >IN BOOLEANHttpPostMode >); > @@ -45,15 +49,18 @@ EdkIIRedfishResourceConfigProvisioning ( > >@param[in] Schema Redfish schema information. >@param[in] Uri The target URI to consume. > + @param[in] JsonTextThe JSON data in ASCII string format. > This is > optional. > >@retval EFI_SUCCESS Value is returned successfully. >@retval Others Some error happened. > > **/ > EFI_STATUS > +EFIAPI > EdkIIRedfishResourceConfigConsume ( >IN REDFISH_SCHEMA_INFO *Schema, > - IN EFI_STRING Uri > + IN EFI_STRING Uri, > + IN CHAR8*JsonText OPTIONAL >); > > /** > @@ -61,21 +68,25 @@ EdkIIRedfishResourceConfigConsume ( > >@param[in] Schema Redfish schema information. >@param[in] Uri The target URI to consume. > + @param[in] JsonTextThe JSON data in ASCII string format. > This is > optional. > >@retval EFI_SUCCESS Value is returned successfully. >@retval Others Some error happened. > > **/ > EFI_STATUS > +EFIAPI > EdkIIRedfishResourceConfigUpdate ( >IN REDFISH_SCHEMA_INFO *Schema, > - IN EFI_STRING Uri > + IN EFI_STRING Uri, > + IN CHAR8*JsonText OPTIONAL >); > > /** >Check resourc
[edk2-devel] [edk2-redfish-client][PATCH 2/3] RedfishClientPkg/Edk2RedfishResourceConfigLib: support config2 protocol
Support Redfish resource config2 protocol in Edk2RedfishResourceConfigLib. This library will try Redfish resource config2 protocol first. And if there is no matching protocol found, Redfish resource config protocol will be used. Signed-off-by: Nickle Wang Cc: Abner Chang Cc: Igor Kulchytskyy Cc: Nick Ramirez --- .../EdkIIRedfishResourceConfigLib.inf | 4 +- .../Library/EdkIIRedfishResourceConfigLib.h | 33 +- .../EdkIIRedfishResourceConfigInternal.h | 44 ++ .../EdkIIRedfishResourceConfigLib.c | 391 ++ 4 files changed, 385 insertions(+), 87 deletions(-) create mode 100644 RedfishClientPkg/Library/EdkIIRedfishResourceConfigLib/EdkIIRedfishResourceConfigInternal.h diff --git a/RedfishClientPkg/Library/EdkIIRedfishResourceConfigLib/EdkIIRedfishResourceConfigLib.inf b/RedfishClientPkg/Library/EdkIIRedfishResourceConfigLib/EdkIIRedfishResourceConfigLib.inf index 2d10445f0..998a05c80 100644 --- a/RedfishClientPkg/Library/EdkIIRedfishResourceConfigLib/EdkIIRedfishResourceConfigLib.inf +++ b/RedfishClientPkg/Library/EdkIIRedfishResourceConfigLib/EdkIIRedfishResourceConfigLib.inf @@ -22,6 +22,7 @@ # [Sources] + EdkIIRedfishResourceConfigInternal.h EdkIIRedfishResourceConfigLib.c [Packages] @@ -42,8 +43,9 @@ RedfishHttpLib [Protocols] - gEdkIIRedfishResourceConfigProtocolGuid ## CONSUMES ## + gEdkIIRedfishResourceConfigProtocolGuid ## CONSUMES ## gEdkIIRedfishFeatureInterchangeDataProtocolGuid ## CONSUMES ## + gEdkIIRedfishResourceConfig2ProtocolGuid## CONSUEMS ## [Pcd] gEfiRedfishClientPkgTokenSpaceGuid.PcdMaxRedfishSchemaStringSize diff --git a/RedfishClientPkg/Include/Library/EdkIIRedfishResourceConfigLib.h b/RedfishClientPkg/Include/Library/EdkIIRedfishResourceConfigLib.h index 3aa953cec..57c7f2b80 100644 --- a/RedfishClientPkg/Include/Library/EdkIIRedfishResourceConfigLib.h +++ b/RedfishClientPkg/Include/Library/EdkIIRedfishResourceConfigLib.h @@ -16,6 +16,7 @@ #include #include #include +#include #include /** @@ -23,6 +24,7 @@ @param[in] Schema Redfish schema information. @param[in] Uri Target URI to create resource. + @param[in] JsonTextThe JSON data in ASCII string format. This is optional. @param[in] InformationExchange Pointer to RESOURCE_INFORMATION_EXCHANGE. @param[in] HttpPostModeTRUE if resource does not exist, HTTP POST method is used. FALSE if the resource exist but some of properties are missing, @@ -33,9 +35,11 @@ **/ EFI_STATUS +EFIAPI EdkIIRedfishResourceConfigProvisioning ( IN REDFISH_SCHEMA_INFO*Schema, IN EFI_STRING Uri, + IN CHAR8 *JsonText OPTIONAL, IN RESOURCE_INFORMATION_EXCHANGE *InformationExchange, IN BOOLEANHttpPostMode ); @@ -45,15 +49,18 @@ EdkIIRedfishResourceConfigProvisioning ( @param[in] Schema Redfish schema information. @param[in] Uri The target URI to consume. + @param[in] JsonTextThe JSON data in ASCII string format. This is optional. @retval EFI_SUCCESS Value is returned successfully. @retval Others Some error happened. **/ EFI_STATUS +EFIAPI EdkIIRedfishResourceConfigConsume ( IN REDFISH_SCHEMA_INFO *Schema, - IN EFI_STRING Uri + IN EFI_STRING Uri, + IN CHAR8*JsonText OPTIONAL ); /** @@ -61,21 +68,25 @@ EdkIIRedfishResourceConfigConsume ( @param[in] Schema Redfish schema information. @param[in] Uri The target URI to consume. + @param[in] JsonTextThe JSON data in ASCII string format. This is optional. @retval EFI_SUCCESS Value is returned successfully. @retval Others Some error happened. **/ EFI_STATUS +EFIAPI EdkIIRedfishResourceConfigUpdate ( IN REDFISH_SCHEMA_INFO *Schema, - IN EFI_STRING Uri + IN EFI_STRING Uri, + IN CHAR8*JsonText OPTIONAL ); /** Check resource on given URI. @param[in] Uri The target URI to consume. + @param[in] JsonTextThe JSON data in ASCII string format. This is optional. @retval EFI_SUCCESS Value is returned successfully. @retval EFI_UNSUPPORTED This resource is not owned by feature driver. @@ -84,9 +95,11 @@ EdkIIRedfishResourceConfigUpdate ( **/ EFI_STATUS +EFIAPI EdkIIRedfishResourceConfigCheck ( IN REDFISH_SCHEMA_INFO *Schema, - IN EFI_STRING Uri + IN EFI_STRING Uri, + IN CHAR8*JsonText OPTIONAL ); /** @@ -94,6 +107,7 @@ EdkIIRedfishResourceConfigCheck ( @param[in] Schema Redfish schema information. @param[i