eiffel-community / etos

Eiffel Test Orchestration System
https://etos.readthedocs.io
Apache License 2.0
9 stars 6 forks source link

Update to use the v1 endpoint of the SSE server #193

Closed t-persson closed 11 months ago

t-persson commented 11 months ago

Applicable Issues

148

Description of the Change

A more robust implementation of the SSE client which will work with the v1 SSE endpoint of the ETOS API. This requires a change in the log listener eiffel-community/etos-suite-runner#45 and a small bug fix in the ETOS API eiffel-community/etos-api#47 I also wrote my own SSE client as the package we used was inadequate.

Alternate Designs

We could probably patch the client package we used, but they have a history of not merging PRs so I wanted to avoid that, we also could fork their project but the code we wrote is not that complex so that we need an external package.

Benefits

This new implementation is a lot more robust and will reconnect to the SSE server should we drop any events and becoming "desynced". We will also support more than just log events with this one and the shut down process from the ETOS API sse server is much cleaner.

Possible Drawbacks

It's a bit more complex since we cannot drop any events. We need to monitor this a lot more so that everything works as it should.

Sign-off

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.

Signed-off-by: Tobias Persson tobias.persson@axis.com