<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/OpenBmc/bmcweb.git/redfish-core/include, branch master</title>
<subtitle>A do everything Redfish, KVM, GUI, and DBus webserver for OpenBMC (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/atom?h=master</id>
<link rel='self' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/'/>
<updated>2026-09-30T18:19:49+00:00</updated>
<entry>
<title>utils: add PrettyName utility function</title>
<updated>2026-09-30T18:19:49+00:00</updated>
<author>
<name>Akash Arunkumar</name>
<email>mirrorghost007@gmail.com</email>
</author>
<published>2026-06-25T06:35:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=552997940e1a06bc2fc43297d9b7492f008fea03'/>
<id>urn:sha1:552997940e1a06bc2fc43297d9b7492f008fea03</id>
<content type='text'>
Create a reusable utility function getPrettyName() in
utils/name_utils.hpp that can retrieve the PrettyName property from the
D-Bus xyz.openbmc_project.Inventory.Item interface.

The function accepts a JSON pointer parameter, allowing it to set the
PrettyName at any location in the response (e.g. within arrays or nested
objects). This makes it reusable across multiple components (Drives,
Processors, Memory, Chassis, etc.).

Relates-to: https://github.com/openbmc/bmcweb/issues/204

Tested:
- Built bmcweb with meson/ninja successfully
- Tested with https://gerrit.openbmc.org/c/openbmc/bmcweb/+/90364 and
  verified that PrettyName appears in the response
- Falls back to default name when PrettyName is empty

Change-Id: Iebd31b523797152b0e8e7ea8852f86b292fb5f55
Signed-off-by: Akash Arunkumar &lt;mirrorghost007@gmail.com&gt;
Signed-off-by: Justin Nguyen &lt;justinnanguyen@gmail.com&gt;
</content>
</entry>
<entry>
<title>redfish-core: Refactor getSnmpTrapClient lambda</title>
<updated>2026-09-30T11:54:29+00:00</updated>
<author>
<name>Yuvakumar Selvamani</name>
<email>yuvakumars@ami.com</email>
</author>
<published>2026-08-20T07:17:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=567ec017853ea0db243a2be3c86f7954082e3bc7'/>
<id>urn:sha1:567ec017853ea0db243a2be3c86f7954082e3bc7</id>
<content type='text'>
Extract the long D-Bus GetManagedObjects callback lambda in
getSnmpTrapClient() into a named function, afterGetSnmpTrapClient(), per
the &lt;10 line lambda coding standard in docs/COMMON_ERRORS.md. Call it
via dbus::utility::getManagedObjects() and std::bind_front(), matching
the pattern used by other GetManagedObjects call sites in the codebase.

afterGetSnmpTrapClient() takes the GetManagedObjects result by const
reference (const dbus::utility::ManagedObjectType&amp; resp), since the
callback only reads it.

Tested on AST2600 SoC (live D-Bus tested, phosphor-snmp installed).
- `GET /redfish/v1/EventService/Subscriptions/snmpbogus` (no matching
  D-Bus object)
  Expected: HTTP 404 Base.1.19.ResourceNotFound
  Actual:   HTTP 404 Base.1.19.ResourceNotFound
- `POST /redfish/v1/EventService/Subscriptions` with
  `{"Destination": "snmp://192.168.1.77:162", "Protocol": "SNMPv2c",
  "SubscriptionType": "SNMPTrap"}`, creating a real SNMP trap client
  on D-Bus (id snmp1)
  Expected: HTTP 201 Base.1.19.Created
  Actual:   HTTP 201 Base.1.19.Created
- `GET /redfish/v1/EventService/Subscriptions/snmp1`
  Expected: HTTP 200 with Destination matching the created client
  Actual:   HTTP 200, "Destination": "snmp://192.168.1.77:162" -
            confirms afterGetSnmpTrapClient() correctly walks the real
            GetManagedObjects result (now via const&amp;) and matches the
            id.
- Redfish Service Validator: 5840 Pass / 353 Warn / 0 Fail

Change-Id: I661d147f4639b05b87b586d3b1322a9ad3912958
Signed-off-by: Yuvakumar Selvamani &lt;yuvakumars@ami.com&gt;
</content>
</entry>
<entry>
<title>Refactor eventlog_utils respHandler lambdas</title>
<updated>2026-09-19T14:51:47+00:00</updated>
<author>
<name>Yuvakumar Selvamani</name>
<email>yuvakumars@ami.com</email>
</author>
<published>2026-08-17T12:01:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=384a6b3e04d20f615cbc33260b4fb572f8749818'/>
<id>urn:sha1:384a6b3e04d20f615cbc33260b4fb572f8749818</id>
<content type='text'>
The dBusEventLogEntryDelete and dBusLogServiceActionsClear functions
each contained an inline respHandler lambda that triggered the
long-lambda ast-grep rule, requiring an inline suppression
(// ast-grep-ignore: long-lambda).

This commit extracts each lambda into a separate named function,
afterDBusEventLogEntryDelete and afterDBusLogServiceActionsClear
respectively, and uses std::bind_front to handle the asynchronous
callback. This aligns the code with the preferred bmcweb pattern for
D-Bus callbacks, improves readability, and allows the removal of the
static analysis suppressions.

Tested on AST2600 SoC (with PACKAGECONFIG `redfish-dbus-log` enabled;
disabled by default).
- `DELETE .../EventLog/Entries/1` (real entry)
  Expected: HTTP 200 Base.1.19.Success, entry removed
  Actual:   HTTP 200 Base.1.19.Success, entry removed
- `DELETE .../EventLog/Entries/999` (nonexistent)
  Expected: HTTP 404 Base.1.19.ResourceNotFound
  Actual:   HTTP 404 Base.1.19.ResourceNotFound
- `POST .../EventLog/Actions/LogService.ClearLog`
  Expected: HTTP 200 Base.1.19.Success, all entries cleared
  Actual:   HTTP 200 Base.1.19.Success, all entries cleared
- RSV: 5845 Pass / 353 Warn / 0 Fail

Change-Id: I323a0813fef4f04622a71f27258fe9b1930ec6cd
Signed-off-by: Yuvakumar Selvamani &lt;yuvakumars@ami.com&gt;
</content>
</entry>
<entry>
<title>subprocessor: Add Status.State/Health to cores</title>
<updated>2026-09-17T21:04:52+00:00</updated>
<author>
<name>George Liu</name>
<email>liuxiwei@inspur.com</email>
</author>
<published>2023-07-14T06:57:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=58f34b5f9133c3a302acbf517aefefde2b9746cd'/>
<id>urn:sha1:58f34b5f9133c3a302acbf517aefefde2b9746cd</id>
<content type='text'>
Populate Redfish Status.Health and Status.State for processor core
resources

resource_utils::getResourceState() and getResourceHealth() are extended
to accept MapperServiceMap and use the first service implementing the
required interface. This avoids duplicate requests when multiple
services advertise the same interface for a core object

This commit also changes the iterator name in HEAD and GET path from
`it` to `coreIt` for better readability as well as passing coreId by
reference to avoid copies

Tested:

```
curl -k -X GET https://${bmc}/redfish/v1/Systems/system/Processors/cpu0/SubProcessors/core0
{
  ...
  "Status": {
    "Health": "OK",
    "State": "Enabled"
  }
}
```
- Where "State" can be "Present", "Available", "Enabled"

- Redfish Validator Passed

Change-Id: I5833541dceb9627b56b96e8235afcde78a09081f
Signed-off-by: Myung Bae &lt;myungbae@us.ibm.com&gt;
Signed-off-by: Justin Nguyen &lt;justinnanguyen@gmail.com&gt;
</content>
</entry>
<entry>
<title>Refactor remaining lambdas in dump utility</title>
<updated>2026-09-09T15:12:57+00:00</updated>
<author>
<name>Oliver Brewka</name>
<email>oliver.brewka@9elements.com</email>
</author>
<published>2026-08-18T14:57:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=d7dcab0b10ba6376a014267748869956917ead1d'/>
<id>urn:sha1:d7dcab0b10ba6376a014267748869956917ead1d</id>
<content type='text'>
Remove all remaining lambdas violating the lambda length rule.

Tested: Code compiles.
Validator was run on romulus in qemu with phosphor-debug-collector ibm
extension enabled to get access to /xyz/openbmc_project/dump/system.

Via the 'CreateDump' method empty dump entries were manually created
for:
/xyz/openbmc_project/dump/system
/xyz/openbmc_project/dump/bmc
/xyz/openbmc_project/dump/faultlog

```
busctl call xyz.openbmc_project.Dump.Manager /xyz/openbmc_project/dump/bmc \
    xyz.openbmc_project.Dump.Create CreateDump a{sv} 0
&gt; o "/xyz/openbmc_project/dump/bmc/entry/1"

busctl tree xyz.openbmc_project.Dump.Manager

`- /xyz
  `- /xyz/openbmc_project
    `- /xyz/openbmc_project/dump
      |- /xyz/openbmc_project/dump/bmc
      | `- /xyz/openbmc_project/dump/bmc/entry
      |   `- /xyz/openbmc_project/dump/bmc/entry/1
      |- /xyz/openbmc_project/dump/faultlog
      | `- /xyz/openbmc_project/dump/faultlog/entry
      |   `- /xyz/openbmc_project/dump/faultlog/entry/1
      |- /xyz/openbmc_project/dump/resource
      `- /xyz/openbmc_project/dump/system
        `- /xyz/openbmc_project/dump/system/entry
          `- /xyz/openbmc_project/dump/system/entry/1
```

Overwrite OperationStatus of /xyz/openbmc_project/dump/system/entry/1
for the entry to be added to the collection:
```
busctl set-property xyz.openbmc_project.Dump.Manager \
    /xyz/openbmc_project/dump/system/entry/1 \
    xyz.openbmc_project.Common.Progress Status \
    s xyz.openbmc_project.Common.Progress.OperationStatus.Completed \
```

Systems/Dump

Validating /redfish/v1/Systems/system/LogServices/Dump...
  - Pass: 14, Warn: 0, Fail: 0, Skip: 9
Validating /redfish/v1/Systems/system/LogServices/Dump/Entries...
  - Pass: 17, Warn: 0, Fail: 0, Skip: 30
Validating /redfish/v1/Systems/system/LogServices/Dump/Entries/1...
  - Pass: 10, Warn: 0, Fail: 0, Skip: 26

+--------------+--------------+--------------+--------------+
|     PASS     |     WARN     |     FAIL     |  NOT TESTED  |
+--------------+--------------+--------------+--------------+
|      41      |      0       |      0       |      65      |
+--------------+--------------+--------------+--------------+

Managers/Dump

Validating /redfish/v1/Managers/bmc/LogServices/Dump...
  - Pass: 14, Warn: 0, Fail: 0, Skip: 9
Validating /redfish/v1/Managers/bmc/LogServices/Dump/Entries...
  - Pass: 26, Warn: 0, Fail: 0, Skip: 58
Validating /redfish/v1/Managers/bmc/LogServices/Dump/Entries/1...
  - Pass: 9, Warn: 0, Fail: 0, Skip: 27
Validating /redfish/v1/Managers/bmc/LogServices/Dump/Entries/2...
  - Pass: 9, Warn: 0, Fail: 0, Skip: 27

+--------------+--------------+--------------+--------------+
|     PASS     |     WARN     |     FAIL     |  NOT TESTED  |
+--------------+--------------+--------------+--------------+
|      58      |      0       |      0       |     121      |
+--------------+--------------+--------------+--------------+

Managers/FaultLog

Validating /redfish/v1/Managers/bmc/LogServices/FaultLog...
  - Pass: 12, Warn: 0, Fail: 0, Skip: 9
Validating /redfish/v1/Managers/bmc/LogServices/FaultLog/Entries...
  - Pass: 13, Warn: 0, Fail: 0, Skip: 34
Validating /redfish/v1/Managers/bmc/LogServices/FaultLog/Entries/1...
  - Pass: 6, Warn: 0, Fail: 0, Skip: 30

+--------------+--------------+--------------+--------------+
|     PASS     |     WARN     |     FAIL     |  NOT TESTED  |
+--------------+--------------+--------------+--------------+
|      31      |      0       |      0       |      73      |
+--------------+--------------+--------------+--------------+

Change-Id: Iaac0b9b14b898b079765eb18f513aaea3c417740
Signed-off-by: Oliver Brewka &lt;oliver.brewka@9elements.com&gt;
</content>
</entry>
<entry>
<title>Inline dump util function</title>
<updated>2026-09-07T15:19:59+00:00</updated>
<author>
<name>Oliver Brewka</name>
<email>oliver.brewka@9elements.com</email>
</author>
<published>2026-08-18T14:45:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=9c04ad4e3bd95065076ab8aca00c1584fea369de'/>
<id>urn:sha1:9c04ad4e3bd95065076ab8aca00c1584fea369de</id>
<content type='text'>
It should be avoided using static for header only functions.

Tested: Code compiles.

Change-Id: Icb944588fc6f64c663960bf40da29e2de9e0b8bd
Signed-off-by: Oliver Brewka &lt;oliver.brewka@9elements.com&gt;
</content>
</entry>
<entry>
<title>Fix createDump progress logic</title>
<updated>2026-09-07T15:06:19+00:00</updated>
<author>
<name>Oliver Brewka</name>
<email>oliver.brewka@9elements.com</email>
</author>
<published>2026-09-04T15:45:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=0dafdc28e9b839a57c3b86a229e763552c6f3bc4'/>
<id>urn:sha1:0dafdc28e9b839a57c3b86a229e763552c6f3bc4</id>
<content type='text'>
The current logic in createDump always sets the isProgressIntfPresent
flag to true, even if it is not present at all. It breaks out of the
search loop on the first interface that may not be
xyz.openbmc_project.Common.Progress.

This can cause a task to time out and not be handled
properly since completion is only reported when the Progress interface
a) exists and b) reports Status=Completed.

Tested: Manually tested on romulus running in qemu with ibm dump
extension enabled.

POST request to Managers/Dump action
```
curl -v -k  POST 'https://localhost:44443/redfish/v1/Managers/bmc/
LogServices/Dump/Actions/LogService.CollectDiagnosticData' \
    -H 'X-Auth-Token: '"$BMCWEB_SESSION_TOKEN_ROML"'' \
    -H "Content-Type: application/json" -d \
    '{"DiagnosticDataType":"Manager", \
    "OEMDiagnosticDataType":"Manager"}'

{
  "@odata.id": "/redfish/v1/TaskService/Tasks/2",
  "@odata.type": "#Task.v1_4_3.Task",
  "HidePayload": false,
  "Id": "2",
  "Messages": [
    {
      "@odata.type": "#Message.v1_1_1.Message",
      "Message": "The task with Id '2' has started.",
      "MessageArgs": [
        "2"
      ],
      "MessageId": "TaskEvent.1.0.TaskStarted",
      "MessageSeverity": "OK",
      "Resolution": "None."
    }
  ],
  "Name": "Task 2",
  "Payload": {
    "HttpHeaders": [
      "user-agent: curl/8.20.0",
      "accept: */*",
      "content-length: 66"
    ],
    "HttpOperation": "POST",
    "JsonBody": "{\"DiagnosticDataType\":\"Manager\",\"OEMDiagnosticDataType\":\"Manager\"}",
    "TargetUri": "/redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData"
  },
  "PercentComplete": 0,
  "StartTime": "2026-09-07T15:10:26+00:00",
  "TaskMonitor": "/redfish/v1/TaskService/TaskMonitors/2",
  "TaskState": "Running",
  "TaskStatus": "OK"
* Connection #1 to host localhost:44443 left intact
}

```

dbus tree dump manager
```
busctl tree xyz.openbmc_project.Dump.Manager
`- /xyz
  `- /xyz/openbmc_project
    `- /xyz/openbmc_project/dump
      |- /xyz/openbmc_project/dump/bmc
      | `- /xyz/openbmc_project/dump/bmc/entry
      |   |- /xyz/openbmc_project/dump/bmc/entry/1
      |   |- /xyz/openbmc_project/dump/bmc/entry/2
      |   `- /xyz/openbmc_project/dump/bmc/entry/3
      |- /xyz/openbmc_project/dump/faultlog
      |- /xyz/openbmc_project/dump/resource
      `- /xyz/openbmc_project/dump/system
        `- /xyz/openbmc_project/dump/system/entry
          |- /xyz/openbmc_project/dump/system/entry/1
          `- /xyz/openbmc_project/dump/system/entry/2
```

bmcweb debug log
```
Sep 07 15:11:02 romulus bmcweb[200]: [dump_utils.hpp:655]
/xyz/openbmc_project/dump/bmc/entry/3: Dump creation task is in progress
Sep 07 15:11:02 romulus bmcweb[200]: [dump_utils.hpp:655]
/xyz/openbmc_project/dump/bmc/entry/3: Dump creation task is in progress
Sep 07 15:11:02 romulus bmcweb[200]: [dump_utils.hpp:679]
/xyz/openbmc_project/dump/bmc/entry/3: Dump creation task completed

```

Systems/Dump

Set machine state to Quiesced
```
busctl set-property xyz.openbmc_project.State.Host0 \
    /xyz/openbmc_project/state/host0 \
    xyz.openbmc_project.State.Host CurrentHostState \
    s "xyz.openbmc_project.State.Host.HostState.Quiesced"
```

POST request to Systems/Dump action

```
curl -v -k  POST 'https://localhost:44443/redfish/v1/Systems/system/
LogServices/Dump/Actions/LogService.CollectDiagnosticData' \
    -H 'X-Auth-Token: '"$BMCWEB_SESSION_TOKEN_ROML"'' \
    -H "Content-Type: application/json" -d \
    '{"DiagnosticDataType":"OEM", \
    "OEMDiagnosticDataType":"Systems"}'

{
  "@odata.id": "/redfish/v1/TaskService/Tasks/3",
  "@odata.type": "#Task.v1_4_3.Task",
  "HidePayload": false,
  "Id": "3",
  "Messages": [
    {
      "@odata.type": "#Message.v1_1_1.Message",
      "Message": "The task with Id '3' has started.",
      "MessageArgs": [
        "3"
      ],
      "MessageId": "TaskEvent.1.0.TaskStarted",
      "MessageSeverity": "OK",
      "Resolution": "None."
    }
  ],
  "Name": "Task 3",
  "Payload": {
    "HttpHeaders": [
      "user-agent: curl/8.20.0",
      "accept: */*",
      "content-length: 61"
    ],
    "HttpOperation": "POST",
    "JsonBody": "{\"DiagnosticDataType\":\"OEM\",\"OEMDiagnosticDataType\":\"System\"}",
    "TargetUri": "/redfish/v1/Systems/system/LogServices/Dump/Actions/LogService.CollectDiagnosticData"
  },
  "PercentComplete": 0,
  "StartTime": "2026-09-07T15:14:53+00:00",
  "TaskMonitor": "/redfish/v1/TaskService/TaskMonitors/3",
  "TaskState": "Running",
  "TaskStatus": "OK"
* Connection #1 to host localhost:44443 left intact
}

busctl tree xyz.openbmc_project.Dump.Manager
`- /xyz
  `- /xyz/openbmc_project
    `- /xyz/openbmc_project/dump
      |- /xyz/openbmc_project/dump/bmc
      | `- /xyz/openbmc_project/dump/bmc/entry
      |   |- /xyz/openbmc_project/dump/bmc/entry/1
      |   |- /xyz/openbmc_project/dump/bmc/entry/2
      |   |- /xyz/openbmc_project/dump/bmc/entry/3
      |   `- /xyz/openbmc_project/dump/bmc/entry/4
      |- /xyz/openbmc_project/dump/faultlog
      |- /xyz/openbmc_project/dump/resource
      `- /xyz/openbmc_project/dump/system
        `- /xyz/openbmc_project/dump/system/entry
          |- /xyz/openbmc_project/dump/system/entry/1
          |- /xyz/openbmc_project/dump/system/entry/2
          `- /xyz/openbmc_project/dump/system/entry/3

```

Set /xyz/openbmc_project/dump/system/entry/3 status to Completed

```
busctl set-property xyz.openbmc_project.Dump.Manager \
    /xyz/openbmc_project/dump/system/entry/3 \
    xyz.openbmc_project.Common.Progress Status \
    s "xyz.openbmc_project.Common.Progress.OperationStatus.Completed"

journalctl -u bmcewb
Sep 07 15:17:24 romulus bmcweb[200]: [dump_utils.hpp:679]
/xyz/openbmc_project/dump/system/entry/3: Dump creation task completed
```
Change-Id: I8efc2588e31d9b838b6a4bf1d33f08b589ed5808
Signed-off-by: Oliver Brewka &lt;oliver.brewka@9elements.com&gt;
</content>
</entry>
<entry>
<title>Refactor createDump function</title>
<updated>2026-09-07T12:20:55+00:00</updated>
<author>
<name>Oliver Brewka</name>
<email>oliver.brewka@9elements.com</email>
</author>
<published>2026-08-18T14:35:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=4f97d934fbf63f0c8d9ce23c4d411fb162afa6a8'/>
<id>urn:sha1:4f97d934fbf63f0c8d9ce23c4d411fb162afa6a8</id>
<content type='text'>
The function as well as the task callback consisted of multiple lambdas
that exceeded the lambda length rule.

Extract each lambda into separate functions.

Tested: Code compiles.

Manually tested on romulus running in qemu with ibm dump extension
enabled.

POST Managers/bmc

```
curl -v -k  POST 'https://localhost:44443/redfish/v1/Managers/bmc/
LogServices/Dump/Actions/LogService.CollectDiagnosticData' \
    -H 'X-Auth-Token: '"$BMCWEB_SESSION_TOKEN_ROML"'' \
    -H "Content-Type: application/json" -d \
    '{"DiagnosticDataType":"Manager", \
    "OEMDiagnosticDataType":"Manager"}'

{
  "@odata.id": "/redfish/v1/TaskService/Tasks/0",
  "@odata.type": "#Task.v1_4_3.Task",
  "HidePayload": false,
  "Id": "0",
  "Messages": [
    {
      "@odata.type": "#Message.v1_1_1.Message",
      "Message": "The task with Id '0' has started.",
      "MessageArgs": [
        "0"
      ],
      "MessageId": "TaskEvent.1.0.TaskStarted",
      "MessageSeverity": "OK",
      "Resolution": "None."
    }
  ],
  "Name": "Task 0",
  "Payload": {
    "HttpHeaders": [
      "user-agent: curl/8.20.0",
      "accept: */*",
      "content-length: 68"
    ],
    "HttpOperation": "POST",
    "JsonBody": "{\"DiagnosticDataType\":\"Manager\",
    \"OEMDiagnosticDataType\":\"Manager\"}",
    "TargetUri": "/redfish/v1/Managers/bmc/LogServices/Dump/Actions/
    LogService.CollectDiagnosticData"
  },
  "PercentComplete": 0,
  "StartTime": "2026-09-01T03:39:42-07:00",
  "TaskMonitor": "/redfish/v1/TaskService/TaskMonitors/0",
  "TaskState": "Running",
  "TaskStatus": "OK"
* Connection #1 to host localhost:4343 left intact
}

```
bmcweb log output:
```
Sep 01 14:58:28 romulus bmcweb[200]: [dump_utils.hpp:720] Dump Created.
                            Path: /xyz/openbmc_project/dump/bmc/entry/2
...
Sep 01 14:58:53 romulus bmcweb[200]: [dump_utils.hpp:564] /xyz/
openbmc_project/dump/bmc/entry/2: Dump creation task is in progress
Sep 01 14:58:53 romulus bmcweb[200]: [dump_utils.hpp:564] /xyz/
openbmc_project/dump/bmc/entry/2: Dump creation task is in progress
Sep 01 14:58:53 romulus bmcweb[200]: [dump_utils.hpp:588] /xyz/
openbmc_project/dump/bmc/entry/2: Dump creation task completed

```

dump/bmc tree after two POST request
```
busctl tree xyz.openbmc_project.Dump.Manager

`- /xyz
  `- /xyz/openbmc_project
    `- /xyz/openbmc_project/dump
      |- /xyz/openbmc_project/dump/bmc
      | `- /xyz/openbmc_project/dump/bmc/entry
      |   |- /xyz/openbmc_project/dump/bmc/entry/1
      |   |- /xyz/openbmc_project/dump/bmc/entry/2
      |- /xyz/openbmc_project/dump/faultlog
      |- /xyz/openbmc_project/dump/resource
      `- /xyz/openbmc_project/dump/system
```

POST Systems/system

CreateDump only works if the host is either in "Running", "Quiesced" or
"TransitioningToOff" state.

```
busctl set-property xyz.openbmc_project.State.Host0
    /xyz/openbmc_project/state/host0  \
    xyz.openbmc_project.State.Host \
    CurrentHostState \
    s "xyz.openbmc_project.State.Host.HostState.Quiesced"
```

```
curl -v -k  POST 'https://localhost:44443/redfish/v1/Systems/system/
LogServices/Dump/Actions/LogService.CollectDiagnosticData' \
    -H 'X-Auth-Token: '"$BMCWEB_SESSION_TOKEN_ROML"'' \
    -H "Content-Type: application/json" -d \
    '{"DiagnosticDataType":"OEM", "OEMDiagnosticDataType":"System"}'

{
  "@odata.id": "/redfish/v1/TaskService/Tasks/2",
  "@odata.type": "#Task.v1_4_3.Task",
  "HidePayload": false,
  "Id": "2",
  "Messages": [
    {
      "@odata.type": "#Message.v1_1_1.Message",
      "Message": "The task with Id '2' has started.",
      "MessageArgs": [
        "2"
      ],
      "MessageId": "TaskEvent.1.0.TaskStarted",
      "MessageSeverity": "OK",
      "Resolution": "None."
    }
  ],
  "Name": "Task 2",
  "Payload": {
    "HttpHeaders": [
      "user-agent: curl/8.20.0",
      "accept: */*",
      "content-length: 62"
    ],
    "HttpOperation": "POST",
    "JsonBody": "{\"DiagnosticDataType\":\"OEM\",
    \"OEMDiagnosticDataType\":\"System\"}",
    "TargetUri": "/redfish/v1/Systems/system/LogServices/Dump/Actions/
    LogService.CollectDiagnosticData"
  },
  "PercentComplete": 0,
  "StartTime": "2026-09-01T03:54:01-07:00",
  "TaskMonitor": "/redfish/v1/TaskService/TaskMonitors/2",
  "TaskState": "Running",
  "TaskStatus": "OK"
* Connection #1 to host localhost:4343 left intact
}
```

Set system dump entry to completed:
```
busctl set-property xyz.openbmc_project.Dump.Manager /xyz/
openbmc_project/dump/system/entry/1 \
xyz.openbmc_project.Common.Progress Status  \
s "xyz.openbmc_project.Common.Progress.OperationStatus.Completed"
```

bmcweb log output:
```
Sep 02 11:26:44 romulus bmcweb[200]: [dump_utils.hpp:804] Dump Created.
Path: /xyz/openbmc_project/dump/system/entry/1
...
Sep 02 11:28:13 romulus bmcweb[200]: [dump_utils.hpp:672] /xyz/
openbmc_project/dump/system/entry/1: Dump creation task completed

```
busctl tree xyz.openbmc_project.Dump.Manager
```
`- /xyz
  `- /xyz/openbmc_project
    `- /xyz/openbmc_project/dump
      |- /xyz/openbmc_project/dump/bmc
      | `- /xyz/openbmc_project/dump/bmc/entry
      |   |- /xyz/openbmc_project/dump/bmc/entry/1
      |   |- /xyz/openbmc_project/dump/bmc/entry/2
      |- /xyz/openbmc_project/dump/faultlog
      |- /xyz/openbmc_project/dump/resource
      `- /xyz/openbmc_project/dump/system
        `- /xyz/openbmc_project/dump/system/entry
          `- /xyz/openbmc_project/dump/system/entry/1

```
Change-Id: Id48b4643fcb634405b06db928e9a5c9d951f3ee4
Signed-off-by: Oliver Brewka &lt;oliver.brewka@9elements.com&gt;
</content>
</entry>
<entry>
<title>Fix unchecked optional value in dump createTask</title>
<updated>2026-09-03T12:29:02+00:00</updated>
<author>
<name>Oliver Brewka</name>
<email>oliver.brewka@9elements.com</email>
</author>
<published>2026-08-24T11:12:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=ebc3bff983cb94ede6ca80f0664cd7108ea8ec59'/>
<id>urn:sha1:ebc3bff983cb94ede6ca80f0664cd7108ea8ec59</id>
<content type='text'>
In order to silence clang-tidy, check payload value.

Tested: Code compiles. clang-tidy runs through.

Change-Id: Ib9db2552b0c9f8974728b8afe909a138d948b278
Signed-off-by: Oliver Brewka &lt;oliver.brewka@9elements.com&gt;
</content>
</entry>
<entry>
<title>Break out dump / faultlog log services</title>
<updated>2026-09-03T12:25:00+00:00</updated>
<author>
<name>Oliver Brewka</name>
<email>oliver.brewka@9elements.com</email>
</author>
<published>2026-08-18T11:02:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/OpenBmc/bmcweb.git/commit/?id=ae6cec26a4f80a5be05674843f50554e16fc5602'/>
<id>urn:sha1:ae6cec26a4f80a5be05674843f50554e16fc5602</id>
<content type='text'>
Similar to how other log services got broken out into own header files,
do the same for dump / faultlog.

A new dump utility header has been created, request handler and route
register function went into manager / systems log service header files
respectively.

Code logic stays untouched in this patch.

Tested: Code compiles. Unit test runs through.

Validator was run on romulus in qemu with phosphor-debug-collector ibm
extension enabled to get access to /xyz/openbmc_project/dump/system.

Via the 'CreateDump' method empty dump entries were manually created
for:
/xyz/openbmc_project/dump/system
/xyz/openbmc_project/dump/bmc
/xyz/openbmc_project/dump/faultlog

```
busctl call xyz.openbmc_project.Dump.Manager \
    /xyz/openbmc_project/dump/bmc \
    xyz.openbmc_project.Dump.Create \
    CreateDump a{sv} 0

&gt; o "/xyz/openbmc_project/dump/bmc/entry/1"

busctl tree xyz.openbmc_project.Dump.Manager

`- /xyz
  `- /xyz/openbmc_project
    `- /xyz/openbmc_project/dump
      |- /xyz/openbmc_project/dump/bmc
      | `- /xyz/openbmc_project/dump/bmc/entry
      |   |- /xyz/openbmc_project/dump/bmc/entry/1
      |   |- /xyz/openbmc_project/dump/bmc/entry/2
      |   |- /xyz/openbmc_project/dump/bmc/entry/3
      |   |- /xyz/openbmc_project/dump/bmc/entry/4
      |   |- /xyz/openbmc_project/dump/bmc/entry/5
      |   `- /xyz/openbmc_project/dump/bmc/entry/6
      |- /xyz/openbmc_project/dump/faultlog
      | `- /xyz/openbmc_project/dump/faultlog/entry
      |   `- /xyz/openbmc_project/dump/faultlog/entry/1
      |- /xyz/openbmc_project/dump/resource
      `- /xyz/openbmc_project/dump/system
        `- /xyz/openbmc_project/dump/system/entry
          `- /xyz/openbmc_project/dump/system/entry/1
```

Overwrite OperationStatus of /xyz/openbmc_project/dump/system/entry/1
for the entry to be added to the collection:

```
busctl set-property xyz.openbmc_project.Dump.Manager \
    /xyz/openbmc_project/dump/system/entry/1 \
    xyz.openbmc_project.Common.Progress Status \
    s xyz.openbmc_project.Common.Progress.OperationStatus.Completed \
```

Systems/Dump

Validating /redfish/v1/Systems/system/LogServices/Dump...
  - Pass: 14, Warn: 0, Fail: 0, Skip: 9
Validating /redfish/v1/Systems/system/LogServices/Dump/Entries...
  - Pass: 17, Warn: 0, Fail: 0, Skip: 30
Validating /redfish/v1/Systems/system/LogServices/Dump/Entries/1...
  - Pass: 10, Warn: 0, Fail: 0, Skip: 26

+--------------+--------------+--------------+--------------+
|     PASS     |     WARN     |     FAIL     |  NOT TESTED  |
+--------------+--------------+--------------+--------------+
|      41      |      0       |      0       |      65      |
+--------------+--------------+--------------+--------------+

Managers/Dump
Validating /redfish/v1/Managers/bmc/LogServices/Dump...
  - Pass: 14, Warn: 0, Fail: 0, Skip: 9
Validating /redfish/v1/Managers/bmc/LogServices/Dump/Entries...
  - Pass: 70, Warn: 0, Fail: 0, Skip: 162
Validating /redfish/v1/Managers/bmc/LogServices/Dump/Entries/1...
  - Pass: 11, Warn: 0, Fail: 0, Skip: 25
Validating /redfish/v1/Managers/bmc/LogServices/Dump/Entries/2...
  - Pass: 11, Warn: 0, Fail: 0, Skip: 25
Validating /redfish/v1/Managers/bmc/LogServices/Dump/Entries/3...
  - Pass: 9, Warn: 0, Fail: 0, Skip: 27
Validating /redfish/v1/Managers/bmc/LogServices/Dump/Entries/4...
  - Pass: 9, Warn: 0, Fail: 0, Skip: 27
Validating /redfish/v1/Managers/bmc/LogServices/Dump/Entries/5...
  - Pass: 9, Warn: 0, Fail: 0, Skip: 27
Validating /redfish/v1/Managers/bmc/LogServices/Dump/Entries/6...
  - Pass: 9, Warn: 0, Fail: 0, Skip: 27

+--------------+--------------+--------------+--------------+
|     PASS     |     WARN     |     FAIL     |  NOT TESTED  |
+--------------+--------------+--------------+--------------+
|     142      |      0       |      0       |     329      |
+--------------+--------------+--------------+--------------+

Managers/FaultLog

Validating /redfish/v1/Managers/bmc/LogServices/FaultLog...
  - Pass: 12, Warn: 0, Fail: 0, Skip: 9
Validating /redfish/v1/Managers/bmc/LogServices/FaultLog/Entries...
  - Pass: 13, Warn: 0, Fail: 0, Skip: 34
Validating /redfish/v1/Managers/bmc/LogServices/FaultLog/Entries/1...
  - Pass: 6, Warn: 0, Fail: 0, Skip: 30

+--------------+--------------+--------------+--------------+
|     PASS     |     WARN     |     FAIL     |  NOT TESTED  |
+--------------+--------------+--------------+--------------+
|      31      |      0       |      0       |      73      |
+--------------+--------------+--------------+--------------+

Change-Id: I6379f877149c545b3b3bfcda8510c6ee1085dcf9
Signed-off-by: Oliver Brewka &lt;oliver.brewka@9elements.com&gt;
</content>
</entry>
</feed>
