diff options
author | Remi Collet <remi@remirepo.net> | 2019-11-22 10:10:29 +0100 |
---|---|---|
committer | Remi Collet <remi@remirepo.net> | 2019-11-22 10:10:29 +0100 |
commit | e260cdb427d62a7f8e21c7fcb321b59320bffe72 (patch) | |
tree | 72eec5d3fbf521781d0e1312b82f13984f44b1d5 /check.php | |
parent | 58452c5c30947fce84cdde7357f8fc90e3e9c700 (diff) |
improve monitoring reporting about offline / corrupted mirror
Diffstat (limited to 'check.php')
-rwxr-xr-x | check.php | 45 |
1 files changed, 33 insertions, 12 deletions
@@ -1,5 +1,9 @@ #!/usr/bin/env php <?php + +define('ERR_OFFLINE', -1); +define('ERR_CONTENT', -2); + $cli = (php_sapi_name()=="cli"); if ($cli) { chdir(__DIR__); @@ -10,7 +14,7 @@ if ($cli) { <head> <meta content="text/html; charset=utf-8" http-equiv="content-type" /> <title>Les RPM de Remi - Mirror check</title> - <link href="fedora/17/remi/i386/repoview/layout/repostyle.css" type="text/css" rel="stylesheet" /> + <link href="enterprise/8/remi/x86_64/repoview/layout/repostyle.css" type="text/css" rel="stylesheet" /> <meta content="index,follow" name="robots" /> <link rel="shortcut icon" href="/favicon.ico" /> </head> @@ -31,12 +35,12 @@ if ($cli) { <?php } $repos = array( + 'enterprise/8' => 'Enterprise Linux 8', 'enterprise/7' => 'Enterprise Linux 7', 'enterprise/6' => 'Enterprise Linux 6', - 'enterprise/5' => 'Enterprise Linux 5', - 'fedora/22' => 'Fedora 22', - 'fedora/21' => 'Fedora 21', - 'fedora/20' => 'Fedora 20', + 'fedora/31' => 'Fedora 31', + 'fedora/30' => 'Fedora 30', + 'fedora/29' => 'Fedora 29', ); $subs = array( 'remi', @@ -120,16 +124,25 @@ $deprecated = array( 'http://mirror.pw/remi/', ); function getRepoTime($uri) { - $xml = @simplexml_load_file($uri.'/repodata/repomd.xml'); - if ($xml && $xml->revision) { + $ctx = stream_context_create([ + 'http' => [ + 'timeout' => 1.5, + ] + ]); + $txt = @file_get_contents($uri . '/repodata/repomd.xml', false, $ctx); + if (!$txt) { + return ERR_OFFLINE; + } + $xml = @simplexml_load_string($txt); + if ($xml && $xml->revision>100000) { return intval($xml->revision); } - return 0; + return ERR_CONTENT; } if (isset($_GET['mirror']) && isset($repos[$_GET['mirror']])) { $path = $_GET['mirror']; } else { - $path = 'enterprise/7'; + $path = 'enterprise/8'; } if (isset($_GET['repo']) && in_array($_GET['repo'], $subs)) { $repo = $_GET['repo']; @@ -170,7 +183,11 @@ if ($ref) { } else { // Child $pids = array(); $loc = getRepoTime($mirror.$full); - if ($ref == $loc) { + if ($loc == ERR_OFFLINE) { + printf("%50.50s : ** Unreachable **\n", $mirror); + } else if ($loc == ERR_CONTENT) { + printf("%50.50s : ** Corrupted **\n", $mirror); + } else if ($ref == $loc) { printf("%50.50s : Ok\n", $mirror); } else if ($loc) { printf("%50.50s : %s\n", $mirror, date('r', $loc)); @@ -183,9 +200,13 @@ if ($ref) { } flush(); $host = parse_url($mirror, PHP_URL_HOST); - printf("<li><a href='%s'>%s</a> ", $mirror, $host); + //printf("<li><a href='%s'>%s</a> ", $mirror, $host); $loc = getRepoTime($mirror.$full); - if ($ref == $loc) { + if ($loc == ERR_OFFLINE) { + printf("<li><a href='%s'>%s</a> <b>Unreachable</b></li>\n", $mirror, $mirror); + } else if ($loc == ERR_CONTENT) { + printf("<li><a href='%s'>%s</a> <b>Corrupted</b></li>\n", $mirror, $mirror); + } else if ($ref == $loc) { printf("<li><a href='%s'>%s</a> Ok</li>\n", $mirror, $mirror); } else if ($loc) { printf("<li><a href='%s'>%s</a> %s</li>\n", $mirror, $mirror, date('r', $loc)); |