Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial confirmationBase implementation #165

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

UVV-gh
Copy link
Contributor

@UVV-gh UVV-gh commented Sep 4, 2023

Roast me 😼

This is a first round of confirmationBase end-point implementation, see more discussions on that in this thread.

The workflow assumes that confirmation can be issued much later than requested, therefore a fixed 5 seconds timeout is used to check whether it was actually issued (in case of a daemon). I believe with more testing a better approach might be implemented. In case of "run once" the main thread simply waits for the confirmation.

What is not there yet, but should be added to improve the functionality:

  • Size of an artifact can be sent to a user to provide more info
  • AutoConfirmation is not implemented. I guess the DBus interface to a user backend can be extended for that.

Let me know what you think.

@ejoerns ejoerns added the enhancement New feature or request label Sep 5, 2023
@UVV-gh
Copy link
Contributor Author

UVV-gh commented Oct 4, 2023

Any feedback on it so far?

@ejoerns
Copy link
Member

ejoerns commented Dec 5, 2023

@UVV-gh Many thanks for your work on this! Unfortunately, I have not had time yet to play around with this new hawkbit feature to understand better how well your approach already fits and what is still missing, but what I have looked through looks very promising. 👍

I'd be interested in feedback from others who have an actual use case for this. (My personal 'use case' so far would just be a demo).

Signed-off-by: Vyacheslav Yurkov <[email protected]>
When enabled, the polling uses confirmationBase end point of Hawkbit.

Signed-off-by: Vyacheslav Yurkov <[email protected]>
Initial implementation of Hawkbit's confirmationBase end point. This
version allows to send a request to a custon user backend/software,
which is supposed to implement RaucInstallConfirmation DBus interface
and be capable to make a decision whether an installation of new version
is possible/desired at the moment and accept or decline it.

See
https://eclipse.dev/hawkbit/rest-api/rootcontroller-api-guide.html#_get_tenantcontrollerv1controlleridconfirmationbase
for more into on the API end point.

Signed-off-by: Vyacheslav Yurkov <[email protected]>
@UVV-gh UVV-gh force-pushed the feature/confirmation-base-ready branch from df3b3fc to b23138f Compare March 9, 2024 08:51
Fixed 10 seconds is used to stop waiting for a confirmation. This is
done to avoid deadlock when a new confirmation request comes and the
client's plugin needs more time to process the request.

Signed-off-by: Vyacheslav Yurkov <[email protected]>
Signed-off-by: Vyacheslav Yurkov <[email protected]>
@UVV-gh UVV-gh force-pushed the feature/confirmation-base-ready branch from b23138f to 655f937 Compare March 9, 2024 10:31
Instead of providing the default "denied" we keep the confirmation
request open.

Signed-off-by: Vyacheslav Yurkov <[email protected]>
@UVV-gh
Copy link
Contributor Author

UVV-gh commented Mar 9, 2024

  • The branch has been rebased on top of latest master
  • A fixed timeout has been added when rauc-hawkbit-updater runs in a daemon mode
  • DBus policy for confirmation plugins is provided

@anthonio9
Copy link

There's is a use case for this functionality in a product I'm developing right now, I'll try to add it to my client app software and make a review. It can take a bit of time though.

@UVV-gh
Copy link
Contributor Author

UVV-gh commented Apr 9, 2024

Reminder to take a look at it :) @ejoerns @Bastian-Krause

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants