Honour new maintenance format (PR#835)

This commit is contained in:
f0o
2015-04-20 16:39:55 +00:00
parent 52846b2ec8
commit a2e4a0dcff
2 changed files with 22 additions and 2 deletions

View File

@@ -71,6 +71,22 @@ function GetRules($device) {
return dbFetchRows('SELECT alert_rules.* FROM alert_rules LEFT JOIN alert_map ON alert_rules.id=alert_map.rule WHERE alert_rules.disabled = 0 && ( (alert_rules.device_id = -1 || alert_rules.device_id = ? ) || alert_map.target = ? '.$where.' )',$params);
}
/**
* Check if device is under maintenance
* @param int $device Device-ID
* @return bool
*/
function IsMaintenance( $device ) {
$groups = GetGroupsFromDevice($device);
$params = array($device);
$where = "";
foreach( $groups as $group ) {
$where .= " || alert_schedule_items.target = ?";
$params[] = 'g'.$group;
}
return dbFetchCell('SELECT DISTINCT(alert_schedule.schedule_id) FROM alert_schedule LEFT JOIN alert_schedule_items ON alert_schedule.schedule_id=alert_schedule_items.schedule_id WHERE alert_schedule_items.target = ?'.$where.' LIMIT 1',$params);
}
/**
* Run all rules for a device
* @param int $device Device-ID
@@ -78,8 +94,8 @@ function GetRules($device) {
*/
function RunRules($device) {
global $debug;
$chk = dbFetchRow("SELECT id FROM alert_schedule WHERE alert_schedule.device_id = ? AND NOW() BETWEEN alert_schedule.start AND alert_schedule.end", array($device));
if( $chk['id'] > 0 ) {
if( IsMaintenance($device) > 0 ) {
echo "Under Maintenance, Skipping alerts.\r\n";
return false;
}
foreach( GetRules($device) as $rule ) {