Re: [edk2-devel] [edk2-redfish-client][PATCH 2/3] RedfishClientPkg/Edk2RedfishResourceConfigLib: support config2 protocol

2024-03-05 Thread Chang, Abner via groups.io
[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

2024-03-04 Thread Nickle Wang via groups.io
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