| #
                eddfc437 |  | 26-Sep-2022 | Willy Tu <wltu@google.com> | Update most resources to use urlFromPieces
 Only id in event_service and account_service have not been updated due
 to the risk of it breaking the username/id. It will require further
 testing to verif
 Update most resources to use urlFromPieces
 Only id in event_service and account_service have not been updated due
 to the risk of it breaking the username/id. It will require further
 testing to verify.
 
 Use urlFromPieces wherever that is needed to insert a variable in the
 URI. Don't use urlFromPieces when it is hardcoded values. This allow us
 to control all resource URIs that is dynamically added and to sync with
 the current recommanded method for `@odata.id`. The goal is to have a
 common place to manage the url created from dbus-paths in order to
 manage/update it easily when needed.
 
 Tested:
 RedfishValidtor Passed for all resource including the sensors with the
 fragments.
 
 Change-Id: I95cdfaaee58fc7f21c95f5944e1e5c813b3215f2
 Signed-off-by: Willy Tu <wltu@google.com>
 Signed-off-by: Ed Tanous <edtanous@google.com>
 show more ...  
 | 
| #
                e99073f5 |  | 08-Dec-2022 | George Liu <liuxiwei@inspur.com> | Refactor GetSubTree method
 Since the GetSubTree method has been implemented in dbus_utility and
 this commit is to integrate all the places where the GetSubTree
 method is called, and use the method i
 Refactor GetSubTree method
 Since the GetSubTree method has been implemented in dbus_utility and
 this commit is to integrate all the places where the GetSubTree
 method is called, and use the method in dbus_utility uniformly.
 
 Tested: Redfish Validator Passed
 
 Signed-off-by: George Liu <liuxiwei@inspur.com>
 Change-Id: If3852b487d74e7cd8f123e0efffbd4affe92743c
 show more ...  
 | 
| #
                3ccb3adb |  | 13-Jan-2023 | Ed Tanous <edtanous@google.com> | Fix a boatload of #includes
 Most of these missing includes were found by running clang-tidy on all
 files, including headers.  The existing scripts just run clang-tidy on
 source files, which doesn't
 Fix a boatload of #includes
 Most of these missing includes were found by running clang-tidy on all
 files, including headers.  The existing scripts just run clang-tidy on
 source files, which doesn't catch most of these.
 
 Tested: Code compiles
 
 Signed-off-by: Ed Tanous <edtanous@google.com>
 Change-Id: Ic741fbb2cc9e5e92955fd5a1b778a482830e80e8
 show more ...  
 | 
| #
                7a1dbc48 |  | 07-Dec-2022 | George Liu <liuxiwei@inspur.com> | Refactor GetSubTreePaths method
 Since the GetSubTreePaths method has been implemented in dbus_utility
 and this commit is to integrate all the places where the
 GetSubTreePaths method is called, and u
 Refactor GetSubTreePaths method
 Since the GetSubTreePaths method has been implemented in dbus_utility
 and this commit is to integrate all the places where the
 GetSubTreePaths method is called, and use the method in dbus_utility
 uniformly.
 
 Requires https://gerrit.openbmc.org/c/openbmc/sdbusplus/+/60020 to
 build.
 
 Tested: Redfish Validator Passed
 
 Signed-off-by: George Liu <liuxiwei@inspur.com>
 Change-Id: Ie4140d4484a7e4f4b943013f4371ffd2d44a22e9
 show more ...  
 | 
| #
                4ca3ec3c |  | 13-Jun-2021 | Albert Zhang <zhanghaodi@inspur.com> | Add Redfish EnvironmentMetrics schema in bmcweb
 This commit implements Chassis' EnvironmentMetrics schema, a resource
 in Redfish version 2022.2 that represents the environment metrics
 implemented by
 Add Redfish EnvironmentMetrics schema in bmcweb
 This commit implements Chassis' EnvironmentMetrics schema, a resource
 in Redfish version 2022.2 that represents the environment metrics
 implemented by Redfish.
 
 This resource includes Energy consumption, Fan speeds (percent),
 Power consumption (Watts), etc. And these data are mainly obtained
 from under sensors.
 
 Only the basic information of EnvironmentMetrics is implemented in
 the current commit.
 
 ref:
 https://www.dmtf.org/sites/default/files/standards/documents/
 DSP0268_2022.2.pdf (6.31 EnvironmentMetrics 1.3.0)
 http://redfish.dmtf.org/schemas/v1/EnvironmentMetrics.v1_3_0.json
 
 Tested: Validator passes
 1. doGet method to get EnvironmentMetrics
 curl -k -H "X-Auth-Token: $token" https://$bmc/redfish/v1/Chassis/
 chassis/EnvironmentMetrics
 {
 "@odata.id": "/redfish/v1/Chassis/chassis/EnvironmentMetrics",
 "@odata.type": "#EnvironmentMetrics.v1_3_0.EnvironmentMetrics",
 "Id": "EnvironmentMetrics",
 "Name": "Chassis Environment Metrics"
 }
 
 2. Input the wrong chassisId with the doGet method
 curl -k -H "X-Auth-Token: $token" https://$bmc/redfish/v1/Chassis/
 chassisError/EnvironmentMetrics
 {
 "error": {
 "@Message.ExtendedInfo": [
 {
 "@odata.type": "#Message.v1_1_1.Message",
 "Message": "The requested resource of type Chassis named
 'chassisError' was not found.",
 "MessageArgs": [
 "Chassis",
 "chassisError"
 ],
 "MessageId": "Base.1.13.0.ResourceNotFound",
 "MessageSeverity": "Critical",
 "Resolution": "Provide a valid resource identifier and
 resubmit the request."
 }
 ],
 "code": "Base.1.13.0.ResourceNotFound",
 "message": "The requested resource of type Chassis named
 'chassisError' was not found."
 }
 }
 
 Signed-off-by: Albert Zhang <zhanghaodi@inspur.com>
 Change-Id: I6a75dfbc94f39d90a1368770076b874608394691
 Signed-off-by: George Liu <liuxiwei@inspur.com>
 show more ...  
 | 
| #
                ae9031f0 |  | 27-Sep-2022 | Willy Tu <wltu@google.com> | Update CollectionMembers to use UrlFromPieces
 Refactor getCollectionMembers to make sure all Url created with dbus
 paths are generated via UrlFromPieces helper function. This allow us to
 manage all
 Update CollectionMembers to use UrlFromPieces
 Refactor getCollectionMembers to make sure all Url created with dbus
 paths are generated via UrlFromPieces helper function. This allow us to
 manage all URL generated from dbus in one place and allow us to make
 future changes to affect all resources.
 
 We can make changes to all resources easier if they are all managed by
 one function.
 
 Tested:
 Redfish Validator Passed. All Collections working as expected and match
 previous implmentation.
 
 Change-Id: I5d3b2b32f047ce4f20a2287a36a3e099efd6eace
 Signed-off-by: Willy Tu <wltu@google.com>
 show more ...  
 | 
| #
                77b36437 |  | 05-Feb-2021 | Chicago Duan <duanzhijia01@inspur.com> | Implements PowerSubsystem schema
 This commit implements the Redfish PowerSubsystem schema and collects
 default property values.
 PowerSupplies will be implemented in the next commit.
 
 ref:
 https://ww
 Implements PowerSubsystem schema
 This commit implements the Redfish PowerSubsystem schema and collects
 default property values.
 PowerSupplies will be implemented in the next commit.
 
 ref:
 https://www.dmtf.org/sites/default/files/standards/documents/
 DSP0268_2022.2.pdf (6.86 PowerSubsystem 1.1.0)
 https://redfish.dmtf.org/schemas/v1/PowerSupply.v1_1_0.json
 
 Tested: Validator and UT passes
 1. curl -k  -H "X-Auth-Token: $token" -X GET
 https://${bmc}/redfish/v1/Chassis/chassis/PowerSubsystem
 {
 "@odata.id": "/redfish/v1/Chassis/chassis/PowerSubsystem",
 "@odata.type": "#PowerSubsystem.v1_1_0.PowerSubsystem",
 "Id": "PowerSubsystem",
 "Name": "Power Subsystem",
 "Status": {
 "Health": "OK",
 "State": "Enabled"
 }
 }
 
 2. bad chassisID
 curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}
 /redfish/v1/Chassis/badchassisID/PowerSubsystem/
 PowerSupplies/powersupply0
 {
 "error": {
 "@Message.ExtendedInfo": [
 {
 "@odata.type": "#Message.v1_1_1.Message",
 "Message": "The requested resource of type Chassis named
 badchassisID was not found.",
 "MessageArgs": [
 "Chassis",
 "badchassisID"
 ],
 "MessageId": "Base.1.13.1.ResourceNotFound",
 "MessageSeverity": "Critical",
 "Resolution": "Provide a valid resource identifier
 and resubmit the request."
 }
 ],
 "code": "Base.1.13.1.ResourceNotFound",
 "message": "The requested resource of type Chassis named
 badchassisID was not found."
 }
 }
 
 Signed-off-by: Chicago Duan <duanzhijia01@inspur.com>
 Change-Id: I6885b1777082538eceaf7ea85a8f69966459ee43
 show more ...  
 | 
| #
                d8a5d5d8 |  | 05-Aug-2022 | Jiaqing Zhao <jiaqing.zhao@intel.com> | Update content of ResourceNotFound/ResourceAlreadyExists message
 According to Redfish Base Message Registry definition [1], the first
 argument of ResourceNotFound and ResourceAlreadyExists is the sc
 Update content of ResourceNotFound/ResourceAlreadyExists message
 According to Redfish Base Message Registry definition [1], the first
 argument of ResourceNotFound and ResourceAlreadyExists is the schema
 name of the resource. This patch changes the first argument to non-
 versioned schema name treewide.
 
 Tested:
 Verified the error message matches the definition, and Redfish Service
 Validator passed.
 
 [1] https://redfish.dmtf.org/registries/Base.1.13.0.json
 
 Change-Id: Ib5cd853578ef0bffda1184d10827241e94faaf68
 Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>
 show more ...  
 | 
| #
                86d89ed7 |  | 29-Aug-2022 | Krzysztof Grobelny <krzysztof.grobelny@intel.com> | used sdbusplus::unpackPropertiesNoThrow part 5
 used sdbusplus::unpackPropertiesNoThrow in chassis.hpp and sensors.hpp,
 also replaced all usages of "GetAll" with
 sdbusplus::asio::getAllProperties
 
 
 used sdbusplus::unpackPropertiesNoThrow part 5
 used sdbusplus::unpackPropertiesNoThrow in chassis.hpp and sensors.hpp,
 also replaced all usages of "GetAll" with
 sdbusplus::asio::getAllProperties
 
 bmcweb size: 2701720 -> 2697624 (-4096)
 compressed size: 1131481 -> 1129725 (-1756)
 
 Tested:
 Performed get on:
 - /redfish/v1/Chassis/chassis
 - /redfish/v1/Chassis/chassis/Thermal
 
 Get result before and after the change was in same format.
 
 Change-Id: I76377710cd037f7c54cb0639c011b64c73a719ab
 Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
 show more ...  
 | 
| #
                a0cb40cb |  | 29-Jun-2022 | John Edward Broadbent <jebr@google.com> | drive: cleanup recent errors
 There were two new errors found the drives implementation that was
 recently implemented.
 
 Tested:
 
 wget -qO- http://localhost:80/redfish/v1/Chassis/DC_SCM/Drives
 {
 "@o
 drive: cleanup recent errors
 There were two new errors found the drives implementation that was
 recently implemented.
 
 Tested:
 
 wget -qO- http://localhost:80/redfish/v1/Chassis/DC_SCM/Drives
 {
 "@odata.id": "/redfish/v1/Chassis/DC_SCM/Drives",
 "@odata.type": "#DriveCollection.DriveCollection",
 "Members": [
 {
 "@odata.id": "/redfish/v1/Chassis/DC_SCM/Drives/mmcblk0"
 }
 ],
 "Members@odata.count": 1,
 "Name": "Drive Collection"
 }
 
 wget -qO- http://localhost:80/redfish/v1/Chassis/DC_SCM/Drives/mmcblk0
 {
 "@odata.id": "/redfish/v1/Chassis/DC_SCM/Drives/mmcblk0",
 "CapacityBytes": 15634268160,
 "Id": "mmcblk0",
 "Links": {
 "Chassis": "Enabled"
 },
 "Name": "mmcblk0",
 "Status": {
 "State": "Enabled"
 }
 }
 
 Tested:
 Redfish Validator Passed now.
 
 Old Validator Failure
 ```
 *** /redfish/v1/Chassis/chassis_0/Drives/drive_0
 WARNING - /redfish/v1/Chassis/chassis_0/Drives/drive_0 @odata.id: Expected @odata.id to match URI link /redfish/v1/Chassis/Drives/drive_0
 ERROR - URI /redfish/v1/Chassis/Drives/drive_0 does not match the following required URIs in Schema of Drive.v1_7_0.Drive
 INFO - 	 Type (Drive.v1_7_0.Drive), GET SUCCESS (time: 0:00:00.072884)
 INFO - Attempt 1 of /redfish/v1/Chassis/chassis_0
 INFO - Response Time for GET to /redfish/v1/Chassis/chassis_0: 0.253246079897508 seconds.
 INFO - 	  FAIL...
 INFO - Metadata: Namespaces missing from $metadata: set()
 INFO -
 ```
 
 Current Output,
 ```
 {
 "@odata.id": "/redfish/v1/Chassis/chassis_0/Drives/drive_0",
 "@odata.type": "#Drive.v1_7_0.Drive",
 "Id": "drive_0",
 "Links": {
 "Chassis": {
 "@odata.id": "/redfish/v1/Chassis/chassis_0"
 }
 },
 ...
 }
 ```
 
 Change-Id: I1af7704070dbf43c4e8b7768a052a2be4446b54c
 Signed-off-by: John Edward Broadbent <jebr@google.com>
 show more ...  
 | 
| #
                2973963e |  | 02-Mar-2021 | Xiaochao Ma <maxiaochao@inspur.com> | Add Redfish ThermalSubsystem schema in bmcweb
 The ThermalSubsystem is a new resource in Redfish version 2020.4.
 It is a root for fans and temperatures. Fans are a new schema.
 Temperature sensors wil
 Add Redfish ThermalSubsystem schema in bmcweb
 The ThermalSubsystem is a new resource in Redfish version 2020.4.
 It is a root for fans and temperatures. Fans are a new schema.
 Temperature sensors will be part of the new ThermalMetrics schema.
 
 ThermalSubsystem can co-exist with the current Thermal resource.
 You can also control compilation through flags.
 
 ThermalSubsystem is an improvement on the existing Thermal schema
 because
 1. It includes the latest properties like LocationIndicatorActive
 2. Fans and Temperatures were arrays in the old Thermal schema and
 this was cumbersome and could hit limits of JSON arrays
 3. Large amount of static data mixed with sensor readings, which
 hurt performance
 4. Inconsistent definitions of properties vs like Processor and
 Memory schemas
 
 In a future commits Fans and ThermalMetrics will be added soon.
 
 Reference:
 https://www.dmtf.org/sites/default/files/standards/documents/DSP0268_2020.4.pdf
 https://redfish.dmtf.org/schemas/v1/ThermalSubsystem.v1_0_0.json
 
 Test:
 1. Validator passed.
 2. doGet method:
 ~$ curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Chassis/chassis/ThermalSubsystem
 {
 "@odata.id": "/redfish/v1/Chassis/chassis/ThermalSubsystem",
 "@odata.type": "#ThermalSubsystem.v1_0_0.ThermalSubsystem",
 "Id": "chassis",
 "Name": "Thermal Subsystem for Chassis",
 "Status": {
 "Health": "OK",
 "State": "Enabled"
 }
 }
 3. A bad chassis ID:
 ~$ curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Chassis/chassisSSBAD/ThermalSubsystem
 {
 "error": {
 "@Message.ExtendedInfo": [
 {
 "@odata.type": "#Message.v1_1_1.Message",
 "Message": "The requested resource of type Chassis named chassisSSBAD was not found.",
 "MessageArgs": [
 "Chassis",
 "chassisSSBAD"
 ],
 "MessageId": "Base.1.8.1.ResourceNotFound",
 "MessageSeverity": "Critical",
 "Resolution": "Provide a valid resource identifier and resubmit the request."
 }
 ],
 "code": "Base.1.8.1.ResourceNotFound",
 "message": "The requested resource of type Chassis named chassisSSBAD was not found."
 }
 }
 
 Signed-off-by: Xiaochao Ma <maxiaochao@inspur.com>
 Change-Id: Ib19879f584304e5303f1a83d88bdd18c78a61633
 Signed-off-by: Zhenwei Chen <zhenweichen0207@gmail.com>
 show more ...  
 | 
| #
                cf7eba09 |  | 21-Jul-2022 | Nan Zhou <nanzhoumails@gmail.com> | chassis: replace lambda with inline functions
 It has been a convention that request route functions take inline
 functions instead of lambdas. The benifets include less indents,
 beging more readable
 chassis: replace lambda with inline functions
 It has been a convention that request route functions take inline
 functions instead of lambdas. The benifets include less indents,
 beging more readable + unit test-able (take a look at the unit test that
 this commit adds for example).
 
 This commit also fixed neccessary headers to make the test compile. The
 headers of the unit test source is a complete list. But headers of the
 core codes are not complete. These header clean up will be done in a
 separate effort once https://gerrit.openbmc.org/c/openbmc/bmcweb/+/55138
 is submitted.
 
 Tested:
 1. no service validator errors on real hardware.
 
 Signed-off-by: Nan Zhou <nanzhoumails@gmail.com>
 Change-Id: I4b23ba54707cea947b5db771c72aa64899041511
 show more ...  
 | 
| #
                8a592810 |  | 04-Jun-2022 | Ed Tanous <edtanous@google.com> | Fix shadowed variable issues
 This patchset is the conclusion of a multi-year effort to try to fix
 shadowed variable names.  Variables seem to be shadowed all over, and in
 most places they exist, the
 Fix shadowed variable issues
 This patchset is the conclusion of a multi-year effort to try to fix
 shadowed variable names.  Variables seem to be shadowed all over, and in
 most places they exist, there's a "code smell" of things that aren't
 doing what the author intended.
 
 This commit attempts to clean up these in several ways by:
 1. Renaming variables where appropriate.
 2. Preferring to refer to member variables directly when operating
 within a class
 3. Rearranging code so that pass through variables are handled in the
 calling scope, rather than passing them through.
 
 These patterns are applied throughout the codebase, to the point where
 -Wshadow can be enabled in meson.build.
 
 Tested: Code compiles, unit tests pass.  Still need to run redfish
 service validator.
 
 Signed-off-by: Ed Tanous <edtanous@google.com>
 Change-Id: If703398c2282f9e096ca2694fd94515de36a098b
 show more ...  
 | 
| #
                e825cbc8 |  | 17-Jun-2022 | Ed Tanous <edtanous@google.com> | Revert "Implement Redfish PCIeSlots schema"
 This reverts commit 7691cc2f7ef1f0ceedf3de0554045a614f25776d.
 
 This causes validator failures
 ERROR - JsonSchemas: GET of resource at URI /redfish/v1/Json
 Revert "Implement Redfish PCIeSlots schema"
 This reverts commit 7691cc2f7ef1f0ceedf3de0554045a614f25776d.
 
 This causes validator failures
 ERROR - JsonSchemas: GET of resource at URI /redfish/v1/JsonSchemas returned HTTP 404. Check URI.
 ERROR - PCIeSlots: GET of resource at URI /redfish/v1/Chassis/motherboard/PCIeSlots returned HTTP 404. Check URI.
 ERROR - PCIeSlots: GET of resource at URI /redfish/v1/Chassis/chassis/PCIeSlots returned HTTP 404. Check URI.
 
 Change-Id: Ibcdf238a222da83127a89d8f38c8180501ffe882
 Signed-off-by: Ed Tanous <edtanous@google.com>
 show more ...  
 | 
| #
                7691cc2f |  | 25-Jan-2021 | Chicago Duan <duanzhijia01@inspur.com> | Implement Redfish PCIeSlots schema
 PCIeSlotCollection, and PCIeSlot schemas are used for determining
 and inspecting the PCIe physical topology of a system.  It is used to
 determine what a particular
 Implement Redfish PCIeSlots schema
 PCIeSlotCollection, and PCIeSlot schemas are used for determining
 and inspecting the PCIe physical topology of a system.  It is used to
 determine what a particular physical slots formfactor is.
 
 This commit supports the as documented in Redfish.md.
 
 https://redfish.dmtf.org/schemas/PCIeSlots_v1.xml
 
 Tested: Validator passes (on previous patchset)
 1、Get PCIe slots
 curl -k -H "X-Auth-Token: $token" -X GET
 https://${bmc}/redfish/v1/Chassis/chassis/PCIeSlots
 {
 "@odata.id": "/redfish/v1/Chassis/chassis/PCIeSlots",
 "@odata.type": "#PCIeSlots.v1_4_1.PCIeSlots",
 "Id": "PCIeSlots",
 "Name": "PCIe Slot Information",
 "Slots": [
 {
 "HotPluggable": false,
 "Lanes": 16,
 "PCIeType": "Gen1",
 "SlotType": "FullLength"
 },
 {
 "HotPluggable": false,
 "Lanes": 16,
 "PCIeType": "Gen2",
 "SlotType": "OEM"
 }
 ]
 }
 
 2、No PCIeSlots
 curl -k -H "X-Auth-Token: $token" -X GET
 https://${bmc}/redfish/v1/Chassis/chassis/PCIeSlots
 {
 "@odata.id": "/redfish/v1/Chassis/chassis/PCIeSlots",
 "@odata.type": "#PCIeSlots.v1_4_1.PCIeSlots",
 "Id": "PCIeSlots",
 "Name": "PCIe Slot Information",
 "Slots": []
 }
 
 3、Bad chassis ID return 404
 curl -k -H "X-Auth-Token: $token" -X GET
 https://${bmc}/redfish/v1/Chassis/badChassisID/PCIeSlots
 Returns 404 and ResourceNotFound
 
 Signed-off-by: Chicago Duan <duanzhijia01@inspur.com>
 Signed-off-by: Ed Tanous <edtanous@google.com>
 Change-Id: I11e1bf94b3865986cbd580293ea906fe96067912
 show more ...  
 | 
| #
                3ba00073 |  | 06-Jun-2022 | Carson Labrado <clabrado@google.com> | Expose AsyncResp shared_ptr when handling response
 For Redfish Aggregation, we need a common point to check the D-Bus
 for satellite configs.  If they are available then we perform the
 aggregation op
 Expose AsyncResp shared_ptr when handling response
 For Redfish Aggregation, we need a common point to check the D-Bus
 for satellite configs.  If they are available then we perform the
 aggregation operations.  The functions in query.hpp are used by all
 endpoints making them the logical location.  The aggregation code
 requires a shared_ptr to the AsyncResp so these functions need to be
 able to supply that.
 
 This patch is broken out of a future patch for routing Redfish
 Aggregation requests
 https://gerrit.openbmc.org/c/openbmc/bmcweb/+/53310
 
 The follow commands can be used to perform most of the replacements:
 find . -type f | xargs sed -i 's/setUpRedfishRoute(app, req, asyncResp->res/setUpRedfishRoute(app, req, asyncResp/g'
 find . -type f | xargs sed -i 's/setUpRedfishRouteWithDelegation(app, req, asyncResp->res/setUpRedfishRouteWithDelegation(app, req, asyncResp/g'
 
 Signed-off-by: Carson Labrado <clabrado@google.com>
 Change-Id: I4f4f9f22cdcfb14a3bd94b9a8f3d64aae34e57bc
 show more ...  
 | 
| #
                5b9e95a1 |  | 01-Jun-2022 | Nan Zhou <nanzhoumails@gmail.com> | Chassis: fix ResetActionInfo
 There is a regression that "Parameters" in ActionInfo now become an
 object rather than an array, as defined in the Schema,
 https://redfish.dmtf.org/schemas/ActionInfo.v1
 Chassis: fix ResetActionInfo
 There is a regression that "Parameters" in ActionInfo now become an
 object rather than an array, as defined in the Schema,
 https://redfish.dmtf.org/schemas/ActionInfo.v1_2_0.json
 
 Tested:
 1. On my mock environment,
 {
 "@odata.id": "/redfish/v1/Chassis/fake_chassis/ResetActionInfo",
 "@odata.type": "#ActionInfo.v1_1_2.ActionInfo",
 "Id": "ResetActionInfo",
 "Name": "Reset Action Info",
 "Parameters": [
 {
 "AllowableValues": [
 "PowerCycle"
 ],
 "DataType": "String",
 "Name": "ResetType",
 "Required": true
 }
 ]
 }
 2. Redfish Service Validator passes
 ```
 *** /redfish/v1/Chassis/fake_chassis/ResetActionInfo
 Attempt 1 of /redfish/v1/Chassis/fake_chassis/ResetActionInfo
 Response Time for GET to /redfish/v1/Chassis/fake_chassis/ResetActionInfo: 0.0017544100992381573 seconds.
 Type (ActionInfo.v1_1_2.ActionInfo), GET SUCCESS (time: 0:00:00.001957)
 PASS
 ```
 
 Signed-off-by: Nan Zhou <nanzhoumails@gmail.com>
 Change-Id: I85d1c14d6a37b6f360732ee107d0163c2d3ff15f
 Signed-off-by: Ed Tanous <edtanous@google.com>
 show more ...  
 | 
| #
                92903bd4 |  | 26-Apr-2022 | John Edward Broadbent <jebr@google.com> | redfish: Add Chassis listing associated drive
 If chassis has drives a drive url is added to the chassis, of the form:
 redfish/v1/Chassis/<chassis>/Drives
 
 When queried, the drive URL will list all d
 redfish: Add Chassis listing associated drive
 If chassis has drives a drive url is added to the chassis, of the form:
 redfish/v1/Chassis/<chassis>/Drives
 
 When queried, the drive URL will list all drives associated with the
 chassis. This is in accordance with the redfish schema.
 
 Samples for the following URLs are below
 
 wget -qO- http://localhost:80/redfish/v1/Chassis/DC_SCM/Drives
 {
 "@odata.id": "/redfish/v1/Chassis/DC_SCM/Drives",
 "@odata.type": "#DriveCollection.DriveCollection",
 "Members": [
 {
 "@odata.id": "/redfish/v1/Chassis/DC_SCM/Drives/mmcblk0"
 }
 ],
 "Members@odata.count": "1",
 "Name": "Drive Collection"
 }
 
 Tested:
 With the redfish validator: No new errors
 
 Change-Id: Ibdbe7fee5014d6515a77683c8eaca9ca86b6b148
 Signed-off-by: John Edward Broadbent <jebr@google.com>
 show more ...  
 | 
| #
                002d39b4 |  | 31-May-2022 | Ed Tanous <edtanous@google.com> | Try to fix the lambda formatting issue
 clang-tidy has a setting, LambdaBodyIndentation, which it says:
 "For callback-heavy code, it may improve readability to have the
 signature indented two levels
 Try to fix the lambda formatting issue
 clang-tidy has a setting, LambdaBodyIndentation, which it says:
 "For callback-heavy code, it may improve readability to have the
 signature indented two levels and to use OuterScope."
 
 bmcweb is very callback heavy code.  Try to enable it and see if that
 improves things.  There are many cases where the length of a lambda call
 will change, and reindent the entire lambda function.  This is really
 bad for code reviews, as it's difficult to see the lines changed.  This
 commit should resolve it.  This does have the downside of reindenting a
 lot of functions, which is unfortunate, but probably worth it in the
 long run.
 
 All changes except for the .clang-format file were made by the robot.
 
 Tested: Code compiles, whitespace changes only.
 
 Signed-off-by: Ed Tanous <edtanous@google.com>
 Change-Id: Ib4aa2f1391fada981febd25b67dcdb9143827f43
 show more ...  
 | 
| #
                1476687d |  | 15-Mar-2022 | Ed Tanous <edtanous@google.com> | Remove brace initialization of json objects
 Brace initialization of json objects, while quite interesting from an
 academic sense, are very difficult for people to grok, and lead to
 inconsistencies.
 Remove brace initialization of json objects
 Brace initialization of json objects, while quite interesting from an
 academic sense, are very difficult for people to grok, and lead to
 inconsistencies.  This patchset aims to remove a majority of them in
 lieu of operator[].  Interestingly, this saves about 1% of the binary
 size of bmcweb.
 
 This also has an added benefit that as a design pattern, we're never
 constructing a new object, then moving it into place, we're always
 adding to the existing object, which in the future _could_ make things
 like OEM schemas or properties easier, as there's no case where we're
 completely replacing the response object.
 
 Tested:
 Ran redfish service validator.  No new failures.
 
 Signed-off-by: Ed Tanous <edtanous@google.com>
 Change-Id: Iae409b0a40ddd3ae6112cb2d52c6f6ab388595fe
 show more ...  
 | 
| #
                45ca1b86 |  | 25-Mar-2022 | Ed Tanous <edtanous@google.com> | Add setUpRedfishRoute to all nodes in redfish
 For better or worse, the series ahead of this is making use of
 setUpRedfishRoute to do the common "redfish specified" things that need
 to be done for a
 Add setUpRedfishRoute to all nodes in redfish
 For better or worse, the series ahead of this is making use of
 setUpRedfishRoute to do the common "redfish specified" things that need
 to be done for a connection, like header checking, filtering, and other
 things.  In the current model, where BMCWEB_ROUTE is a common function
 for all HTTP routes, this means we need to propagate this injection call
 into the whole tree ahead of the requests being handled.
 
 In a perfect world, we would invent something like a REDFISH_ROUTE
 macro, but because macros are discouraged, the routes take a variadic
 template of parameters, and each call to the route has a .privileges()
 call in the middle, there's no good way to effect this change in a less
 costly manner.  This was messaged both in the prior reviews, and on
 discord sourcing improvements on this pattern, to which none arose.
 
 Signed-off-by: Ed Tanous <edtanous@google.com>
 Change-Id: Id29cc799e214edad41e48fc7ce6eed0521f90ecb
 show more ...  
 | 
| #
                b9d36b47 |  | 26-Feb-2022 | Ed Tanous <edtanous@google.com> | Consitently use dbus::utility types
 This saves about 4k on the binary size
 
 Tested: Redfish service validator passes.
 
 Signed-off-by: Ed Tanous <edtanous@google.com>
 Change-Id: I9546227a19c691b1aecb
 Consitently use dbus::utility types
 This saves about 4k on the binary size
 
 Tested: Redfish service validator passes.
 
 Signed-off-by: Ed Tanous <edtanous@google.com>
 Change-Id: I9546227a19c691b1aecb80e80307889548c0293f
 show more ...  
 | 
| #
                15ed6780 |  | 14-Dec-2021 | Willy Tu <wltu@google.com> | json_utils: Add support jsonRead Patch/Action
 Added support for readJson for Patch and Action. The only difference is
 that Patch does not allow empty json input while Action does. Action with
 empty
 json_utils: Add support jsonRead Patch/Action
 Added support for readJson for Patch and Action. The only difference is
 that Patch does not allow empty json input while Action does. Action with
 empty input will use the default value based on the implementation and
 return 200 OK response code.
 
 readJsonPatch will replace the existing readJson and be used for path
 requests. It will not allow empty json input and all requested
 keys are required in the json input.
 
 readJsonAction will be used for Action requests where it is possible for
 all of the properties to be optional and allow empty request.
 The optional properties are determined by the requested values type.
 
 All current Action readJson are replaced with readJsonAction. It does
 not change the existing behavior since it needs `std::optional`.
 This will have to be updated later as we define the default behavior.
 
 Tested:
 Added unit tests and readJsonAction allows empty empty json object.
 
 No Change to Redfish Tree.
 
 Change-Id: Ia5e1f81695c528a20f1dc985aee19c920d8adaea
 Signed-off-by: Willy Tu <wltu@google.com>
 show more ...  
 | 
| #
                a6e5e0ab |  | 14-Feb-2022 | Carson Labrado <clabrado@google.com> | chassis-state: no error in chassis if unavailable
 This is similar to commit
 https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/50799
 from Andrew Geissler. getChassisState() can fail if the state
 
 chassis-state: no error in chassis if unavailable
 This is similar to commit
 https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/50799
 from Andrew Geissler. getChassisState() can fail if the state
 information provided by xyz.openbmc_project.State.Chassis service is
 unavailable. We want bmcweb to still return the other chassis
 information regardless of if that service is running at the time.
 Applying that change to chassis allows the majority of the redfish
 chassis data to be returned and used by the client.
 
 Tested:
 - Verified that when xyz.openbmc_project.State.Chassis was unavailable,
 a call to redfish/v1/Chassis/{ChassisId} returned the available
 information rather than a 500 error
 
 Signed-off-by: Carson Labrado <clabrado@google.com>
 Change-Id: I0446fac5ef362174d5ae2d082e1dc15eaf1c5875
 show more ...  
 | 
| #
                26f6976f |  | 25-Jan-2022 | Ed Tanous <edtanous@google.com> | Enable readability-container-size-empty tests
 This one is a little trivial, but it does help in readability.
 
 Signed-off-by: Ed Tanous <edtanous@google.com>
 Change-Id: I5366d4eec8af2f781b3bad804131a
 Enable readability-container-size-empty tests
 This one is a little trivial, but it does help in readability.
 
 Signed-off-by: Ed Tanous <edtanous@google.com>
 Change-Id: I5366d4eec8af2f781b3bad804131ae2eb806e3aa
 show more ...  
 |