| 96a194c4 | 18-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 ...
|
| e32edd47 | 20-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 ...
|
| aa0368ae | 05-Dec-2025 |
Ramya Sivakumar <sramya@ami.com> |
Removed unused header in redfish-core/include
Remove unused includes and include boost/circular_buffer/base.hpp in event_service_manager and event_matches_filter
Tested: Code compiles.
Change-Id:
Removed unused header in redfish-core/include
Remove unused includes and include boost/circular_buffer/base.hpp in event_service_manager and event_matches_filter
Tested: Code compiles.
Change-Id: Ib90374b822560c063f3047037bdb87f36685f48c Signed-off-by: Ramya Sivakumar <sramya@ami.com>
show more ...
|
| 1aa94df4 | 31-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 ...
|
| 57d41fed | 13-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 ...
|
| 456512bc | 02-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 ...
|
| c2f428f5 | 17-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 ...
|
| 79a916a2 | 15-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 ...
|
| 42d4e63b | 27-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 ...
|
| 970173cc | 22-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 ...
|
| 897e4c80 | 04-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 ...
|
| a9bf68b9 | 22-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 ...
|
| d9495964 | 16-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 ...
|
| 0ddb8edf | 15-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 ...
|
| dba9d675 | 26-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 ...
|
| 9d6459e8 | 27-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 ...
|
| 3af76e15 | 26-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 ...
|
| e8f66f0b | 08-Oct-2025 |
Ed Tanous <etanous@nvidia.com> |
Parse number types from the base registry
Rather than maintaining a list of arguments that are numbers (which is error prone), update the script to just trust that the few parameters labeled in Redf
Parse number types from the base registry
Rather than maintaining a list of arguments that are numbers (which is error prone), update the script to just trust that the few parameters labeled in Redfish as numbers should in fact show up in the API as numbers.
Functionally this changes the APIs for only a few error messages, only one of which (StringValueTooShort) is used and that usage was added recently.
Tested: SRV passes.
Change-Id: I580523ecc0263688738bcb7f7925913e40e2a113 Signed-off-by: Ed Tanous <etanous@nvidia.com>
show more ...
|
| 7681b8a1 | 26-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 ...
|
| 019caeaf | 07-Nov-2025 |
Gunnar Mills <gmills@us.ibm.com> |
Remove redfish-use-3-digit-messageid
redfish-use-3-digit-messageid stated it would be removed in 2Q25, it is now 4Q25. Searching OpenBMC doesn't show any users of this option.
This option was added
Remove redfish-use-3-digit-messageid
redfish-use-3-digit-messageid stated it would be removed in 2Q25, it is now 4Q25. Searching OpenBMC doesn't show any users of this option.
This option was added in December 2014 and fixed a bug with us not following the Redfish Spec.[1]
[1]: https://gerrit.openbmc.org/c/openbmc/bmcweb/+/76180
Tested: This is a pretty straightforward removal. Inspection and build only.
Change-Id: I8a103d42184c21f75db19d44d8004f54d3fae01a Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
show more ...
|
| 4e8d8a1c | 23-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 ...
|
| 1188a58e | 08-Oct-2025 |
Ed Tanous <etanous@nvidia.com> |
Make DBus aggregation optional
There are a number of scenarios where Entity manager might not be running, or might have errored out. For resilience, this should ONLY result in the aggregated source
Make DBus aggregation optional
There are a number of scenarios where Entity manager might not be running, or might have errored out. For resilience, this should ONLY result in the aggregated sources disappearing, and should not effect the main collections.
One use case for this is local development and testing the aggregation.
To accomplish this, modify the getSatteliteConfigs function to always call the callback, in the case of an error, calling with an empty map of satellites.
Tested: Launched bmcweb directly with insecure-disable-auth and redfish-aggregation enabled. Created an aggregated source:
``` curl -vvvv -k https://localhost:18080/redfish/v1/AggregationService/AggregationSources -H "Content-Type: application/json" --request POST --data '{"HostName":"https://10.114.132.149", "UserName": "root", "Password": "0penBmc"}' ```
Change-Id: Ica667fe27a35b33a99d0b411a06407b73efe6731 Signed-off-by: Ed Tanous <etanous@nvidia.com>
show more ...
|
| 378f1d61 | 06-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 ...
|
| 5ecf7b4e | 13-Oct-2025 |
Gunnar Mills <gmills@us.ibm.com> |
Redfish 2025.3
1 line change in scripts/update_schemas.py to point at 2025.3 and run the script.
See below for more info on this release [1]
Tested: Inspection only. These have not broke things in
Redfish 2025.3
1 line change in scripts/update_schemas.py to point at 2025.3 and run the script.
See below for more info on this release [1]
Tested: Inspection only. These have not broke things in the past. Symlinks are getting updated: ``` head -n 4 redfish-core/schema/dmtf/json-schema-installed/ComputerSystem.v1_*.json { "$id": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.v1_26_0.json", "$ref": "#/definitions/ComputerSystem", "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", ```
[1]: https://www.dmtf.org/sites/default/files/Redfish_Release_2025.3_Overview.pdf
Change-Id: Icc0e7b2bc775be6fa0f842670820319b79606507 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
show more ...
|
| 2682a0e7 | 17-Sep-2025 |
Kamran Hasan <khasan@nvidia.com> |
Aggregation: Add basic authentication support
Add support for basic authentication when connecting to aggregation sources. This allows satellite BMCs to be authenticated using username and password
Aggregation: Add basic authentication support
Add support for basic authentication when connecting to aggregation sources. This allows satellite BMCs to be authenticated using username and password credentials.
The implementation: - Stores credentials alongside URLs in AggregationSource struct - Validates credentials: no colons, max 40 chars, not empty strings - Creates Basic Auth headers using base64 encoding - Only sends Authorization header when both username and password exist - Adds PATCH handler for updating credentials independently - Prevents duplicate aggregation sources with same hostname - Cleans up credentials when aggregation sources are deleted
Tested: Manual testing with authenticated aggregation sources
Change-Id: Ide17a3c08a4a8f6b90a2ffcd2c798cbbec578db8 Signed-off-by: Kamran Hasan <khasan@nvidia.com>
show more ...
|