Jelle van der Waa
Jelle van der Waa
Queries for removing old flagrequests in postgresql Listing old flagrequests ``` SELECT fr.id,fr.created,fr.pkgbase,fr.pkgver,fr.pkgrel,fr.epoch FROM packages_flagrequest as fr INNER JOIN packages as ps ON (fr.pkgbase = ps.pkgbase AND fr.pkgver != ps.pkgver...
Missing are the packages of with the pkgbase does not exists anymore in the repos.
Remove packages. This isn't handled by our code yet. ``` select id,pkgbase from packages_flagrequest as fr where not exists (select * from packages where fr.pkgbase = packages.pkgbase) ```
Correct query to fetch to be removed packages. ``` select fr.id, fr.pkgbase, fr.created, fr.pkgver from packages_flagrequest fr left outer join packages p on p.pkgbase = fr.pkgbase and p.repo_id = fr.repo_id...
One case, unflag for $pkg can be simply fixed by the following code in ```def unflag(req, ...)```: ``` FlagRequest.objects.filter(pkgbase=pkg.pkgbase, repo__name__iexact=repo, pkgver=pkg.pkgver, epoch=pkg.epoch).delete() ``` But it will also remove a FlagRequest...
Also it seems that [testing] => [core] moves are not handled and aren't removed as well.
Commit https://github.com/archlinux/archweb/commit/7d162a095333b0e2c31a96940e5915848caf4d5c should handle deletions of packages.
``` #!/usr/bin/python from datetime import datetime, timedelta import gnupg gpg = gnupg.GPG(gnupghome='/etc/pacman.d/gnupg') now = datetime.now() for key in gpg.list_keys(): expires = key['expires'] # No expiry date if expires == '':...
Archweb already stores the expired date: ``` from datetime import timedelta from django.utils import timezone from devel.models import DeveloperKey now = timezone.now() for key in DeveloperKey.objects.all(): # No expiry if...
There are two checks required: One for Package packages with almost expired keys, this can be handled in archweb but won't be fast: ``` from main.models import Package from devel.models...