Skip to content

Fix a problem with ETOS base test runner validation#126

Merged
t-persson merged 2 commits intoeiffel-community:mainfrom
t-persson:fix-etos-base-testrunner
Jan 8, 2026
Merged

Fix a problem with ETOS base test runner validation#126
t-persson merged 2 commits intoeiffel-community:mainfrom
t-persson:fix-etos-base-testrunner

Conversation

@t-persson
Copy link
Collaborator

Applicable Issues

fixes: eiffel-community/etos#483

Description of the Change

Fixes a problem where if the "expires_in" key is not returned from the container registry, we default to 0 without returning the token causing the token to "expire" and we'll never be able to authenticate.
Fixed this by returning the token after we retrieved it (the behavior we had before) so that it may be used right after.
I also had to add a new header for ghcr otherwise we'd get a 401(or 403 I don't remember).

Added some more debugging information that was helpful during my work on this issue.

Alternate Designs

Possible Drawbacks

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

@t-persson t-persson requested a review from a team as a code owner December 8, 2025 14:29
@t-persson t-persson requested review from andmat900 and fredjn and removed request for a team December 8, 2025 14:29
@t-persson t-persson force-pushed the fix-etos-base-testrunner branch from 8986d69 to 59509b1 Compare December 9, 2025 07:43
@t-persson
Copy link
Collaborator Author

Rebased

self.tokens[manifest_url] = {
"token": response_json.get("token"),
"expire": time.time()
+ response_json.get("expires_in", 0.0)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it correct to default to 0? Can this be interpreted as "expires immediately" and lead to excessive regeneration of tokens?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It can indeed be interpreted as "expires immediately". That is the reason for this change.
With this change this token will be used once and removed next iteration

:param manifest_url: URL the token has been stored for.
:return: A token or None.
"""
self.logger.info("Getting token for %r", manifest_url)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is info the right logging level for this purpose?

Copy link
Collaborator Author

@t-persson t-persson Dec 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say so, yes. Considering everything else in this package is info level and they are relevant together

@t-persson t-persson merged commit 2ed587f into eiffel-community:main Jan 8, 2026
5 checks passed
@t-persson t-persson deleted the fix-etos-base-testrunner branch January 8, 2026 10:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ETOS API cannot validate test runner containers from ghcr registry

3 participants