Commit graph

12 commits

Author SHA1 Message Date
David Douard
714fccc3c7 python: Fix black formatting after bump to 23.1.0 in pre-commit 2023-12-05 10:33:07 +01:00
Antoine Lambert
6e7bc49ec7 Harmonize listers parameters and add test to check mandatory ones
Ensure that all lister classes have the same set of mandatory parameters
in their constructors, notably: scheduler, url, instance and credentials.

Add a new test checking listers classes have mandatory parameters declared
in their constructors. The purpose is to avoid deployment issues on staging
or production environment as celery tasks can fail to be executed if mandatory
parameters are not handled by listers.

Reated to swh/infra/sysadm-environment#5030.
2023-09-06 11:55:34 +02:00
Nicolas Dandrimont
e785e67315 Hook up recently introduced options to all listers
Hopefully one day we'll be able to replace all of this mess with PEP692
TypedDict kwargs, but that's only on track for Python 3.12.
2022-12-05 16:33:45 +01:00
Antoine Lambert
dabb1a2ae5 Update instructions for running a lister in docker
Prefer to execute lister through a celery task as it also enables to
catch possible issues with task implementation.

Also use docker compose v2 commands.
2022-09-29 11:26:40 +02:00
Antoine Lambert
db6ce12e9e Refactor and deduplicate HTTP requests code in listers
Numerous listers were using the same page_request method or equivalent
in their implementation so prefer to deduplicate that code by adding
an http_request method in base lister class: swh.lister.pattern.Lister.

That method simply wraps a call to requests.Session.request and logs
some useful info for debugging and error reporting, also an HTTPError
will be raised if a request ends up with an error.

All listers using that new method now benefit of requests retry when
an HTTP error occurs thanks to the use of the http_retry decorator.
2022-09-26 10:48:40 +02:00
Antoine Lambert
b6c69e5075 aur: Create also a git origin for each listed package repository
It will enable to archive the history of the PKGBUILD file associated
to the AUR package.
2022-09-02 15:58:05 +02:00
Antoine Lambert
d76fbb3447 aur: Modify origin URL for listed packages
Use https://aur.archlinux.org/packages/<package_name> instead
of https://aur.archlinux.org/<package_name>.git
2022-09-02 15:57:57 +02:00
Antoine Lambert
92baa2b45c aur: Store packages index in memory instead of disk
Simplify code for downloading packages index as gzip and deflate
transfer-encodings are automatically decoded by requests, also
do not stream response for a couple of megabytes and store
HTTP responses in memory.

Also add more debug logs to track lister execution.
2022-09-02 15:48:20 +02:00
Valentin Lorentz
ce72969de5 aur: Simplify pathlib logic 2022-08-25 09:41:50 +02:00
Valentin Lorentz
b7ec6cb120 tests: Simplify origin comparison and improve pytest diff on failure
By using a single equality instead of checking len() then zip()
to check one by one, pytest can find the common/missing elements
and print them nicely when the two lists are unequal.
2022-08-24 17:21:24 +02:00
Valentin Lorentz
3ab90cc0cd aur: Fix broken ref 2022-08-19 14:14:37 +02:00
Franck Bret
97b353bf0b Arch User Repository (AUR) lister
Add 'aur' module to swh-lister with data fixtures and tests.
For now, origin url are package vcs (Git) url.
2022-08-19 12:43:15 +02:00