From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 456B1740040 for ; Thu, 4 Jan 2024 05:09:37 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=zaz1ydaXO7QlysNfOQAN48veP0JvekElLPh6fpFbBiw=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Received-SPF:From:To:CC:Subject:Date:Message-ID:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1704344975; v=1; b=goGRnOU7PzmYB0BIOsWLdU9Jn57jFwuBijJ2Uf43jWApSdnCwU/8jpi2tr67VIuL5K3nbXFF jsWoxAeZq26LELrcaSdwtobZxUfVaw/cXBEGu8IgmGslLpzAZ6R4Hn/jgcBY18kESBvZEUvNRHs prVA8dpKXnnOlVgC3sEHolsc= X-Received: by 127.0.0.2 with SMTP id 7mHVYY7687511xvH1nkZG8sh; Wed, 03 Jan 2024 21:09:35 -0800 X-Received: from NAM11-BN8-obe.outbound.protection.outlook.com (NAM11-BN8-obe.outbound.protection.outlook.com [40.107.236.40]) by mx.groups.io with SMTP id smtpd.web11.47951.1704344974863026922 for ; Wed, 03 Jan 2024 21:09:35 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Umg62+TUUhUR9FaV8J9Ln4SLBQt86Y9etS6WfDOcsAhzlvuuGp/CJ9qH5RwVIagt566X0+hDRZvKVuxYvVUR38Ok1J1wFzg+M7aVIhGWt3oq0nTn8l0Kodqv++0URDpK3hILPeq1Q0V8vXE4mnZI5NXEQQJLOCZmH4cw3KxNVrUAM+vuELhjM0JM3AobbwGd/z5bEU+io339XqT3pVwh3ixrz2xxMkpYVykremdjKPEK8sT0xqzG45tb0EsRxmZI8AEIf7Z8fHU6w2VyV0kEIan6ktP6ZYdpzKsxE2CsXOaMs5yuF4Majef7kDV6pTU5SVo5y5eULKwVmbdauuRBcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hdOr1W2nL32YXwprJ6rn1386QcULK/kjKtSeF0EJDJA=; b=fZAZp94AVk2IwY0k54Jttw+yQn+lGk7ViB1jv1fddWSvL5QL7g/yKbHt132r/21FvQ8jjK8jbkUledmcjBug77U9wFq8gfn4Z+uQx26bFdYi2bQ/66uQiapAa2eilPgBTFvmmc4Alc2DgDe4q3xPOjtxlLit+6Eoo1/BODX/HMCJH3TgldKIWUghrVuIizqJPffvbmi2bD3HhIwtXC/N84fvgERngomE12H4L9Qki8gM9uWAI2J9rtnJqf0O+i7LZeF2gPKIKsa/6tHupuBBM1YeXD9b2PtWIKpFy/hYYYQw37xnHqjlJdrREH5N8Q2g0dt/R5p60NYjEtwNCzBJig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) X-Received: from SJ0PR03CA0246.namprd03.prod.outlook.com (2603:10b6:a03:3a0::11) by SJ2PR12MB8978.namprd12.prod.outlook.com (2603:10b6:a03:545::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.13; Thu, 4 Jan 2024 05:09:31 +0000 X-Received: from SJ5PEPF000001D1.namprd05.prod.outlook.com (2603:10b6:a03:3a0:cafe::3a) by SJ0PR03CA0246.outlook.office365.com (2603:10b6:a03:3a0::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.14 via Frontend Transport; Thu, 4 Jan 2024 05:09:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C X-Received: from mail.nvidia.com (216.228.117.160) by SJ5PEPF000001D1.mail.protection.outlook.com (10.167.242.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.9 via Frontend Transport; Thu, 4 Jan 2024 05:09:31 +0000 X-Received: from rnnvmail203.nvidia.com (10.129.68.9) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 3 Jan 2024 21:09:19 -0800 X-Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 3 Jan 2024 21:09:19 -0800 X-Received: from NV-CL38DL3.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.986.41 via Frontend Transport; Wed, 3 Jan 2024 21:09:18 -0800 From: "Nickle Wang via groups.io" To: CC: Abner Chang , Igor Kulchytskyy , "Nick Ramirez" Subject: [edk2-devel] [edk2-redfish-client][PATCH 1/4] RedfishClientPkg: add ETag to Redfish resource check function Date: Thu, 4 Jan 2024 13:09:17 +0800 Message-ID: <20240104050917.70558-1-nicklew@nvidia.com> MIME-Version: 1.0 X-NVConfidentiality: public X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D1:EE_|SJ2PR12MB8978:EE_ X-MS-Office365-Filtering-Correlation-Id: 085bb4d1-7f8e-4b0d-de38-08dc0ce35595 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: veFA5JrkbTXrsd5Kwb+ndxylR/jCSsYwKh9FdJBbfdGtSYjuiZ4ifRQmiW1dp9tgVksu3QshaDBLGhifQP01gSLM0zCC//QTP6pD4u+IGboZCIgb3oRSV5ZWGqvjWJZ8EkB+5khnG5kzGQxSlOHFKjCREOelCiJpkSG28MZznGQqFIcJ3bsZh4WUQl92o6TDLL3TOfQqCoF2BKfoCeeQ4T6gDiIO3+PgP+3nUwJr3bosE9quy6Gsyp5ELBrHramTbuCWsGiY6p3YP5GVxftMt2O1Q91QflG6MbPTRbrenMbsqKUzCIT8gW0VRRfCJbqNgp4jksESJAx0iQdZsUf+ZbsKzG4kPE6sG54YyAEyQyj8MX7wrJSeVKzY+87WPJFYIFgj9b8oDvTFy5sOL3tQ5ksz8jMcxinlGzQXqu/VYrnvxIum1/N4pO+WzYxA03H4HTPRjEQU+09EC7qpTGr7UMHesuxzCkyN4xZ7U09VXqd2IkZT9tx914Uh3+XIUSrqGbhK4BbzupPpCTBssLfv4rkfbx77Y66vq39134fsDYUATkDwOmTVp1D9YhuzdWGWkLxNXqfxXgvGN2iU4tuGrEqpOAW4LKS1xcVh6lFyuKH1poFMP1mUwr2xJnpfMaFKpLzsadDlmr82kWV/7n2MaGyBrAD8daVY7DMtDZ+HYelHz0imFn6l7oXzmiFsfWCSzb4zCpCJ3cArGvae6W6HIQfYUCEeN/+R7keLpzltrqw1c57Q2ahZuKTgtEOf36+s X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2024 05:09:31.1512 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 085bb4d1-7f8e-4b0d-de38-08dc0ce35595 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D1.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8978 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nicklew@nvidia.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: ms7MBFgihjqFE005pMJMZ7ePx7686176AA= Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=goGRnOU7; dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") Add ETag parameter to RedfishCheckResourceCommon(). When the ETag from Redfish resource is not changed, feature driver can skip the check function. This helps to improve the feature driver performance. Signed-off-by: Nickle Wang Cc: Abner Chang Cc: Igor Kulchytskyy Cc: Nick Ramirez --- RedfishClientPkg/Include/RedfishResourceCommon.h | 4 +++- .../Features/Bios/v1_0_9/Common/BiosCommon.c | 15 ++++++++++++++- .../Features/Bios/v1_0_9/Dxe/BiosDxe.c | 12 +++++++++++- .../v1_5_0/Common/ComputerSystemCommon.c | 15 ++++++++++++++- .../ComputerSystem/v1_5_0/Dxe/ComputerSystemDxe.c | 12 +++++++++++- .../Features/Memory/V1_7_1/Common/MemoryCommon.c | 15 ++++++++++++++- .../Features/Memory/V1_7_1/Dxe/MemoryDxe.c | 12 +++++++++++- 7 files changed, 78 insertions(+), 7 deletions(-) diff --git a/RedfishClientPkg/Include/RedfishResourceCommon.h b/RedfishClie= ntPkg/Include/RedfishResourceCommon.h index d354d3b0..c1286adc 100644 --- a/RedfishClientPkg/Include/RedfishResourceCommon.h +++ b/RedfishClientPkg/Include/RedfishResourceCommon.h @@ -106,6 +106,7 @@ RedfishProvisioningResourceCommon ( =20 @param[in] This Pointer to REDFISH_RESOURCE_COMMON_PRIV= ATE instance. @param[in] Json The JSON to consume. + @param[in] HeaderEtag The Etag string returned in HTTP header= . =20 @retval EFI_SUCCESS Value is returned successfully. @retval Others Some error happened. @@ -114,7 +115,8 @@ RedfishProvisioningResourceCommon ( EFI_STATUS RedfishCheckResourceCommon ( IN REDFISH_RESOURCE_COMMON_PRIVATE *Private, - IN CHAR8 *Json + IN CHAR8 *Json, + IN CHAR8 *HeaderEtag OPTIONAL ); =20 /** diff --git a/RedfishClientPkg/Features/Bios/v1_0_9/Common/BiosCommon.c b/Re= dfishClientPkg/Features/Bios/v1_0_9/Common/BiosCommon.c index a26a1083..0ae84149 100644 --- a/RedfishClientPkg/Features/Bios/v1_0_9/Common/BiosCommon.c +++ b/RedfishClientPkg/Features/Bios/v1_0_9/Common/BiosCommon.c @@ -530,6 +530,7 @@ RedfishProvisioningResourceCommon ( =20 @param[in] This Pointer to REDFISH_RESOURCE_COMMON_PRIV= ATE instance. @param[in] Json The JSON to consume. + @param[in] HeaderEtag The Etag string returned in HTTP header= . =20 @retval EFI_SUCCESS Value is returned successfully. @retval Others Some error happened. @@ -538,7 +539,8 @@ RedfishProvisioningResourceCommon ( EFI_STATUS RedfishCheckResourceCommon ( IN REDFISH_RESOURCE_COMMON_PRIVATE *Private, - IN CHAR8 *Json + IN CHAR8 *Json, + IN CHAR8 *HeaderEtag OPTIONAL ) { UINTN Index; @@ -551,6 +553,17 @@ RedfishCheckResourceCommon ( return EFI_INVALID_PARAMETER; } =20 + // + // Check ETAG to see if we need to check this resource again or not. + // + if (CheckEtag (Private->Uri, HeaderEtag, NULL)) { + // + // No change + // + DEBUG ((DEBUG_MANAGEABILITY, "%a: ETAG: %s has no change, ignore check= action\n", __func__, Private->Uri)); + return EFI_SUCCESS; + } + Status =3D RedfishPlatformConfigGetConfigureLang (RESOURCE_SCHEMA, RESOU= RCE_SCHEMA_VERSION, REDPATH_ARRAY_PATTERN, &ConfigureLangList, &Count); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, "%a, RedfishPlatformConfigGetConfigureLang failed= : %r\n", __func__, Status)); diff --git a/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.c b/RedfishC= lientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.c index 64b9d562..2a49c5cd 100644 --- a/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.c +++ b/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.c @@ -336,6 +336,7 @@ RedfishResourceCheck ( REDFISH_RESOURCE_COMMON_PRIVATE *Private; EFI_STATUS Status; REDFISH_RESPONSE Response; + CHAR8 *Etag; =20 if ((This =3D=3D NULL) || IS_EMPTY_STRING (Uri)) { return EFI_INVALID_PARAMETER; @@ -361,7 +362,16 @@ RedfishResourceCheck ( Private->Json =3D JsonDumpString (RedfishJsonInPayload (Private->Payload= ), EDKII_JSON_COMPACT); ASSERT (Private->Json !=3D NULL); =20 - Status =3D RedfishCheckResourceCommon (Private, Private->Json); + // + // Find etag in HTTP response header + // + Etag =3D NULL; + Status =3D GetEtagAndLocation (&Response, &Etag, NULL); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a: failed to get ETag from HTTP header\n", __fu= nc__)); + } + + Status =3D RedfishCheckResourceCommon (Private, Private->Json, Etag); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, "%a, failed to check resource from: %s: %r\n", __= func__, Uri, Status)); } diff --git a/RedfishClientPkg/Features/ComputerSystem/v1_5_0/Common/Compute= rSystemCommon.c b/RedfishClientPkg/Features/ComputerSystem/v1_5_0/Common/Co= mputerSystemCommon.c index 979d49f7..3ace03bd 100644 --- a/RedfishClientPkg/Features/ComputerSystem/v1_5_0/Common/ComputerSystem= Common.c +++ b/RedfishClientPkg/Features/ComputerSystem/v1_5_0/Common/ComputerSystem= Common.c @@ -1434,6 +1434,7 @@ RedfishProvisioningResourceCommon ( =20 @param[in] This Pointer to REDFISH_RESOURCE_COMMON_PRIV= ATE instance. @param[in] Json The JSON to consume. + @param[in] HeaderEtag The Etag string returned in HTTP header= . =20 @retval EFI_SUCCESS Value is returned successfully. @retval Others Some error happened. @@ -1442,7 +1443,8 @@ RedfishProvisioningResourceCommon ( EFI_STATUS RedfishCheckResourceCommon ( IN REDFISH_RESOURCE_COMMON_PRIVATE *Private, - IN CHAR8 *Json + IN CHAR8 *Json, + IN CHAR8 *HeaderEtag OPTIONAL ) { UINTN Index; @@ -1455,6 +1457,17 @@ RedfishCheckResourceCommon ( return EFI_INVALID_PARAMETER; } =20 + // + // Check ETAG to see if we need to check this resource again or not. + // + if (CheckEtag (Private->Uri, HeaderEtag, NULL)) { + // + // No change + // + DEBUG ((DEBUG_MANAGEABILITY, "%a: ETAG: %s has no change, ignore check= action\n", __func__, Private->Uri)); + return EFI_SUCCESS; + } + Status =3D RedfishPlatformConfigGetConfigureLang (RESOURCE_SCHEMA, RESOU= RCE_SCHEMA_VERSION, REDPATH_ARRAY_PATTERN, &ConfigureLangList, &Count); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, "%a, RedfishPlatformConfigGetConfigureLang failed= : %r\n", __func__, Status)); diff --git a/RedfishClientPkg/Features/ComputerSystem/v1_5_0/Dxe/ComputerSy= stemDxe.c b/RedfishClientPkg/Features/ComputerSystem/v1_5_0/Dxe/ComputerSys= temDxe.c index f89a4282..0bbaa92b 100644 --- a/RedfishClientPkg/Features/ComputerSystem/v1_5_0/Dxe/ComputerSystemDxe= .c +++ b/RedfishClientPkg/Features/ComputerSystem/v1_5_0/Dxe/ComputerSystemDxe= .c @@ -330,6 +330,7 @@ RedfishResourceCheck ( REDFISH_RESOURCE_COMMON_PRIVATE *Private; EFI_STATUS Status; REDFISH_RESPONSE Response; + CHAR8 *Etag; =20 if ((This =3D=3D NULL) || IS_EMPTY_STRING (Uri)) { return EFI_INVALID_PARAMETER; @@ -355,7 +356,16 @@ RedfishResourceCheck ( Private->Json =3D JsonDumpString (RedfishJsonInPayload (Private->Payload= ), EDKII_JSON_COMPACT); ASSERT (Private->Json !=3D NULL); =20 - Status =3D RedfishCheckResourceCommon (Private, Private->Json); + // + // Find etag in HTTP response header + // + Etag =3D NULL; + Status =3D GetEtagAndLocation (&Response, &Etag, NULL); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a: failed to get ETag from HTTP header\n", __fu= nc__)); + } + + Status =3D RedfishCheckResourceCommon (Private, Private->Json, Etag); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, "%a, failed to check resource from: %s: %r\n", __= func__, Uri, Status)); } diff --git a/RedfishClientPkg/Features/Memory/V1_7_1/Common/MemoryCommon.c = b/RedfishClientPkg/Features/Memory/V1_7_1/Common/MemoryCommon.c index 14c26301..eb52c68c 100644 --- a/RedfishClientPkg/Features/Memory/V1_7_1/Common/MemoryCommon.c +++ b/RedfishClientPkg/Features/Memory/V1_7_1/Common/MemoryCommon.c @@ -2350,6 +2350,7 @@ RedfishProvisioningResourceCommon ( =20 @param[in] This Pointer to REDFISH_RESOURCE_COMMON_PRIV= ATE instance. @param[in] Json The JSON to consume. + @param[in] HeaderEtag The Etag string returned in HTTP header= . =20 @retval EFI_SUCCESS Value is returned successfully. @retval Others Some error happened. @@ -2358,7 +2359,8 @@ RedfishProvisioningResourceCommon ( EFI_STATUS RedfishCheckResourceCommon ( IN REDFISH_RESOURCE_COMMON_PRIVATE *Private, - IN CHAR8 *Json + IN CHAR8 *Json, + IN CHAR8 *HeaderEtag OPTIONAL ) { UINTN Index; @@ -2371,6 +2373,17 @@ RedfishCheckResourceCommon ( return EFI_INVALID_PARAMETER; } =20 + // + // Check ETAG to see if we need to check this resource again or not. + // + if (CheckEtag (Private->Uri, HeaderEtag, NULL)) { + // + // No change + // + DEBUG ((DEBUG_MANAGEABILITY, "%a: ETAG: %s has no change, ignore check= action\n", __func__, Private->Uri)); + return EFI_SUCCESS; + } + Status =3D RedfishPlatformConfigGetConfigureLang (RESOURCE_SCHEMA, RESOU= RCE_SCHEMA_VERSION, REDPATH_ARRAY_PATTERN, &ConfigureLangList, &Count); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, "%a, RedfishPlatformConfigGetConfigureLang failed= : %r\n", __func__, Status)); diff --git a/RedfishClientPkg/Features/Memory/V1_7_1/Dxe/MemoryDxe.c b/Redf= ishClientPkg/Features/Memory/V1_7_1/Dxe/MemoryDxe.c index 450170e1..92300780 100644 --- a/RedfishClientPkg/Features/Memory/V1_7_1/Dxe/MemoryDxe.c +++ b/RedfishClientPkg/Features/Memory/V1_7_1/Dxe/MemoryDxe.c @@ -330,6 +330,7 @@ RedfishResourceCheck ( REDFISH_RESOURCE_COMMON_PRIVATE *Private; EFI_STATUS Status; REDFISH_RESPONSE Response; + CHAR8 *Etag; =20 if ((This =3D=3D NULL) || IS_EMPTY_STRING (Uri)) { return EFI_INVALID_PARAMETER; @@ -355,7 +356,16 @@ RedfishResourceCheck ( Private->Json =3D JsonDumpString (RedfishJsonInPayload (Private->Payload= ), EDKII_JSON_COMPACT); ASSERT (Private->Json !=3D NULL); =20 - Status =3D RedfishCheckResourceCommon (Private, Private->Json); + // + // Find etag in HTTP response header + // + Etag =3D NULL; + Status =3D GetEtagAndLocation (&Response, &Etag, NULL); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a: failed to get ETag from HTTP header\n", __fu= nc__)); + } + + Status =3D RedfishCheckResourceCommon (Private, Private->Json, Etag); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, "%a, failed to check resource from: %s: %r\n", __= func__, Uri, Status)); } --=20 2.34.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113132): https://edk2.groups.io/g/devel/message/113132 Mute This Topic: https://groups.io/mt/103517651/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-