Device-side control of update: delaying, pausing, rescheduling

How to increase update-control-map expiry time ?

Is there way to reschedule an update to later time by user on client device based on user confirmation ?

Is there a way to pause all Artifact Installations by default ? any mender client configuration ?

Hi @nareshtech20,

I took the liberty to combine your posts for a more coherent discussion. According to the documentation, the situation is as follow:

  • you can essentially pause a deployment indefinitely by repeatedly setting pause through the update control map.
  • if a deployment has been aborted or cancelled, then it can not be directly rescheduled, as it will be in failed state
  • the mender.conf file does not provide a mechanism to block by default.

From the impression I get of your questions, my suggestion would rather be to not run the Mender client continuously, but invoke it once the user is ready to install an update. The idea is as follows:

  1. your GUI (or whatever) polls the Mender Server API to check for a deployment.
  2. if a deployment is active, you notify the user
  3. once the user confirms, you start the Mender Client to carry out the actual installation.

Greetz,
Josef

1 Like

Thank you @TheYoctoJester for combining these related posts.

Did not think of this approach of custom polling to mender server for active deployment.

Thought of leveraging mender clients flow to discover new update and check if its eligible based on device type/group & existing software version, if all conditions are met, then ask user’s confirmation.
If user want to either proceed or deny update, there is no issue, it follows update flow.
In case user want to postpone update to 1 hour later or to EOD (specific time) or remind after some time, how to handle this ?
is it advisable to update update-control-map in state scripts ? or through external script ?

Regards,
Naresh

Hi @nareshtech20,

Thought of leveraging mender clients flow to discover new update and check if its eligible based on device type/group & existing software version, if all conditions are met, then ask user’s confirmation.

This is what the Mender backend does. The device type and software versioning features, together with groups fulfill exactly that requirement, so a device is only presented with updates that are applicable to it.

If you need fine grained control, then the way is to use the update control maps over D-Bus, and not do it in state scripts but the application (or a subprocess) that interacts with the user.

Greetz,
Josef

1 Like

Hi @TheYoctoJester,

That’s great, if we have way to find active deployment for specific device based on all required criteria is met. Please share API to find active deployment for device.

Is there any update control map interface over DBus to reschedule update or repeated pause is the only solution ?

Regards,
Naresh