History log of /openbmc/bmcweb/redfish-core/lib/update_service.hpp (Results 1 – 25 of 163)
Revision Date Author Comments
# f90af522 18-Mar-2025 Abiola Asojo <abiola.asojo@ibm.com>

Fix getting a response for wrong URI

Resolve getting a response for wrong URI in Update Service
URI (/redfish/v1/UpdateService/FirmwareInventory/)

- After the fix a wrong URI that partially matches

Fix getting a response for wrong URI

Resolve getting a response for wrong URI in Update Service
URI (/redfish/v1/UpdateService/FirmwareInventory/)

- After the fix a wrong URI that partially matches the
last characters in a valid URI now gets a 404 as shown
in the example below :

$ curl -k -H "X-Auth-Token: $bmc_token" -X GET
https://$bmc/redfish/v1/UpdateService/FirmwareInventory/5e
{
"error": {
"@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The resource at the URI '/redfish/v1/
UpdateService/FirmwareInventory/5e' was not found.",
"MessageArgs": [
"/redfish/v1/UpdateService/FirmwareInventory/5e"
],
"MessageId": "Base.1.19.ResourceMissingAtURI",
"MessageSeverity": "Critical",
"Resolution": "Place a valid resource at the URI or
correct the URI and resubmit the request."
}
],
"code": "Base.1.19.ResourceMissingAtURI",
"message": "The resource at the URI '/redfish/v1/
UpdateService/FirmwareInventory/5e' was not found."
}

- Two common errors were fixed with the changes
- imprecise-matching
- not-responding-to-404

- The fix also includes changes to the software images to
only look under /xyz/openbmc_project/software/.

Tested: No longer getting a response for wrong URI in Update
Service URI.

Change-Id: I72d8452b8ca1ef095d093a57bc14fade380be617
Signed-off-by: Abiola Asojo <abiola.asojo@ibm.com>

show more ...


# 1940677a 04-Mar-2025 Gunnar Mills <gmills@us.ibm.com>

Up the default code update timeout

This timer is the time to write the image to /tmp/images/, the code
update app to untar and create a xyz.openbmc_project.Software.Activation
interface.

We have se

Up the default code update timeout

This timer is the time to write the image to /tmp/images/, the code
update app to untar and create a xyz.openbmc_project.Software.Activation
interface.

We have seen this take just over 25 seconds a few times, in one case it
took 30 seconds, and this times out. We are using a large image, 150MB+,
and other requests are going on but believe our use case is valid, so
bump the default timeout to 50 seconds.

In the times it has timed out, the time appears split between 1 and 2.
With 1) writing the image to /tmp/images and inotify firing and
2) phosphor-version-software-manager untarring the image and creating
the interface.

In the future this code should go away with the new code update, this
commit is more to note code updates can be slow due to the BMC's limited
resources and larger code update images exist.

```
// Can conclude the timer was set at 13:55:27...
Wed Feb 5 13:55:42 2025 xxx phosphor-version-software-manager: Untaring /tmp/images/f285ea12-b506-4182-86bc-b9706f09bc1f to /tmp/images/imagek9D7Iu
Wed Feb 5 13:55:52 2025 xxx bmcweb: [ERROR update_service.hpp:427] FW image may has already been uploaded to server
Wed Feb 5 13:55:52 2025 xxx bmcweb: [ERROR update_service.hpp:426] Timed out waiting for firmware object being created
Wed Feb 5 13:55:52 2025 xxx bmcweb: [CRITICAL error_messages.cpp:287] Internal Error /usr/src/debug/bmcweb/1.0+git/redfish-core/lib/update_service.hpp(438:41) `void redfish::afterAvailbleTimerAsyncWait(const std::shared_ptr<bmcweb::AsyncResp>&, const boost::system::error_code&)`:
```

Tested: Since bumping this timeout haven't hit this timeout.

Change-Id: I9f2ce9a24a55d72484113b3fbe226dc76b0bd2a5
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


# d98a2f93 06-Feb-2025 Ed Tanous <etanous@nvidia.com>

Remove getIoContext from Request object

At one point it was thought that we could pass the io_context object
through the request object, and have the potential to run multiple
io_context instances (

Remove getIoContext from Request object

At one point it was thought that we could pass the io_context object
through the request object, and have the potential to run multiple
io_context instances (one per connection).

Given the safety refactoring we had to do in
9838eb20341568971b9543c2187372d20daf64aa that idea is on ice for the
moment, and would need a major rethink of code to be viable. For the
moment, and in prep for
https://gerrit.openbmc.org/c/openbmc/bmcweb/+/75668

make sure all calls are pulling from the same io object.

Tested: Unit tests pass. Redfish service validator passes.

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

show more ...


# 504af5a0 03-Feb-2025 Patrick Williams <patrick@stwcx.xyz>

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: I2f0b9d0fb6e01ed36a2f34c750ba52de3b6d15d1
Signed-off-by: Patrick Williams <p

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: I2f0b9d0fb6e01ed36a2f34c750ba52de3b6d15d1
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# d7857201 28-Jan-2025 Ed Tanous <etanous@nvidia.com>

Fix includes

Clang-tidy misc-include-cleaner appears to now be enforcing
significantly more headers than previously. That is overall a good
thing, but forces us to fix some issues. This commit is

Fix includes

Clang-tidy misc-include-cleaner appears to now be enforcing
significantly more headers than previously. That is overall a good
thing, but forces us to fix some issues. This commit is largely just
taking the clang-recommended fixes and checking them in. Subsequent
patches will fix the more unique issues.

Note, that a number of new ignores are added into the .clang-tidy file.
These can be cleaned up over time as they're understood. The majority
are places where boost includes a impl/x.hpp and x.hpp, but expects you
to use the later. include-cleaner opts for the impl, but it isn't clear
why.

Change-Id: Id3fdd7ee6df6c33b2fd35626898523048dd51bfb
Signed-off-by: Ed Tanous <etanous@nvidia.com>
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


# 40e9b92e 10-Sep-2024 Ed Tanous <etanous@nvidia.com>

Use SPDX identifiers

SPDX identifiers are simpler, and reduce the amount of cruft we have in
code files. They are recommended by linux foundation, and therefore we
should do as they allow.

This pa

Use SPDX identifiers

SPDX identifiers are simpler, and reduce the amount of cruft we have in
code files. They are recommended by linux foundation, and therefore we
should do as they allow.

This patchset does not intend to modify any intent on any existing
copyrights or licenses, only to standardize their inclusion.

[1] https://www.linuxfoundation.org/blog/blog/copyright-notices-in-open-source-software-projects

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

show more ...


# deae6a78 11-Nov-2024 Ed Tanous <etanous@nvidia.com>

Move getProperty calls to utility

Having all dbus calls run through the same utility reduces the amount of
generated code, and more importantly, gives us a place where we can log
the requests and re

Move getProperty calls to utility

Having all dbus calls run through the same utility reduces the amount of
generated code, and more importantly, gives us a place where we can log
the requests and responses to help with debugging.

Tested: Redfish service validator passes.

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

show more ...


# 6a37140a 03-Dec-2024 Ed Tanous <etanous@nvidia.com>

Put simple update behind an option

4e338b2313f9f2a91aa1fb36693e36a328d58933 Removed tftp update support
from the codebase, but left SimpleUpdate in a non functional state.

Given that a number of fo

Put simple update behind an option

4e338b2313f9f2a91aa1fb36693e36a328d58933 Removed tftp update support
from the codebase, but left SimpleUpdate in a non functional state.

Given that a number of forks have implemented the HTTPS/SCP versions of
simple update, we don't want to fully delete the code at this time, so
for the moment put it behind an option flag.

Tested: WIP

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

show more ...


# 48fb20b9 17-Nov-2024 Ed Tanous <etanous@nvidia.com>

Update error types to use dmtf

In a prior patch these were InvalidUpload, an openbmc oem defined
message. Map the messages to dmtf base registry messages, primarily
MissingOrMalformedPart

Tested:

Update error types to use dmtf

In a prior patch these were InvalidUpload, an openbmc oem defined
message. Map the messages to dmtf base registry messages, primarily
MissingOrMalformedPart

Tested: on last patch of series.

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

show more ...


# c87294a6 17-Nov-2024 Ed Tanous <etanous@nvidia.com>

Remove InvalidUpload response code

Invalid response is something from the openbmc registry, so it's not
a valid thing to return as a response code. For this patch, remove
the generated error messag

Remove InvalidUpload response code

Invalid response is something from the openbmc registry, so it's not
a valid thing to return as a response code. For this patch, remove
the generated error message, and replace the one place it's used with
internalError.

Tested: On last patch in series.

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

show more ...


# afc474ae 09-Oct-2024 Myung Bae <myungbae@us.ibm.com>

Format readjson

clang-format may potentially reformat the readJson calls if they may
have more keys or key names are longer. This makes formatting in a way
that's readable by forcing to break a line

Format readjson

clang-format may potentially reformat the readJson calls if they may
have more keys or key names are longer. This makes formatting in a way
that's readable by forcing to break a line for each key using an
empty-comment (`//`) each line.

It also allows trivially alphabetizing the list such that new additions
are less likely to have merge conflicts.

Tested:
- Check whitespace only.
- Code compiles.
- Redfish Service Validator with the same results before this

Change-Id: I3824a8c4faa9fa7c820d5d2fab6b565404926e2c
Signed-off-by: Ed Tanous <etanous@nvidia.com>
Signed-off-by: Myung Bae <myungbae@us.ibm.com>

show more ...


# 89449bbe 12-Aug-2024 Jagpal Singh Gill <paligill@gmail.com>

update service: update the updateable BMC

Update the updateable BMC rather than functional BMC because for dual
image systems functional BMC is not updated in place.

Tested:
```
> curl -k -H "X-Aut

update service: update the updateable BMC

Update the updateable BMC rather than functional BMC because for dual
image systems functional BMC is not updated in place.

Tested:
```
> curl -k -H "X-Auth-Token: $token" -H "Content-Type: application/octet-stream" -X POST -T obmc-phosphor-image-romulus-20240529184214.static.mtd.tar https://${bmc}/redfish/v1/UpdateService/update
{
"@odata.id": "/redfish/v1/TaskService/Tasks/0",
"@odata.type": "#Task.v1_4_3.Task",
"Id": "0",
"TaskState": "Running",
"TaskStatus": "OK"
}
```

Change-Id: Ia11bd276ba5ac1d849942b33a7b6c50e74335024
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>

show more ...


# 6be832e2 10-Sep-2024 Ed Tanous <etanous@nvidia.com>

Remove duplicated block comments

Static analysis flags that these two comments are redundant[1], which
seem to be duplicated a lot in copyright headers. Although there is a
larger discussion that c

Remove duplicated block comments

Static analysis flags that these two comments are redundant[1], which
seem to be duplicated a lot in copyright headers. Although there is a
larger discussion that can likely be had.

[1] https://sonarcloud.io/project/issues?issueStatuses=OPEN%2CCONFIRMED&id=edtanous_bmcweb&open=AY9_HYjgKXKyw1ZFwgVP

Tested: Comment change only. Code compiles.

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

show more ...


# 4ff0f1f4 04-Sep-2024 Ed Tanous <etanous@nvidia.com>

static -> inline

Declaring a function static in a header makes no sense, because a header
isn't a compile unit. Find all the issues and replace them with inline.

Change-Id: Icfc2b72d94b41a3a880da1

static -> inline

Declaring a function static in a header makes no sense, because a header
isn't a compile unit. Find all the issues and replace them with inline.

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

show more ...


# bd79bce8 16-Aug-2024 Patrick Williams <patrick@stwcx.xyz>

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda forma

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda formatting also changed, so we have made changes to the
organization default style format to better handle lambda formatting.

See I5e08687e696dd240402a2780158664b7113def0e for updated style.
See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.

Change-Id: Iceec1dc95b6c908ec6c21fb40093de9dd18bf11a
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 587090cd 12-Aug-2024 Jagpal Singh Gill <paligill@gmail.com>

update service: use return path for task callback

Currently the update service is using the start update path for
monitoring the activation interfaces, but instead it needs to use the
object path re

update service: use return path for task callback

Currently the update service is using the start update path for
monitoring the activation interfaces, but instead it needs to use the
object path returned by start update API. By using the returned path the
changes to the activation interface are passed over to the task status.
For more details refer to design -
https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/65738
https://gerrit.openbmc.org/c/openbmc/docs/+/65739

Tested:
Start update with ApplyTime as onReset
```
> curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -X POST -F UpdateParameters="{\"Targets\":[\"/redfish/v1/UpdateService/FirmwareInventory/3c956be0\"],\"@Redfish.OperationApplyTime\":\"OnReset\"};type=application/json" -F "UpdateFile=@obmc-phosphor-image-romulus-20240529184214.static.mtd.tar;type=application/octet-stream" https://${bmc}/redfish/v1/UpdateService/update
{
"@odata.id": "/redfish/v1/TaskService/Tasks/0",
"@odata.type": "#Task.v1_4_3.Task",
"Id": "0",
"TaskState": "Running",
"TaskStatus": "OK"
}

...

> curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/TaskService/Tasks/0
{
"@odata.id": "/redfish/v1/TaskService/Tasks/0",
"@odata.type": "#Task.v1_4_3.Task",
"EndTime": "2024-08-12T07:35:42+00:00",
"HidePayload": false,
"Id": "0",
"Messages": [
...
},
"PercentComplete": 100,
"StartTime": "2024-08-12T07:35:15+00:00",
"TaskMonitor": "/redfish/v1/TaskService/TaskMonitors/0",
"TaskState": "Completed",
"TaskStatus": "OK"
}
```

Change-Id: Ib17c5da329361fc59b0a1923ace214a8bf9e8371
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>

show more ...


# 4e338b23 14-Jun-2024 Jagpal Singh Gill <paligill@gmail.com>

update service: remove tftp simple update flow

Remove the flow for tftp simple update as this is an insecure method and
there is no active user for this.

Redfish service validator passing:
```
Elap

update service: remove tftp simple update flow

Remove the flow for tftp simple update as this is an insecure method and
there is no active user for this.

Redfish service validator passing:
```
Elapsed time: 0:04:33
metadataNamespaces: 3727
pass: 5184
passAction: 16
passGet: 213
passRedfishUri: 205
skipNoSchema: 3
skipOptional: 3535
unvalidated: 1
warnDeprecated: 5
warningPresent: 6
```

Change-Id: I466dcb09be4ee806451abe91ab86d8b3b001a333
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>

show more ...


# 539d8c6b 19-Jun-2024 Ed Tanous <ed@tanous.net>

Consistently use generated enumerations

This commit causes all of Redfish to use generated enum values for enum
types. Using generated code prevents problems, and makes it more clear
what types are

Consistently use generated enumerations

This commit causes all of Redfish to use generated enum values for enum
types. Using generated code prevents problems, and makes it more clear
what types are allowed.

Doing this found two places where we had structs that didn't fulfill the
schema. They have been commented, but will be fixed with a breaking
change at some point in the future.

Tested: WIP

Change-Id: I5fdd2f2dfb6ec05606a522e1f4e331f982c8e476
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


# 08f61d53 17-Jul-2024 Jagpal Singh Gill <paligill@gmail.com>

update service: simplify object path lookup

Simplify the object path lookup for the update interface by placing it
at the same object path as the version interface. This involves moving
the update i

update service: simplify object path lookup

Simplify the object path lookup for the update interface by placing it
at the same object path as the version interface. This involves moving
the update interface to /xyz/openbmc_project/software/<swId> rather than
/xyz/openbmc_project/software/<deviceX>.
This change is based on -
https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/65738
https://gerrit.openbmc.org/c/openbmc/docs/+/65739

Related Commit from phosphor-bmc-code-mgmt -
https://gerrit.openbmc.org/c/openbmc/phosphor-bmc-code-mgmt/+/70668

Tested -
FirmwareInventory as TargetURI:
```
> curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -X POST -F UpdateParameters="{\"Targets\":[\"/redfish/v1/UpdateService/FirmwareInventory/3c956be0\"],\"@Redfish.OperationApplyTime\":\"Immediate\"};type=application/json" -F "UpdateFile=@obmc-phosphor-image-romulus-20240529184214.static.mtd.tar;type=application/octet-stream" https://${bmc}/redfish/v1/UpdateService/update
{
"@odata.id": "/redfish/v1/TaskService/Tasks/0",
"@odata.type": "#Task.v1_4_3.Task",
"Id": "0",
"TaskState": "Running",
"TaskStatus": "OK"
}
```

/redfish/v1/Managers/bmc as Target URI:
```
> curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -X POST -F UpdateParameters="{\"Targets\":[\"/redfish/v1/Managers/bmc\"],\"@Redfish.OperationApplyTime\":\"Immediate\"};type=application/json" -F "UpdateFile=@obmc-phosphor-image-romulus-20240529184214.static.mtd.tar;type=application/octet-stream" https://${bmc}/redfish/v1/UpdateService/update
{
"@odata.id": "/redfish/v1/TaskService/Tasks/0",
"@odata.type": "#Task.v1_4_3.Task",
"Id": "0",
"TaskState": "Running",
"TaskStatus": "OK"
}
```

Redfish service validator passing:
```
Elapsed time: 0:04:33
metadataNamespaces: 3727
pass: 5184
passAction: 16
passGet: 213
passRedfishUri: 205
skipNoSchema: 3
skipOptional: 3535
unvalidated: 1
warnDeprecated: 5
warningPresent: 6
```

Change-Id: I6c22a904cecaf8e3043706990ae3a71da8f5addf
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>

show more ...


# ac1e1246 11-Jul-2024 Ed Tanous <ed@tanous.net>

Make multipart use consistent parse

This is an instance of common error #5. Fix it.

Tested: Code compiles. Inspection only.

Change-Id: I5580a9789930ffab6513a03689b633d5201e72a4
Signed-off-by: Ed

Make multipart use consistent parse

This is an instance of common error #5. Fix it.

Tested: Code compiles. Inspection only.

Change-Id: I5580a9789930ffab6513a03689b633d5201e72a4
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


# 9dae4dee 03-Jun-2024 Jagpal Singh Gill <paligill@gmail.com>

add D-Bus interface for unstructured HTTP push

Add the D-Bus interface for unstructured HTTP push update. Unstructured
HTTP push updates are discouraged in favor of Multipart-form based
updates, hen

add D-Bus interface for unstructured HTTP push

Add the D-Bus interface for unstructured HTTP push update. Unstructured
HTTP push updates are discouraged in favor of Multipart-form based
updates, hence D-Bus interface has been added only for BMC updates for
backward compatibility. Fore more details refer to [1].

Tested:
```
> curl -k -H "X-Auth-Token: $token" -H "Content-Type: application/octet-stream" -X POST -T obmc-phosphor-image-romulus-20240529184214.static.mtd.tar https://${bmc}/redfish/v1/UpdateService/update
{
"@odata.id": "/redfish/v1/TaskService/Tasks/0",
"@odata.type": "#Task.v1_4_3.Task",
"Id": "0",
"TaskState": "Running",
"TaskStatus": "OK"
}
```

[1]: https://www.dmtf.org/sites/default/files/standards/documents/DSP2062_1.0.1.pdf

Change-Id: I365c0c188190032cb191940072399d9abd8a87b3
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>

show more ...


# e93abac6 14-Jun-2024 Ginu George <ginugeorge@ami.com>

Pass redfishPropertyName earlier argument

It was pointed out that the setDbusProperty method should have an end
that approximately matches dbus-send and busctl set-property in its
arguments, to aid

Pass redfishPropertyName earlier argument

It was pointed out that the setDbusProperty method should have an end
that approximately matches dbus-send and busctl set-property in its
arguments, to aid with debug. This seems reasonable.

Tested: Redfish service validator passes.

Change-Id: Ic20295d93c71c957e3e76704e1eda9da187861b1
Signed-off-by: Ginu George <ginugeorge@ami.com>
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


# 9c95be77 03-Jun-2024 Jagpal Singh Gill <paligill@gmail.com>

remove unstructured HTTP patch for ApplyOptions

Remove the support for Unstructured HTTP patch as the main user of this
Redfish API is IBM and they only use this API to set the ApplyTime as
immediat

remove unstructured HTTP patch for ApplyOptions

Remove the support for Unstructured HTTP patch as the main user of this
Redfish API is IBM and they only use this API to set the ApplyTime as
immediate. Hence ApplyTime will be passed as immediate (as default) for
Unstructured HTTP POST updates. Modify the get for ApplyTime to only
return immediate.

Tested:
Patch operation removal test:
```
> curl -k -H "X-Auth-Token: $token" -H "Content-Type: application/json" -X PATCH -d '{"HttpPushUriOptions":{"HttpPushUriApplyTime":{"ApplyTime":"Immediate"}}}' https://${bmc}/redfish/v1/UpdateService
{
"error": {
"@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The HTTP method is not allowed on this resource.",
"MessageArgs": [],
"MessageId": "Base.1.16.0.OperationNotAllowed",
"MessageSeverity": "Critical",
"Resolution": "None."
}
],
"code": "Base.1.16.0.OperationNotAllowed",
"message": "The HTTP method is not allowed on this resource."
}
}
```

ApplyTime get test:
```
> curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/UpdateService
{
"@odata.id": "/redfish/v1/UpdateService",
"@odata.type": "#UpdateService.v1_11_1.UpdateService",
"Actions": {
"#UpdateService.SimpleUpdate": {
"TransferProtocol@Redfish.AllowableValues": [
"HTTPS"
],
"target": "/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate"
}
},
"Description": "Service for Software Update",
"FirmwareInventory": {
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory"
},
"HttpPushUri": "/redfish/v1/UpdateService/update",
"HttpPushUriOptions": {
"HttpPushUriApplyTime": {
"ApplyTime": "Immediate"
}
},
"Id": "UpdateService",
"MaxImageSizeBytes": 31457280,
"MultipartHttpPushUri": "/redfish/v1/UpdateService/update",
"Name": "Update Service",
"ServiceEnabled": true
}
```

Change-Id: I25d21119d74a3411cd1fd581c9d56e1e9e1604f8
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>

show more ...


# 049079f6 02-Jun-2024 Jagpal Singh Gill <paligill@gmail.com>

update service: update applytime value

Update interface has been updated to use ApplyTime from ApplyTime
interface. This helps to avoid any conversions between the values. Hence
update the BMCWeb to

update service: update applytime value

Update interface has been updated to use ApplyTime from ApplyTime
interface. This helps to avoid any conversions between the values. Hence
update the BMCWeb to reflect this change.

Tested:
```
curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -X POST -F UpdateParameters="{\"Targets\":[\"/redfish/v1/UpdateService/FirmwareInventory/3c956be0\"],\"@Redfish.OperationApplyTime\":\"Immediate\"}
;type=application/json" -F "UpdateFile=@obmc-phosphor-image-romulus-20240529184214.static.mtd.tar;type=application/octet-stream" https://${bmc}/redfish/v1/UpdateService/update
{
"@odata.id": "/redfish/v1/TaskService/Tasks/2",
"@odata.type": "#Task.v1_4_3.Task",
"Id": "2",
"TaskState": "Running",
"TaskStatus": "OK"
}
```

Change-Id: I311d8048d80616cc8933c3e32ca44b4cfa64b1e9
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>

show more ...


# de0c960c 29-Apr-2024 Jagpal Singh Gill <paligill@gmail.com>

updateservice: add start update D-Bus interface

Add the start update D-Bus interface based flow for multi-form content
path. This involves mapping the TargetURI to the corresponding
serviceName and

updateservice: add start update D-Bus interface

Add the start update D-Bus interface based flow for multi-form content
path. This involves mapping the TargetURI to the corresponding
serviceName and objectPath which hosts the specific D-Bus interface.
As per discussion with Redfish community both ResourceURI and
FirmwareInventory Redfish URI can be used as TargetURI. Current
implementation already allows /redfish/v1/Managers/<bmc>, hence support
for this specific ResourceURI has been preserved. New implementation
adds FirmwareInventory Redfish URI for TargetURI as default option.
https://redfishforum.com/thread/1054.
For more details on design refer to -
https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/65738
https://gerrit.openbmc.org/c/openbmc/docs/+/65739

Tested: Redfish Validator and Build passes.
multipart form data update request with Resource URI as target
```
curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" \
-X POST -F UpdateParameters="{\"Targets\":[\"/redfish/v1/Managers/bmc\"],\"@Redfish.OperationApplyTime\":\"Immediate\"};type=application/json" \
-F "UpdateFile=@obmc-phosphor-image-romulus-20240425222313.static.mtd.all.tar;type=application/octet-stream" \
https://${bmc}/redfish/v1/UpdateService/update
{
"@odata.id": "/redfish/v1/TaskService/Tasks/0",
"@odata.type": "#Task.v1_4_3.Task",
"Id": "0",
"TaskState": "Running",
"TaskStatus": "OK"
}
```

multipart form data update request with Firmware Inventory URI as target
```
curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" \
-X POST -F UpdateParameters="{\"Targets\":[\"/redfish/v1/Managers/bmc\"],\"@Redfish.OperationApplyTime\":\"Immediate\"};type=application/json" \
-F "UpdateFile=@obmc-phosphor-image-romulus-20240509003505.static.mtd.all.tar;type=application/octet-stream" \
https://${bmc}/redfish/v1/UpdateService/update
{
"@odata.id": "/redfish/v1/TaskService/Tasks/1",
"@odata.type": "#Task.v1_4_3.Task",
"Id": "1",
"TaskState": "Running",
"TaskStatus": "OK"
}
```

Change-Id: Id46de79d3af8834630a793678a6fc0e859295afe
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>

show more ...


1234567