Required tests
Most of them are implemented in http://anonscm.debian.org/gitweb/?p=users/spaillard/qa-mirrors.git;a=summary, should be splitted in little modules and usable by nagios checks.
for each referenced mirror (and even the ones disabled, in order to check when they are available/fixed again), we should test :
- IPv4/IPv6
- ftp/http/rsync
check that longfilenames are not cut (cf. http://www.debian.org/mirrors/ftpmirror#settings )
- check that HTTPD accepts every virtual host
for /debian/
- which architectures are available (choose a reference package available for
- all arches, diff the listing of the relevant directory in pool/)
- check that sources are available (*.diff.gz, *.dsc, *.orig.tar.gz)
Packages.gz present while packages for this arch are dropped in pool (-> 404 errors)
consistency (are packages referenced in Packages.gz always available) -> new ftpsync
- maybe we could check one of the last package of the list (z*) one hour before the usual end of mirror (trace/$localmirror)
- freshness:
- project/trace/ftp-master.debian.org
- debian/dists/unstable/main/source/
- project/trace/$local_trace_file (should be present only if sync successful)
- look for the upstream mirroring chain, in order to :
- generate a global graph
- guess in which mirror is the problem
- compute the time passed between 2 mirrors updates
- the own trace file of the checked mirror must be older (UTC) than any of the
- ther trace files present
for /debian-cd/
- which architectures are available
- use a trace directory to make QA easier
- generate web pages to only show mirrors that match the users desire (for example, sparc+dvd)
Bonus
- use only the FTP/HTTP headers (for example HEAD command package libwww-perl)
- schedule the test some hours later if the first attempt fails
- alert the mirror's maintainer if the second attempt fails
- record and graph for each mirror: disponibility, freshness and responsiveness
- output a list with only valid and up to date mirrors, sorted for a given country by reliability/freshness
