Support DBus API for querying for and triggering an update

Description

Acceptance criteria:

  • There is a DBus API for querying whether or not an update is available. The call must return information about the update.

  • There is a DBus API for triggering an update.

  • It is possible to turn off or hinder the poll based update checking

    • The exact details of this still need to be worked out

  • There is a DBus API for querying the properties of the installed update (artifact_provides values)

  • (Stretch goal) It is possible to get a changelog for the new update as part of the update check, which is taken from the "Description" field of the Mender Artifact in the Mender Server (under Releases)

Feature branch: feature-dbus_update_api

Risk & mitigation

None

Market Goal

None

Attachments

1
0% Done
Loading...

relates to

Checklist

Activity

Show:

Kristian Amlie July 5, 2021 at 8:18 AM

We might want to consider implementing a D-Bus signal also here, to allow for a scenario where the client is still driving the queries, and notifies the UI when something is available.

Kristian Amlie December 4, 2020 at 10:34 AM

FYI, we decided in a feature team meeting not to add any DBus endpoint for configuring intervals. See this comment for more details.

Kristian Amlie December 2, 2020 at 5:08 PM

, : I'm thinking that the basic mechanism for disabling poll based update checks is to set the interval to zero in the config file. Simple and effective.

But I was also considering having a DBus endpoint for setting this value on the fly. This could be useful for example for UIs that have a setting like "check for update every X hours". The brute force approach to this is to adjust the config file, and restart the client, but this is quite nasty, and has many pitfalls (what if an update is in progress?). I'm leaning towards adding an endpoint for it, but what you think? Scope creep?

Kristian Amlie December 2, 2020 at 8:55 AM

Yeah, ok, I see what you mean. It does actually change status from nothing to "pending" in a dynamic deployment. But this is ok, I think. The important thing is that it's not listed as "in progress".

Krzysztof Jaśkiewicz December 1, 2020 at 1:31 PM

The device will be set to pending at the moment you click the deploy button

this depends on the deployment type; for dynamic deployment, it's possible that at the moment you click the deploy button nothing will happen and the device will be added to the deployment (with `pending` status) when it will ask for the deployment using /deployments/next

the rest of the status transitions are done by the device, so yes, the device will not show up as `in progress`

Details

Assignee

Reporter

Labels

Epic Name

Goals

None

Priority

Backlog

Story Points

Zendesk Support

Checklist

Created November 27, 2020 at 1:28 PM
Updated June 25, 2024 at 12:02 PM