Disable Client Polling

Due to nature of our remote device it is not possible to have automatic updates, nor to poll in background to check for availability of updates as connectivity is not always available and we’d prefer to have client (user) click to check for updates.

I like the new(ish) client option to force update check but this would only work if mender client is running in background. Besides setting ridiculously long poll interval, is there a way to prevent auto polling?

We had the same scenario with our customers, and wrote our own client in the end using the rest api, which is one solution.

Thanks @dellgreen, it’s nice to have the API option so may have to go that route. Our app is developed using nodejs and the API may be decent way to manage updates. Thanks for your input.

Besides setting ridiculously long poll interval, is there a way to prevent auto polling?

Not at the moment.

We had the same scenario with our customers, and wrote our own client in the end using the rest api, which is one solution.

Interesting, the source of this custom client is not open by any chance?

Interesting, the source of this custom client is not open by any chance?

Unfortunately not

Any progress on that? We would also like to be able to trigger updates, either automatically at certain hours (during the night for example), or when the user decides via our app, but not at random time via polling interval.

Not from my side as I couldn’t spend more time on this but am still interested and will hopefully get back to it come June 2021

Same issue here. Is there anything new regarding this?

No news, but I think the answers here give the wrong impression, it’s totally possible to achieve this with today’s features. Using a super long (as in hundreds of years) polling time works just fine, and then you can use mender check-update to trigger a manual check.

Now, there is a possibility that the client may still check at certain times, for example after rebooting. If you want to be extra safe, use a Sync_Enter state script where you check a condition: Only if the user has initiated a check do you return success, if they haven’t, then you return failure, which causes the client to skip the update check. Be careful not to make mistakes here; if you keep returning failure always, then the client will never download any update again!

No news, but I think the answers here give the wrong impression, it’s totally possible to achieve this with today’s features. Using a super long (as in hundreds of years) polling time works just fine, and then you can use mender check-update to trigger a manual check.

Now, there is a possibility that the client may still check at certain times, for example after rebooting. If you want to be extra safe, use a Sync_Enter state script where you check a condition: Only if the user has initiated a check do you return success, if they haven’t, then you return failure, which causes the client to skip the update check. Be careful not to make mistakes here; if you keep returning failure always, then the client will never download any update again!

I think this workaround has a drawback. As far as I understand preventing the device from entering the Sync state also prevents inventory updates which might be undesired. You could still put the same logic into Enter_Download I guess. But IMHO it would be much clearer and easier to use to add the option to disable update polling to the mender client.