Support DBus API for querying for and triggering an update
Description
Risk & mitigation
Market Goal
Attachments
relates to
Checklist
Activity

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
UnassignedUnassignedReporter
Kristian AmlieKristian AmlieLabels
Epic Name
DBus: Query and trigger updateGoals
NonePriority
(None)Backlog
noStory Points
56
Details
Details
Assignee
Reporter

Labels
Epic Name
Goals
Priority
Backlog
Story Points
Zendesk Support
Linked Tickets
Zendesk Support
Linked Tickets
Zendesk Support

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