From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-002e3701.pphosted.com (mx0b-002e3701.pphosted.com [148.163.143.35]) by mx.groups.io with SMTP id smtpd.web08.39492.1655782849674507499 for ; Mon, 20 Jun 2022 20:40:50 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=Yz/p3X3s; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: hpe.com, ip: 148.163.143.35, mailfrom: prvs=01716056f0=abner.chang@hpe.com) Received: from pps.filterd (m0150245.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 25L2fuqq026643; Tue, 21 Jun 2022 03:40:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pps0720; bh=MkucSx/d71bagnRK/ZQ9/lGzzFclmRMqJx6w+1KQaIw=; b=Yz/p3X3szSq8OURvKfIHtnjm4vUGdMiwkfRr+tIOEqq87bro1n3at3ZcX2S5D248GjY9 Ui7iGJKFTBpoxlXE7A1TaL2Tv1EV7Ql3apEXgKSTRffU8BCC5lQArDPuqz/1qs4UTDKf sJgE2v+tWRsNio7X50Ydd3QViw5PVf21oBlZI/MFV2pYyr5foNECh/CAbsrRvQhQuzLv RtUvumSMa2tcHO5y/PCULndLHLohltmuUY5nd/qMD7Jyl+/ScTiScma8BfacncpxbaVL SeiKLJPNodiVKxjtBmcqDmZwIS5GrcSF6fz0aRP70s20S6DFMUqjTR51dyD4wG6DER6B og== Received: from p1lg14879.it.hpe.com (p1lg14879.it.hpe.com [16.230.97.200]) by mx0b-002e3701.pphosted.com (PPS) with ESMTPS id 3gtxjeu9gt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 21 Jun 2022 03:40:46 +0000 Received: from p1wg14926.americas.hpqcorp.net (unknown [10.119.18.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by p1lg14879.it.hpe.com (Postfix) with ESMTPS id E366812B4A; Tue, 21 Jun 2022 03:40:45 +0000 (UTC) Received: from p1wg14927.americas.hpqcorp.net (10.119.18.117) by p1wg14926.americas.hpqcorp.net (10.119.18.115) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.15; Mon, 20 Jun 2022 15:40:45 -1200 Received: from p1wg14925.americas.hpqcorp.net (10.119.18.114) by p1wg14927.americas.hpqcorp.net (10.119.18.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.15; Mon, 20 Jun 2022 15:40:45 -1200 Received: from P1WG14918.americas.hpqcorp.net (16.230.19.121) by p1wg14925.americas.hpqcorp.net (10.119.18.114) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.15 via Frontend Transport; Mon, 20 Jun 2022 15:40:45 -1200 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (192.58.206.38) by edge.it.hpe.com (16.230.19.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.15; Tue, 21 Jun 2022 03:40:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FfW+SWWwmOHkFStRRYzOQd89Vu6Vm+vI/yTaVDiwMkXOSBfd4iSByO0FJCeKrS8FrWTWtMfdBV1Ai4k6Nli261g46umTRH3Xkw7oG5Nb3PzDI+452GZzLveSCY4ps4gJFe1H4yEGBtSEnjXwAOYQn3dyZge9i5j/Ah8iSBo6X5IrIgf5CQrIpud6i88lY0NzUJcEAUWIs/jFv8Ti6fxHK9N6qDjfhQEhelBfjehSOVNbhdhulmG42mIZoJHo10O91oHZbs19OJ6Cy9pqDZwKBDAJg8C70gB1nAlfGkB2jOXfUxAl3kyFk+KYoVWxrUoHp3OwvCdLMRg5/xjEpFuusQ== 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=MkucSx/d71bagnRK/ZQ9/lGzzFclmRMqJx6w+1KQaIw=; b=PM8PPOBBQKCnQdP/mX0U5MoRJpqOUBlb+GEisB/Z0YxXZ0CuxbWsjI2kMl5CLlXUk/w42hJLL5ObDj5Z9iha8gpHhLCmQiRBZ5CMUqHX7mQekPXWPWGRPgTObJTB+ZymO/0MvtnsKSsgOqvh9GGiHVi/gZgeQH2lOr9oi/4OFyqb+k0XQxOmuc5GGsYBTVJl/Gl+TuvZd4xljTZQgJ68muJIdY2g0tNTysZO7mvKwK+v4ByslJlZihEJ9LBktIrbtVdZkk6B1qhV8t8nN4/J1BXsJ7xuqguiZa0k1N0cDNy2cRuhH7rlJT6d3vXaxGxMp8tU2E/QsaifDlRqWGlEFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from PH0PR84MB1647.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:510:173::6) by DS7PR84MB3061.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:8:9f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.22; Tue, 21 Jun 2022 03:40:43 +0000 Received: from PH0PR84MB1647.NAMPRD84.PROD.OUTLOOK.COM ([fe80::89d1:6a2d:b8a5:8b0d]) by PH0PR84MB1647.NAMPRD84.PROD.OUTLOOK.COM ([fe80::89d1:6a2d:b8a5:8b0d%9]) with mapi id 15.20.5353.017; Tue, 21 Jun 2022 03:40:43 +0000 From: "Abner Chang" To: "Wang, Nickle (Server BIOS)" , "devel@edk2.groups.io" CC: Yang Atom , Nick Ramirez Subject: Re: [edk2-staging][PATCH v2 3/5] edk2-staging/RedfishClientPkg: Update patch method of computer system Thread-Topic: [edk2-staging][PATCH v2 3/5] edk2-staging/RedfishClientPkg: Update patch method of computer system Thread-Index: AQHYhRDJ9SBr32fnDkyuqgFgURuUra1ZNzlw Date: Tue, 21 Jun 2022 03:40:43 +0000 Message-ID: References: <20220621014627.1324-1-nickle.wang@hpe.com> In-Reply-To: <20220621014627.1324-1-nickle.wang@hpe.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 50608734-92ad-44bc-eae4-08da5337d1fa x-ms-traffictypediagnostic: DS7PR84MB3061:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: XBBpNHNMui0keG3D87CijEASIu7JRRqiPuiep1JgcmdEskcrgu3AMJy8bOJy3QwkmzVNI2ugjbo9HEOfmPhoydWVMwWYTxh7j3+yIceiwLsqW+Ulsw2ANv3/6b1UXt0hXU5Gli/FmyYQpG/skKoj8yH4Wy8qoGbXyTmZgQUrU+DD9QhJU1JXuRJceCAb6fA7SqqoNe6c6SBCOScUjgZh9BI1h19dBrjdGfNu7+TjtjcaaBiPONtL0DHLtJKG0+eJK7gcbUO2aPinbfSPMqU1Y36okyqzR0nupmC7S/QnFIoMmAYJOkCpk9mJGaQIjn+81WKdl9ZO3adYU2izRrO2nvp5GpnYGOLqzb+4eVLXUPrPkkoXH7qnnJzIMzs+gUVRNh8WvxP+FjQ3LzNB453tB+WqrR2/IVEVtZ9gxeh5aEcYEUAFH/C2f9/mQ4Vf8WVkPwkUL8nFVYAXq8LJag967b2bMND5Bp2r/Ks6XUCeru0kX2YYsWM0Q11jTwCRRv1x9slgo1qMrcSCeaRfdgTgRnOb4vL13iC9p2moAfLryxL2IEVPIQDZ17Ts/o75JDyg3FzZpAUU3lJPHCCWvxWn/uYzDL0e40NZwl/+ZkbpkNLye6ya+MjUqiJPyyProohYKI/98Akm12OsJ6/NYOStaRtvvi97b1n00BbqQjy9FAAgfmvwnXshwzL873puIETYsRyzMtsiY6THd9V+XqFjCw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR84MB1647.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230016)(346002)(39860400002)(396003)(136003)(366004)(376002)(76116006)(4326008)(8676002)(66446008)(66476007)(66556008)(64756008)(186003)(66946007)(71200400001)(26005)(9686003)(2906002)(15650500001)(6506007)(86362001)(7696005)(53546011)(478600001)(8936002)(5660300002)(33656002)(52536014)(41300700001)(55016003)(122000001)(38100700002)(38070700005)(110136005)(316002)(83380400001)(82960400001)(54906003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?9zMhInl4ayCuOQqJxV/cShR7NVC5BcLV4LOn7EL1ipQu0rP6WcYXXyMMEh2w?= =?us-ascii?Q?7BQ1dipSsjaU7ktwl4pv+HfXcSTHEFT33VI+3tXCz25RqpmyBN53bfKl8gSJ?= =?us-ascii?Q?wsoSOQIRdVTKL5FCcp0o0xlDHxopPrnrraOZXaPJzNtu9XO9G45aDzEeB/VN?= =?us-ascii?Q?ueGxlbRNPg7u9Jh1J2uDQaRsvoO0CeddjbZugnx/0Ugnvfmljv1mge2n974I?= =?us-ascii?Q?q3Htt6Y4g84JusBy5l/HLL5YfxkArQAc5bkvBY7Ai4w3F+khn3XxxXMJAyod?= =?us-ascii?Q?z+c1kDnraMNrTCIyIKFl+M2NVEHpzlktLvpV44z4rda3Ry6PiCm2YAUS1NsR?= =?us-ascii?Q?19e9pMmqL1PspFO/eSDeipaeuUmixq+Jgzhi00goNnIXodfl7R7SimaAAA9L?= =?us-ascii?Q?MdOvOYQA5HVrs+2/u7RrvYj4ASr8pyX3Ij604BEbCU8pwcC3Llj86DFyeKs2?= =?us-ascii?Q?UscAgl5yKs+h2az1yhD3NPzaKxD18OMiGiNCArnhQbEePgD2LkAPes5lFrOR?= =?us-ascii?Q?O+ojrfjuw++HZGmwqfjlj47EqN8YLp0Sjqj497geZq9cYnE3wRvr2I3605i/?= =?us-ascii?Q?aFZ4sMBuzakWETj4nJHl++YrIOGfUXol+nfhDzehCiYoVOmzPxAs/nAPPDgU?= =?us-ascii?Q?251As8J3hn9l60Kx6X+lloACPswD9IEdr27HZgYYI1pqjOr2f0bvEaIb0by4?= =?us-ascii?Q?dBkrfb/1HdQZ2mn74N5bN+04WusYuycknFyDpiUcSj/C5MJkjlF10Tjj39a2?= =?us-ascii?Q?2AKZTJAnEf5TzuaFhwZBtU+/VsXYbfmj427dLB7SQL+3sAgTRHtW4ZFpb5aI?= =?us-ascii?Q?8S1peqR4OoRl5+k7Sk3mT0Qd6q/l0ZQdKTcT0dA8gX2ltPD9+jMs4lx1eH/p?= =?us-ascii?Q?EhPgi8vxwlHf3R3JyUyFyvTv8p+Po9druo3IeJ1z4hLVWdPE1RGaFTOjQFH5?= =?us-ascii?Q?DolV1BRv9xR5nKmvSxyrsLylZNrZx3W4ePcNoKk/N7jQ4mzx2ffsz+hqmeY8?= =?us-ascii?Q?LkD1v7E7hvAwmfz8wtuAG1LJJ/oRtn18YJpk5XTcRW7UDurc9wuPz6vqZVWk?= =?us-ascii?Q?DLp4jeeG2nuTBFZKKz2FK+DxeOjycFyXimWseg57fYwgJFxJaI+BA8+JrUcC?= =?us-ascii?Q?RBuEtabrGj1hpaDTGYCd3ToPTGnLwb+65P1WgIdLQBm/a3po5fTy5OgDKIBo?= =?us-ascii?Q?EdQFZscX76mmpB9i50imCol8u285A5GqaSdUd68M1ypmOx83e5hZwVvuyZnV?= =?us-ascii?Q?Ap4WQG2J8o0z8ysK2trJ6ZA95sY732UZ31rhBBoRKbq45FFKOqGezR4pwRHu?= =?us-ascii?Q?5UfwTxJjApgaECXx101gHkWN1Zz85UijfGnE2cX9R7cbCnbbN4tDdkKNyFD9?= =?us-ascii?Q?Ht8YiM9TGs44jDgTP3ln+hIeda1WlGGkhcP0K1F0GFNdm8QQtwZTWodJTvUI?= =?us-ascii?Q?IEK0Z2/TB8UoulQzDUFXmCpPem5MmsDwmsCpCqSfB0DJsUkUYbfiQ6g2WE+g?= =?us-ascii?Q?duW/QFv8KNvUlG2lY3PUiwQHooPAxIwBbitTCHvffpLuYKp69j0zPc1Fj66q?= =?us-ascii?Q?2yTJNeDk/RmdGZk2VN/XAB45C0mH03t6p19CYetLduXc/rAPPajln8AyQn91?= =?us-ascii?Q?CUFeztuArvACc9wwX8Iaw9Pv8D3VOVtdU2oYOx793ODcdnG4nKSFHKvNIIg/?= =?us-ascii?Q?ZDnWFBV4U27PAS+KVbV1W4KlvdSs+s9ZDOTpJGHUr0A4eFh0lk2EiU31ASjC?= =?us-ascii?Q?5P+WhtemAw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR84MB1647.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 50608734-92ad-44bc-eae4-08da5337d1fa X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jun 2022 03:40:43.6910 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: qGjOzaOGJ+qv2Ff6YV5fai8zxpH/+6Gb8+KRzgbtIq6GbyGg1zvIAywqu6XnsK8P46Y5IC9jSrpBH/jbp+YN7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR84MB3061 X-OriginatorOrg: hpe.com X-Proofpoint-GUID: AkhP5AUiTM26ajrqt4o--QFnRhrbKuUQ X-Proofpoint-ORIG-GUID: AkhP5AUiTM26ajrqt4o--QFnRhrbKuUQ X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.64.514 definitions=2022-06-21_01,2022-06-17_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 phishscore=0 mlxlogscore=833 bulkscore=0 clxscore=1015 priorityscore=1501 mlxscore=0 adultscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2206210013 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Abner Chang > -----Original Message----- > From: Wang, Nickle (Server BIOS) > Sent: Tuesday, June 21, 2022 9:46 AM > To: devel@edk2.groups.io > Cc: Wang, Nickle (Server BIOS) ; Chang, Abner (HPS > SW/FW Technologist) ; Yang Atom > ; Nick Ramirez > Subject: [edk2-staging][PATCH v2 3/5] edk2-staging/RedfishClientPkg: Upda= te > patch method of computer system >=20 > Remove attribute check during patch of computer system and return > content-type with JSON format in HTTP header. >=20 > Signed-off-by: Nickle Wang > Cc: Abner Chang > Cc: Yang Atom > Cc: Nick Ramirez > --- > .../v1sim/resource.py | 4 ++- > .../v1sim/systems.py | 28 +++++++------------ > 2 files changed, 13 insertions(+), 19 deletions(-) >=20 > diff --git a/RedfishClientPkg/Tools/Redfish-Profile-Simulator/v1sim/resou= rce.py > b/RedfishClientPkg/Tools/Redfish-Profile-Simulator/v1sim/resource.py > index ca7541f172..e722d16a0b 100644 > --- a/RedfishClientPkg/Tools/Redfish-Profile-Simulator/v1sim/resource.py > +++ b/RedfishClientPkg/Tools/Redfish-Profile-Simulator/v1sim/resource.py > @@ -2,6 +2,7 @@ > # Copyright Notice: >=20 > # >=20 > # Copyright (c) 2019, Intel Corporation. All rights reserved.
>=20 > +# (C) Copyright 2021-2022 Hewlett Packard Enterprise Development LP
>=20 > # SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > # >=20 > # Copyright Notice: >=20 > @@ -47,6 +48,7 @@ class RfResource: > try: >=20 > # SHA1 should generate well-behaved etags >=20 > response =3D flask.make_response(self.response) >=20 > + response.mimetype =3D 'application/json' >=20 > etag =3D hashlib.sha1(self.response.encode('utf-8')).hexdige= st() >=20 > response.set_etag(etag) >=20 > return response >=20 > @@ -69,7 +71,7 @@ class RfResource: > else: >=20 > raise Exception("attribute %s not found" % key) >=20 >=20 >=20 > - resp =3D flask.Response(json.dumps(self.res_data,indent=3D4)) >=20 > + resp =3D flask.Response(json.dumps(self.res_data,indent=3D4), > mimetype=3D"application/json") >=20 > return 0, 200, None, resp >=20 >=20 >=20 > def post_resource(self, post_data): >=20 > diff --git a/RedfishClientPkg/Tools/Redfish-Profile-Simulator/v1sim/syste= ms.py > b/RedfishClientPkg/Tools/Redfish-Profile-Simulator/v1sim/systems.py > index de4b839aeb..6305a51efb 100644 > --- a/RedfishClientPkg/Tools/Redfish-Profile-Simulator/v1sim/systems.py > +++ b/RedfishClientPkg/Tools/Redfish-Profile-Simulator/v1sim/systems.py > @@ -2,7 +2,7 @@ > # Copyright Notice: >=20 > # >=20 > # Copyright (c) 2019, Intel Corporation. All rights reserved.
>=20 > -# (C) Copyright 2021 Hewlett Packard Enterprise Development LP
>=20 > +# (C) Copyright 2021-2022 Hewlett Packard Enterprise Development LP
>=20 > # SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > # >=20 > # Copyright Notice: >=20 > @@ -63,15 +63,7 @@ class RfSystemObj(RfResource): > self.components[item] =3D RfBootOptionCollection(base_pa= th, > os.path.join(rel_path, item), parent=3Dself) >=20 >=20 >=20 > def patch_resource(self, patch_data): >=20 > - # first verify client didn't send us a property we cant patch >=20 > - for key in patch_data.keys(): >=20 > - if key !=3D "AssetTag" and key !=3D "IndicatorLED" and key != =3D "Boot" and > key !=3D "BiosVersion": >=20 > - return 4, 400, "Invalid Patch Property Sent", "" >=20 > - elif key =3D=3D "Boot": >=20 > - for prop2 in patch_data["Boot"].keys(): >=20 > - if prop2 !=3D "BootSourceOverrideEnabled" and prop2 = !=3D > "BootSourceOverrideTarget" and prop2 !=3D "BootNext" and prop2 !=3D > "BootOrder": >=20 > - return 4, 400, "Invalid Patch Property Sent", "" >=20 > - # now patch the valid properties sent >=20 > + # patch the valid properties sent >=20 > if "AssetTag" in patch_data: >=20 > print("assetTag:{}".format(patch_data["AssetTag"])) >=20 > self.res_data['AssetTag'] =3D patch_data['AssetTag'] >=20 > @@ -100,7 +92,7 @@ class RfSystemObj(RfResource): > if "BootOrder" in boot_data: >=20 > self.res_data['Boot']['BootOrder'] =3D boot_data['BootOr= der'] >=20 >=20 >=20 > - resp =3D flask.Response(json.dumps(self.res_data,indent=3D4)) >=20 > + resp =3D flask.Response(json.dumps(self.res_data,indent=3D4), > mimetype=3D"application/json") >=20 > return 0, 200, None, resp >=20 >=20 >=20 > def reset_resource(self, reset_data): >=20 > @@ -150,7 +142,7 @@ class RfMemoryCollection(RfCollection): > post_data["@odata.etag"] =3D etag_str >=20 > self.elements[str(newMemoryIdx)] =3D post_data >=20 >=20 >=20 > - resp =3D flask.Response(json.dumps(post_data,indent=3D4)) >=20 > + resp =3D flask.Response(json.dumps(post_data,indent=3D4), > mimetype=3D"application/json") >=20 > resp.headers["Location"] =3D newMemoryUrl >=20 > resp.headers["ETag"] =3D etag_str >=20 >=20 >=20 > @@ -163,7 +155,7 @@ class RfMemoryCollection(RfCollection): > patch_data["@odata.etag"] =3D etag_str >=20 >=20 >=20 > self.elements[str(Idx)] =3D {**self.elements[str(Idx)], **patch_= data} >=20 > - resp =3D flask.Response(json.dumps(self.elements[str(Idx)],inden= t=3D4)) >=20 > + resp =3D flask.Response(json.dumps(self.elements[str(Idx)],inden= t=3D4), > mimetype=3D"application/json") >=20 > return 0, 200, None, resp >=20 >=20 >=20 > def get_memory(self, Idx): >=20 > @@ -172,7 +164,7 @@ class RfMemoryCollection(RfCollection): > def delete_memory(self, Idx): >=20 > print("in delete_memory") >=20 >=20 >=20 > - resp =3D flask.Response(json.dumps(self.elements[Idx],indent=3D4= )) >=20 > + resp =3D flask.Response(json.dumps(self.elements[Idx],indent=3D4= ), > mimetype=3D"application/json") >=20 >=20 >=20 > self.elements.pop(Idx) >=20 > self.res_data["Members@odata.count"] =3D > self.res_data["Members@odata.count"] - 1 >=20 > @@ -228,7 +220,7 @@ class RfBiosSettings(RfResource): > return 4, 400, "Invalid Patch Property Sent", "" >=20 > else: >=20 > self.res_data["Attributes"][key] =3D patch_data["Attribu= tes"][key] >=20 > - resp =3D flask.Response(json.dumps(self.res_data,indent=3D4)) >=20 > + resp =3D flask.Response(json.dumps(self.res_data,indent=3D4), > mimetype=3D"application/json") >=20 > return 0, 200, None, resp >=20 >=20 >=20 >=20 >=20 > @@ -297,13 +289,13 @@ class RfBootOptionCollection(RfCollection): > post_data["@odata.id"] =3D newBootOptUrl >=20 > self.bootOptions[str(newBootOptIdx)] =3D post_data >=20 >=20 >=20 > - resp =3D flask.Response(json.dumps(post_data,indent=3D4)) >=20 > + resp =3D flask.Response(json.dumps(post_data,indent=3D4), > mimetype=3D"application/json") >=20 > resp.headers["Location"] =3D newBootOptUrl >=20 > return 0, 200, None, resp >=20 >=20 >=20 > def patch_bootOpt(self, Idx, patch_data): >=20 > self.bootOptions[str(Idx)] =3D {**self.bootOptions[str(Idx)], **= patch_data} >=20 > - resp =3D flask.Response(json.dumps(self.bootOptions[str(Idx)],in= dent=3D4)) >=20 > + resp =3D flask.Response(json.dumps(self.bootOptions[str(Idx)],in= dent=3D4), > mimetype=3D"application/json") >=20 > return 0, 200, None, resp >=20 >=20 >=20 > def get_bootOpt(self, Idx): >=20 > @@ -312,7 +304,7 @@ class RfBootOptionCollection(RfCollection): > def delete_bootOpt(self, Idx): >=20 > print("in delete_bootOpt") >=20 >=20 >=20 > - resp =3D flask.Response(json.dumps(self.bootOptions[Idx],indent= =3D4)) >=20 > + resp =3D flask.Response(json.dumps(self.bootOptions[Idx],indent= =3D4), > mimetype=3D"application/json") >=20 >=20 >=20 > self.bootOptions.pop(Idx) >=20 > self.res_data["Members@odata.count"] =3D > self.res_data["Members@odata.count"] - 1 >=20 > -- > 2.32.0.windows.2