History log of /openbmc/bmcweb/redfish-core/include/utils/ (Results 1 – 25 of 292)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
96a194c418-Aug-2025 Ed Tanous <ed@tanous.net>

Implement modernize-use-ranges

This tidy check can transform code to use std::ranges. Enable the
check, apply the fixes it proposes.

Tested: Redfish service validator passes in qemu

Change-Id: I3

Implement modernize-use-ranges

This tidy check can transform code to use std::ranges. Enable the
check, apply the fixes it proposes.

Tested: Redfish service validator passes in qemu

Change-Id: I3f21b27d3d30277f71b9c8a2c584a22bc16865e9
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

e32edd4720-Nov-2025 Janet Adkins <janeta@us.ibm.com>

Sensors: Reorganize objectPropertiesToJson for clarity

A review comment for a different commit noted the length of the
objectPropertiesToJson() method. [1] Here I am restructuring the
method to redu

Sensors: Reorganize objectPropertiesToJson for clarity

A review comment for a different commit noted the length of the
objectPropertiesToJson() method. [1] Here I am restructuring the
method to reduce its complexity.

The restructure factors out different sections of the work:
- Filling in the basic identity of the sensor. This is split into two
different methods. One for handling through the Redfish Sensors path
and the others for the deprecated Redfish Power/Thermal paths.
(Identity includes the Name/Id and type information for the sensor.
- Common function for filling in Sensor status.
- Mapping other available D-Bus properties to their Redfish property
name.

[1] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/85103/comment/621fe109_9157ec50/

Tested: Using hardware simulator
- Enabled redfish-allow-deprecated-power-thermal and confirmed response
same before and after change for:
- /redfish/v1/Chassis/chassis/Sensors
- /redfish/v1/Chassis/chassis/Thermal
- /redfish/v1/Chassis/chassis/Power
- /redfish/v1/Chassis/chassis/ThermalSubsystem/ThermalMetrics
- /redfish/v1/Chassis/chassis/EnvironmentMetrics
- Each Member under /redfish/v1/Chassis/chassis/Sensors/
(i.e. /redfish/v1/Chassis/chassis/Sensors/{})

Change-Id: I1524c5c3b1f98a95dc2ed82d395897cd5f8af7d2
Signed-off-by: Janet Adkins <janeta@us.ibm.com>

show more ...

1aa94df431-Jul-2025 Harshit Aghera <haghera@nvidia.com>

sensor_utils: Add PeakReading property

Add support for PeakReading and PeakReadingTime for sensors. This
enhancement allows sensor readings to include max observed value
information in the Redfish A

sensor_utils: Add PeakReading property

Add support for PeakReading and PeakReadingTime for sensors. This
enhancement allows sensor readings to include max observed value
information in the Redfish API, along with timestamp. It uses PDI
xyz.openbmc_project.Telemetry.Report. Property PeakReading is added if
OperationType in PDI property ReadingParameters is set to Maximum.

Current Limitation -
The ResetMetrics action is currently not supported for sensor URIs. As a
result, the ability to clear PeakReading values for GPU Power Sensors
has not been implemented.

Future Consideration -
If ResetMetrics action support is added in the future, the corresponding
functionality will also need to be implemented in the dbus-sensor
application to ensure full compatibility.

Schema:
https://redfish.dmtf.org/schemas/v1/Sensor.v1_2_0.yaml (PeakReading)

Backend implementation for reference:
https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/82479

Tested: Build an image for nvl32-obmc machine with the following patches
cherry picked.

https://gerrit.openbmc.org/c/openbmc/openbmc/+/85490
https://gerrit.openbmc.org/c/openbmc/bmcweb/+/82449.

The patch cherry-picks the following patches that are currently under
review.

```
1. device tree
https://lore.kernel.org/all/aRbLqH8pLWCQryhu@molberding.nvidia.com/
2. mctpd patches
https://github.com/CodeConstruct/mctp/pull/85
3. u-boot changes
https://lore.kernel.org/openbmc/20251121-msx4-v1-0-fc0118b666c1@nvidia.com/T/#t
4. kernel changes as specified in the openbmc patch (for espi)
5. entity-manager changes
https://gerrit.openbmc.org/c/openbmc/entity-manager/+/85455
6. platform-init changes
https://gerrit.openbmc.org/c/openbmc/platform-init/+/85456
7. spi changes
https://lore.kernel.org/all/20251121-w25q01jv_fixup-v1-1-3d175050db73@nvidia.com/
```

```
> curl -s -k -u 'root:0penBmc' https://10.137.203.137/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/power_NVIDIA_GB200_GPU_0_Power_0
{
"@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/power_NVIDIA_GB200_GPU_0_Power_0",
"@odata.type": "#Sensor.v1_2_0.Sensor",
"Id": "power_NVIDIA_GB200_GPU_0_Power_0",
"Name": "NVIDIA GB200 GPU 0 Power 0",
"PeakReading": 52.671,
"PeakReadingTime": 0,
"Reading": 27.214,
"ReadingRangeMax": 5000.0,
"ReadingRangeMin": 0.0,
"ReadingType": "Power",
"ReadingUnits": "W",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}%
````

Change-Id: I8c1ab6ce85f31419db4a1d931bf99722d24afbd7
Signed-off-by: Harshit Aghera <haghera@nvidia.com>

show more ...

57d41fed13-Nov-2025 Janet Adkins <janeta@us.ibm.com>

Fans: Create utility class for fans

Support for fans from separate routes of ThermalSubsystem and
EnvironmentMetrics will need the same utility functions. By moving these
shared functions into singl

Fans: Create utility class for fans

Support for fans from separate routes of ThermalSubsystem and
EnvironmentMetrics will need the same utility functions. By moving these
shared functions into single file will help with build time by not
needing to included full fan support in all of the related locations.

Initially only the getFanPaths() is moved. Expectation is more functions
will be added as the expanded support is added.

Tested:
- Compiles
- Verified ThermalSubsystem/Fans output unchanged

Change-Id: I22c22bdf38155e93aa13e259dd8c904a977f8a07
Signed-off-by: Janet Adkins <janeta@us.ibm.com>

show more ...

456512bc02-Dec-2025 Chandramohan Harkude <chandramohan.harkude@gmail.com>

Fix RFA aggregation issue

Aggregation was failing because of method and target URI missing
in HTTP request

This was a regression from 897e4c80f35b5bd963923f5794a7d3b229dba306

HTTP/1.1
Accept: appl

Fix RFA aggregation issue

Aggregation was failing because of method and target URI missing
in HTTP request

This was a regression from 897e4c80f35b5bd963923f5794a7d3b229dba306

HTTP/1.1
Accept: application/json, application/octet-stream
Host: 172.31.13.251

Fix : Added the Target URI and method from original request

Testing :

```
curl -k -u root:0penBmc -X GET https://${BMC_IP}/redfish/v1/Chassis

Returned items from both BMC and Satellite BMC
```
Change-Id: Ib446adfeb94d0cce3a272fc39ee5cc60ce3df7f8
Signed-off-by: Chandramohan Harkude <chandramohan.harkude@gmail.com>
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

c2f428f517-Oct-2025 Oliver Brewka <oliver.brewka@9elements.com>

Add remaining functions to systems_utils namespace

Initially, systems_utils.hpp has not defined its own namespace, all
functions were under the redfish namespace. Patch 82078 [1] introduced
systems_

Add remaining functions to systems_utils namespace

Initially, systems_utils.hpp has not defined its own namespace, all
functions were under the redfish namespace. Patch 82078 [1] introduced
systems_utils namespace to the header for new functionality.

This patch adds all functions, that haven't been part of the new
namespace to systems_utils namespace and updates all call sites
accordingly.

[1] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/82078

Tested: Code compiles.

Change-Id: Ia6ac3edd36aacc22cbf1a6adae4e2b264932b43c
Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>

show more ...

79a916a215-Oct-2025 Oliver Brewka <oliver.brewka@9elements.com>

Fix includes in log_services_utils

Remove unused includes and include boost_formatter util, in order to
pass error codes to std::format.

Tested: Code compiles.

Change-Id: I9e2f0886695a5e12dee929b7

Fix includes in log_services_utils

Remove unused includes and include boost_formatter util, in order to
pass error codes to std::format.

Tested: Code compiles.

Change-Id: I9e2f0886695a5e12dee929b7dd2c08d288effc94
Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>

show more ...

42d4e63b27-Aug-2025 Oliver Brewka <oliver.brewka@9elements.com>

Dynamic DBus EventLog handlers

In order to reuse handlers for DBus EventLog under Managers,
add an additional argument that specifies the redfish resource.

Tested: Code compiles. Redfish validation

Dynamic DBus EventLog handlers

In order to reuse handlers for DBus EventLog under Managers,
add an additional argument that specifies the redfish resource.

Tested: Code compiles. Redfish validation succeeds.
Additionally the curl output with and without the changes has been
diffed. No differences observed.

Change-Id: I13ec2f6e54f078b5b1064fb62c5561daa50f881a
Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>

show more ...

970173cc22-Sep-2025 Oliver Brewka <oliver.brewka@9elements.com>

Extract DBus EventLog common code

Extract all functions, that are either for utility purposes or
will be called by both ComputerSystem EventLog and Managers EventLog in
a follow-up patch.
These func

Extract DBus EventLog common code

Extract all functions, that are either for utility purposes or
will be called by both ComputerSystem EventLog and Managers EventLog in
a follow-up patch.
These functions now reside in the eventlog utility header.

Tested: Only code extraction. Code compiles.

Change-Id: I42632790d152ecdf71a769662a2a9eec2041879d
Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>

show more ...

897e4c8004-Nov-2025 Chandramohan Harkude <chandramohan.harkude@gmail.com>

Filter X-AUTH-TOKEN and HTTP2 headers in aggregation

When using aggregation X-AUTH-TOKEN and HTTP2 headers need not to be
passed to HMC.

Added code to clear these headers before sending to satellit

Filter X-AUTH-TOKEN and HTTP2 headers in aggregation

When using aggregation X-AUTH-TOKEN and HTTP2 headers need not to be
passed to HMC.

Added code to clear these headers before sending to satellite
BMC.

Tested: Unit tests pass.

Change-Id: I68f5fb11e4934c6d34c67f443dc0c933c019d18f
Signed-off-by: Chandramohan Harkude <chandramohan.harkude@gmail.com>

show more ...

a9bf68b922-Aug-2025 Myung Bae <myungbae@us.ibm.com>

Redo Refactor Managers with getValidManagerPath

The previous refactor of Managers [1] had an issue and was reverted.
This is redoing the refactor of getValidManagerPath() to find the valid
manager d

Redo Refactor Managers with getValidManagerPath

The previous refactor of Managers [1] had an issue and was reverted.
This is redoing the refactor of getValidManagerPath() to find the valid
manager dbus path and its service name.

This can be used for manager GET and PATCH operations.

Tested:
- GET /redfish/v1/Managers/bmc
- PATCH /redfish/v1/Managers/ LocationIndicatorActive
- Redfish Service Validator passes

[1] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/83067

Change-Id: Iea5edb7feb29bcf088ed23479748747437a3bb5b
Signed-off-by: Myung Bae <myungbae@us.ibm.com>

show more ...

d949596416-Oct-2025 Thang Tran <thuutran@amperecomputing.com>

Correct the version of Message Id

Applications are logging Redfish Message ID to journal, but the version
of some message ID are different with the definition of bmcweb. E.g:
- psusensor is defining

Correct the version of Message Id

Applications are logging Redfish Message ID to journal, but the version
of some message ID are different with the definition of bmcweb. E.g:
- psusensor is defining version of OpenBMC registry is "0.1" as [1].
- The bmcweb defines the version of OpenBMC registry is "0.5" as [2].

It makes the "MessageId" property of Event log's enties has different
version with definition in the /redfish/v1/Registries.

This commit corrects the version of Message ID.

[1]: https://github.com/openbmc/dbus-sensors/blob/6b7123225fc4a5180faf89190e9f64a7e248e697/src/psu/PSUEvent.cpp#L121
[2]: https://github.com/openbmc/bmcweb/blob/master/redfish-core/include/registries/openbmc.json#L1678

Tested:
Verify the version of Events are the same the version of Registries
that are defined in the bmcweb.

Change-Id: Ib862c8d0a62cae63082436cb4646a9ca45207872
Signed-off-by: Thang Tran <thuutran@amperecomputing.com>

show more ...

0ddb8edf15-Jul-2024 Ed Tanous <etanous@nvidia.com>

Use std::format for hex conversions

Deprecate intoToHex handler now that we can do everything using
std::format.

Tested: RSV passes
Redfish protocol validator passes

Change-Id: I71000506573314d6c9

Use std::format for hex conversions

Deprecate intoToHex handler now that we can do everything using
std::format.

Tested: RSV passes
Redfish protocol validator passes

Change-Id: I71000506573314d6c9326c4677f5fbca1ca02b46
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

dba9d67526-Aug-2025 Oliver Brewka <oliver.brewka@9elements.com>

Rename Journal EventLog handlers

These handlers will serve both the ComputerSystem and the Managers
resource. Give them a common name.

Tested: Inspection only. Code compiles.

Change-Id: Icbcde2d7c

Rename Journal EventLog handlers

These handlers will serve both the ComputerSystem and the Managers
resource. Give them a common name.

Tested: Inspection only. Code compiles.

Change-Id: Icbcde2d7cf3d8bd55084a7d2bfe7775a220b1bd1
Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>

show more ...

9d6459e827-Aug-2025 Oliver Brewka <oliver.brewka@9elements.com>

Dynamic EventLogService handler

In order to reuse the handler for the EventLogService under Managers,
extract the logic from the handler and put it into a separate function
in the eventlog util. Add

Dynamic EventLogService handler

In order to reuse the handler for the EventLogService under Managers,
extract the logic from the handler and put it into a separate function
in the eventlog util. Add an additional argument that specifies
the redfish resource, so we can handle Systems and Managers resource
with the same handler.

Tested: Code compiles. Redfish validation succeeds.
Additionally the curl output with and without the changes has been
diffed. No differences observed.

Change-Id: I48825b55b41afeafa02283dc91cf4cb1cd4cd7c3
Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>

show more ...

3af76e1526-Aug-2025 Oliver Brewka <oliver.brewka@9elements.com>

Dynamic Journal EventLog handlers

In order to reuse handlers for Journal EventLog under Managers,
add an additional argument that specifies the redfish resource.

Tested: Code compiles. Redfish vali

Dynamic Journal EventLog handlers

In order to reuse handlers for Journal EventLog under Managers,
add an additional argument that specifies the redfish resource.

Tested: Code compiles. Redfish validation succeeds.
Additionally the curl output with and without the changes has been
diffed. No differences observed.

Change-Id: I7816b2b7ddb68f79552341ea60b1ee7be360dca1
Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>

show more ...

7681b8a126-Aug-2025 Oliver Brewka <oliver.brewka@9elements.com>

Extract Journal EventLog common code

Extract all functions, that are either for utility purposes or
will be called by both ComputerSystem EventLog and Managers EventLog in
a follow-up patch.
These f

Extract Journal EventLog common code

Extract all functions, that are either for utility purposes or
will be called by both ComputerSystem EventLog and Managers EventLog in
a follow-up patch.
These functions now reside in a eventlog utility header.

Tested: Only code extraction. Code compiles.

Change-Id: I53bf207dd584939ebb4185e923e24902b9e75427
Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>

show more ...

4e8d8a1c23-Jul-2025 Harshit Aghera <haghera@nvidia.com>

sensor_utils: add sensor properties

Add support for ReadingBasis and Implementation sensor properties. These
properties are defined on xyz.openbmc_project.Sensor.Type which will be
optionally implem

sensor_utils: add sensor properties

Add support for ReadingBasis and Implementation sensor properties. These
properties are defined on xyz.openbmc_project.Sensor.Type which will be
optionally implemented by sensor.

DBus Interface definition
- https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/81658

Link to Redfish schema
- https://redfish.dmtf.org/schemas/v1/Sensor.v1_11_0.yaml

Tested: Build an image for gb200nvl-obmc machine with the following
patches cherry picked. This patches are needed to enable the mctp stack.

https://gerrit.openbmc.org/c/openbmc/openbmc/+/79422

Redfish service validator is passing.

```
> curl -s -k -u 'root:0penBmc' https://10.137.203.137/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/temperature_NVIDIA_GB200_GPU_0_TEMP_1
{
"@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/temperature_NVIDIA_GB200_GPU_0_TEMP_1",
"@odata.type": "#Sensor.v1_2_0.Sensor",
"Description": "Thermal Limit(TLIMIT) Temperature is the distance in deg C from the GPU temperature to the first throttle limit.",
"Id": "temperature_NVIDIA_GB200_GPU_0_TEMP_1",
"Implementation": "Synthesized",
"Name": "NVIDIA GB200 GPU 0 TEMP 1",
"Reading": 56.59375,
"ReadingBasis": "Headroom",
"ReadingRangeMax": 127.0,
"ReadingRangeMin": -128.0,
"ReadingType": "Temperature",
"ReadingUnits": "Cel",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}%

root@gb200nvl-obmc:~# busctl introspect xyz.openbmc_project.GpuSensor /xyz/openbmc_project/sensors/temperature/NVIDIA_GB200_GPU_0_TEMP_1
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
org.freedesktop.DBus.Introspectable interface - - -
.Introspect method - s -
org.freedesktop.DBus.Peer interface - - -
.GetMachineId method - s -
.Ping method - - -
org.freedesktop.DBus.Properties interface - - -
.Get method ss v -
.GetAll method s a{sv} -
.Set method ssv - -
.PropertiesChanged signal sa{sv}as - -
xyz.openbmc_project.Association.Definitions interface - - -
.Associations property a(sss) 1 "chassis" "all_sensors" "/xyz/openb... emits-change
xyz.openbmc_project.Inventory.Item interface - - -
.PrettyName property s "Thermal Limit(TLIMIT) Temperature is... emits-change
xyz.openbmc_project.Sensor.Type interface - - -
.Implementation property s "xyz.openbmc_project.Sensor.Type.Impl... emits-change
.ReadingBasis property s "xyz.openbmc_project.Sensor.Type.Read... emits-change
xyz.openbmc_project.Sensor.Value interface - - -
.MaxValue property d 127 emits-change
.MinValue property d -128 emits-change
.Unit property s "xyz.openbmc_project.Sensor.Value.Uni... emits-change
.Value property d 56.6836 emits-change writable
xyz.openbmc_project.Sensor.ValueMutability interface - - -
.Mutable property b true emits-change
xyz.openbmc_project.State.Decorator.Availability interface - - -
.Available property b true emits-change writable
xyz.openbmc_project.State.Decorator.OperationalStatus interface - - -
.Functional property b true emits-change
```

Change-Id: I61344e8d8c8ef36d7553f33afb5f84643ce1fe4d
Signed-off-by: Harshit Aghera <haghera@nvidia.com>

show more ...

378f1d6106-Oct-2022 George Liu <liuxiwei@inspur.com>

Add PowerWatts for EnvironmentMetrics

The EnvironmentMetrics schema[1] provides for efficient retrieval of
environmental metrics by separating them from performance metrics.
EnvironmentMetrics is a

Add PowerWatts for EnvironmentMetrics

The EnvironmentMetrics schema[1] provides for efficient retrieval of
environmental metrics by separating them from performance metrics.
EnvironmentMetrics is a property of the Chassis schema since v1_15_0[2].
EnvironmentMetrics was added to Redfish release 2021.2 [3] to be used
instead of the deprecated Power schema.[4]

This commit adds PowerWatts property of the EnvironmentMetrics schema.
PowerWatts has been part of the EnvironmentMetrics schema since v1_1_0.
PowerWatts is a SensorPowerExcerpt[5].

Implementation notes: The new D-Bus interface
"xyz.openbmc_project.Sensor.Purpose" is used to find the sensor with the
"TotalPower" purpose.[6][7] The new utility function
sensor_utils::getSensorsByPurpose() returns a subset of an incoming list
of sensors which implement a specified purpose.

Multiple D-Bus calls are needed to find the sensor providing the
totalPower:
1. Retrieve list of power sensors associated with specified chassis
which implement the Sensor.Purpose interface using existing
getAllSensorObjects() function.
2. For each of those power sensors retrieve the actual purpose of the
sensor to find the sensor implementing totalPower purpose. Expect no
more than one sensor to implement this purpose. New utility function
getSensorsByPurpose() is used.
3. If a totalPower sensor is found then retrieve its properties to fill
in PowerWatts in the response using existing
sensor_utils::objectExcerptToJson() utility function.

If no sensor has the "TotalPower" purpose then PowerWatts is
not added to EnvironmentMetrics and no error is returned.

[1] https://redfish.dmtf.org/schemas/v1/EnvironmentMetrics.v1_3_2.json
[2] https://redfish.dmtf.org/schemas/v1/Chassis.v1_25_2.json
[3] http://redfish.dmtf.org/schemas/Redfish_Release_History.pdf
[4] https://redfish.dmtf.org/schemas/v1/Power.v1_7_3.json
[5] http://redfish.dmtf.org/schemas/v1/Sensor.v1_9_1.json#/definitions/SensorPowerExcerpt
[6] https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/75943
[7] https://gerrit.openbmc.org/c/openbmc/openpower-occ-control/+/77408

Tested:
- Updated unit tests for new environmentMetricsNode enum
- Redfish Service Validator passes (confirmed PowerWatts tested)
```
VERBOSE1 - ServiceRoot -> Chassis -> Members#4 -> EnvironmentMetrics, EnvironmentMetrics.v1_3_0, EnvironmentMetrics
VERBOSE1 - @odata.id PASS
VERBOSE1 - @odata.type PASS
VERBOSE1 - Id PASS
VERBOSE1 - Name PASS
VERBOSE1 - PowerWatts PASS
```
- No "TotalPower" sensor exists (system never powered on).
PowerWatts is not shown and no error is returned.
```
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"
}
```

- "TotalPower" sensor exists (system powered on)
```
curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/Systems/system | grep PowerState
"PowerState": "On",

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",
"PowerWatts": {
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/power_total_power",
"Reading": 191.0
}
}
```
DataSourceUri is a valid sensor:
```
curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/Chassis/chassis/Sensors/power_total_power
{
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/power_total_power",
"@odata.type": "#Sensor.v1_2_0.Sensor",
"Id": "power_total_power",
"Name": "total power",
"Reading": 191.0,
"ReadingType": "Power",
"ReadingUnits": "W",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
```

- "TotalPower" sensor exists but null value (system powered off)
```
curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/Systems/system | grep PowerState
"PowerState": "Off",

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",
"PowerWatts": {
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/power_total_power",
"Reading": null
}
}
```

And again the DataSourceUri points to a valid sensor:
```
curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/Chassis/chassis/Sensors/power_total_power
{
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/power_total_power",
"@odata.type": "#Sensor.v1_2_0.Sensor",
"Id": "power_total_power",
"Name": "total power",
"Reading": null,
"ReadingType": "Power",
"ReadingUnits": "W",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
```

- Invalid chassis id ("TotalPower" sensor exists)
```
curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/Chassis/chassisBAD/EnvironmentMetrics
{
"error": {
"@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The requested resource of type Chassis named 'chassisBAD' was not found.",
"MessageArgs": [
"Chassis",
"chassisBAD"
],
"MessageId": "Base.1.19.ResourceNotFound",
"MessageSeverity": "Critical",
"Resolution": "Provide a valid resource identifier and resubmit the request."
}
],
"code": "Base.1.19.ResourceNotFound",
"message": "The requested resource of type Chassis named 'chassisBAD' was not found."
}
}
```

Signed-off-by: George Liu <liuxiwei@inspur.com>
Signed-off-by: Janet Adkins <janeta@us.ibm.com>
Change-Id: Ibe84a5e7fe0d2b232f925e457a094c021ca85d36

show more ...


/openbmc/bmcweb/docs/COMMON_ERRORS.md
/openbmc/bmcweb/docs/Redfish.md
/openbmc/bmcweb/http/http_client.hpp
/openbmc/bmcweb/http/utility.hpp
/openbmc/bmcweb/redfish-core/include/aggregation_utils.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/certificate.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/certificate_enrollment.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/chassis.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/computer_system.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/coolant_connector.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/cooling_loop.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/cooling_unit.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/cxl_logical_device.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/leak_detector.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/memory.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/port.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/power_distribution.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/processor.hpp
/openbmc/bmcweb/redfish-core/include/generated/enums/storage.hpp
/openbmc/bmcweb/redfish-core/include/redfish_aggregator.hpp
sensor_utils.hpp
/openbmc/bmcweb/redfish-core/lib/aggregation_service.hpp
/openbmc/bmcweb/redfish-core/lib/environment_metrics.hpp
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ActionInfo_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Assembly_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AttributeRegistry_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/BatteryMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Battery_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CXLLogicalDevice_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CertificateCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CertificateEnrollmentCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CertificateEnrollment_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CertificateService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Certificate_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Chassis_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ComponentIntegrity_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ComputerSystem_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CoolantConnector_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CoolingLoop_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CoolingUnit_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/DriveMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Event_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Fan_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/LeakDetector_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/LogEntry_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/LogService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Manager_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MemoryMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Memory_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MessageRegistry_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/NetworkAdapter_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PCIeDevice_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PortMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Port_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PowerDistribution_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PrivilegeRegistry_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ProcessorMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Processor_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Redundancy_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Resource_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Sensor_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SoftwareInventoryCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SoftwareInventory_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/StorageControllerMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/StorageController_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Storage_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SwitchMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/TelemetryService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ThermalSubsystem_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/UpdateService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/VolumeCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/ActionInfo.v1_5_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Assembly.v1_6_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/AttributeRegistry.v1_4_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Certificate.v1_11_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/CertificateService.v1_2_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Chassis.v1_28_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/ComponentIntegrity.v1_3_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/ComputerSystem.v1_26_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Event.v1_12_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Fan.v1_6_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/LogEntry.v1_20_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/LogService.v1_8_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Manager.v1_23_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Memory.v1_22_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/MessageRegistry.v1_7_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/PCIeDevice.v1_20_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Port.v1_17_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Processor.v1_21_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Redundancy.v1_6_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Resource.v1_23_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Sensor.v1_11_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/SoftwareInventory.v1_13_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/Storage.v1_20_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/StorageController.v1_10_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/TelemetryService.v1_4_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/ThermalSubsystem.v1_5_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/UpdateService.v1_17_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema-installed/redfish-payload-annotations.v1_3_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ActionInfo.v1_5_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Assembly.v1_6_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AttributeRegistry.v1_4_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Battery.v1_5_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/BatteryMetrics.v1_1_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CXLLogicalDevice.v1_3_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Certificate.v1_11_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CertificateCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CertificateEnrollment.v1_0_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CertificateEnrollmentCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CertificateService.v1_2_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Chassis.v1_28_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ComponentIntegrity.v1_3_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ComputerSystem.v1_26_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CoolantConnector.v1_3_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CoolingLoop.v1_1_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CoolingUnit.v1_4_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/DriveMetrics.v1_3_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Event.v1_12_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Fan.v1_6_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/LeakDetector.v1_5_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/LogEntry.v1_20_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/LogService.v1_8_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Manager.v1_23_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Memory.v1_22_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MemoryMetrics.v1_8_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MessageRegistry.v1_7_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/NetworkAdapter.v1_13_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PCIeDevice.v1_20_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Port.v1_17_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PortMetrics.v1_8_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PowerDistribution.v1_5_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PrivilegeRegistry.v1_2_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Processor.v1_21_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ProcessorMetrics.v1_7_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Redundancy.v1_6_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Resource.v1_23_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Sensor.v1_11_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SoftwareInventory.v1_13_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SoftwareInventoryCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Storage.v1_20_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/StorageController.v1_10_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/StorageControllerMetrics.v1_1_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SwitchMetrics.v1_1_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/TelemetryService.v1_4_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ThermalSubsystem.v1_5_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/UpdateService.v1_17_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Volume.v1_10_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/VolumeCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/redfish-payload-annotations-v1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/redfish-payload-annotations.v1_3_0.json
/openbmc/bmcweb/scripts/update_schemas.py
/openbmc/bmcweb/test/http/utility_test.cpp
/openbmc/bmcweb/test/redfish-core/include/utils/sensor_utils_test.cpp
83237dd611-Jan-2021 SunnySrivastava1984 <sunnsr25@in.ibm.com>

Inventory properties via Assembly schema

This commit implements Redfish Assembly schema.
This schema will be used to publish inventory data for FRUs which are
attached to a given Chassis and does no

Inventory properties via Assembly schema

This commit implements Redfish Assembly schema.
This schema will be used to publish inventory data for FRUs which are
attached to a given Chassis and does not map to any specific schema
definition.

The properties which are published in this commit are LocationCode,
SparePartNumber, Model, SerialNumber and PartNumber.

One of the major use case to publish these properties via redfish is for
anyone to identify the inventory and its location in the system, which
in turn will help them in repair/replacement related to that FRU.

The validator has been executed on the change and no error has been
found.
As this has been tested on a development image some fields are empty
in the below pasted output for which warning was thrown by validator but
no errors.

Sample Output with [1]:
```
{
"@odata.id": "/redfish/v1/Chassis/chassis/Assembly",
"@odata.type": "#Assembly.v1_5_1.Assembly",
"Assemblies": [
{
"@odata.id": "/redfish/v1/Chassis/chassis/Assembly#/Assemblies/0",
"@odata.type": "#Assembly.v1_5_1.AssemblyData",
"Location": {
"PartLocation": {
"ServiceLabel": "U78DA.ND0.1234567-D0"
}
},
"Manufacturer": "",
"MemberId": "0",
"Model": "",
"Name": "base_op_panel_blyth",
"PartNumber": "",
"SerialNumber": "",
"Status": {
"Health": "OK",
"State": "Absent"
}
},
{
"@odata.id": "/redfish/v1/Chassis/chassis/Assembly#/Assemblies/1",
"@odata.type": "#Assembly.v1_5_1.AssemblyData",
"Location": {
"PartLocation": {
"ServiceLabel": "U78DA.ND0.1234567-D1"
}
},
"Manufacturer": "",
"MemberId": "1",
"Model": "6B86",
"Name": "lcd_op_panel_hill",
"PartNumber": "PN12345",
"SerialNumber": "YL6B86010000",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
],
"Assemblies@odata.count": 2,
"Id": "Assembly",
"Name": "Assembly Collection"
}
```

[1] https://gerrit.openbmc.org/c/openbmc/openbmc/+/83907

Change-Id: I2d462340fe1a0b0eb387697f0ff70fcafde3f8d9
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
Signed-off-by: Ninad Palsule <ninad@linux.ibm.com>
Signed-off-by: Myung Bae <myungbae@us.ibm.com>

show more ...

7237572322-Feb-2023 Myung Bae <myungbae@us.ibm.com>

Add getChassisAssembly utility function

This adds a general utility function `getChassisAssembly()` to get the
list of assemblies for a given `chassisID` with the association of
`containing/containe

Add getChassisAssembly utility function

This adds a general utility function `getChassisAssembly()` to get the
list of assemblies for a given `chassisID` with the association of
`containing/contained_by` which is defined between Items [1].

This assembly starts with the following interfaces;
- xyz.openbmc_project.Inventory.Item.Panel

Tested:
- Verify the assemblies with [2]

[1] https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/58441
[2] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/39574

Change-Id: I415185b64e8c92be5145209944a1d47c9e921359
Signed-off-by: Myung Bae <myungbae@us.ibm.com>

show more ...

1ac7f6cf07-Sep-2025 Myung Bae <myungbae@us.ibm.com>

Add getAssetInfo into util function

AssetInfo is needed for many schemas like Fan, Storage etc. Using this
utility function, those AssetInfo can be obtained in one place.

This function extracts the

Add getAssetInfo into util function

AssetInfo is needed for many schemas like Fan, Storage etc. Using this
utility function, those AssetInfo can be obtained in one place.

This function extracts the following properties if available.
- Manufacturer
- Model
- PartNumber
- SerialNumber
- SparePartNumber (if requested)

Tested:
- GET Chassis, Fan, Storage etc
- Redfish Service Validator passes

Change-Id: I2e8fdab8969d24899c261cfdf601be971d0210d7
Signed-off-by: Myung Bae <myungbae@us.ibm.com>

show more ...

740fea1612-Sep-2025 Ed Tanous <ed@tanous.net>

Remove deprecated json decodes

These decodes haven't been standard practice for a while. While they
will likely break some downstream builds, we need to clean things up.

If you are seeing this com

Remove deprecated json decodes

These decodes haven't been standard practice for a while. While they
will likely break some downstream builds, we need to clean things up.

If you are seeing this commit message because your downstream build is
broken, please migrate your code to using nlohmann::json::object_t
instead of nlohmann::json when it does the unpack.

Tested: Code compiles.

Change-Id: Id892ee381b2d6b40a6366ee0622cde04d2cacd7b
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

08fad5d931-Jul-2025 Corey Ethington <cethington@coreweave.com>

Add check to omit `DateTime` from etag calculation

Ignores any json property named `DateTime` when calculating
the etag value of an HTTP response as per the updated
Redfish Spec (section 6.5: ETags)

Add check to omit `DateTime` from etag calculation

Ignores any json property named `DateTime` when calculating
the etag value of an HTTP response as per the updated
Redfish Spec (section 6.5: ETags)

Tested:
- Redfish Service Validator passes
- Tested on romulus:
1. GET resource with a "DateTime" field
```
curl -k -H "X-Auth-Token: $XAUTH_TOKEN" "https://$BMC/redfish/v1/TaskService" \
--etag-save ./etag.txt -v
...
< etag: "6A4CE897"
...
{
"@odata.id": "/redfish/v1/TaskService",
"@odata.type": "#TaskService.v1_1_4.TaskService",
"CompletedTaskOverWritePolicy": "Oldest",
"DateTime": "2025-07-23T17:08:20+00:00",
"Id": "TaskService",
"LifeCycleEventOnTaskStateChange": true,
"Name": "Task Service",
"ServiceEnabled": true,
"Status": {
"State": "Enabled"
},
"Tasks": {
"@odata.id": "/redfish/v1/TaskService/Tasks"
}
```

2. GET same resource again later, etag is same as before
```
curl -k -H "X-Auth-Token: $XAUTH_TOKEN" "https://$BMC/redfish/v1/TaskService" \
--etag-save ./etag.txt -v
...
< etag: "6A4CE897"
...
{
"@odata.id": "/redfish/v1/TaskService",
"@odata.type": "#TaskService.v1_1_4.TaskService",
"CompletedTaskOverWritePolicy": "Oldest",
"DateTime": "2025-07-23T17:10:48+00:00",
"Id": "TaskService",
"LifeCycleEventOnTaskStateChange": true,
"Name": "Task Service",
"ServiceEnabled": true,
"Status": {
"State": "Enabled"
},
"Tasks": {
"@odata.id": "/redfish/v1/TaskService/Tasks"
}
```
"DateTime" is the only value to have changed, but since
it is ignored the etag did not change

3. GET with if-none-match returns 304
```
curl -k -H "X-Auth-Token: $XAUTH_TOKEN" "https://$BMC/redfish/v1/TaskService" \
--etag-save ./etag.txt --etag-compare ./etag.txt -v
...
> if-none-match: "6A4CE897"
...
< HTTP/2 304
< allow: GET
< odata-version: 4.0
< strict-transport-security: max-age=31536000; includeSubdomains
< pragma: no-cache
< cache-control: no-store, max-age=0
< x-content-type-options: nosniff
< etag: "6A4CE897"
< date: Wed, 23 Jul 2025 17:14:39 GMT
< content-length: 0
<
...
```

Change-Id: I51f7668e75719c69c55535e4a1e48c8bae7c9488
Signed-off-by: Corey Ethington <cethington@coreweave.com>

show more ...

ff35df9426-Aug-2025 Oliver Brewka <oliver.brewka@9elements.com>

Extract downloadEntryCallback function

As part of a EventLog refactor, extract this function into a
log_services utility.

Tested: Only code extraction. Code compiles.

Change-Id: Iaa7aa583a38587c33

Extract downloadEntryCallback function

As part of a EventLog refactor, extract this function into a
log_services utility.

Tested: Only code extraction. Code compiles.

Change-Id: Iaa7aa583a38587c338280af2a9fff65d3732f301
Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>

show more ...

12345678910>>...12