History log of /openbmc/bmcweb/features/redfish/lib/chassis.hpp (Results 51 – 75 of 145)
Revision Date Author Comments
# 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 ...


123456