<?php
/**
* Sanity check for memcache servers.
*
* This function verifies that all memcache servers work.
*
* @param array &$hookinfo hookinfo
*/
function memcacheMonitor_hook_sanitycheck(&$hookinfo) {
assert('is_array($hookinfo)');
assert('array_key_exists("errors", $hookinfo)');
assert('array_key_exists("info", $hookinfo)');
try {
$servers = SimpleSAML_Memcache::getRawStats();
} catch (Exception $e) {
$hookinfo['errors'][] = '[memcacheMonitor] Error parsing memcache configuration: ' . $e->getMessage();
return;
}
$allOK = TRUE;
foreach ($servers as $group) {
foreach ($group as $server => $status) {
if ($status === FALSE) {
$hookinfo['errors'][] = '[memcacheMonitor] No response from server: ' . $server;
$allOK = FALSE;
}
}
}
if ($allOK) {
$hookinfo['info'][] = '[memcacheMonitor] All servers responding.';
}
}
?>
|