Tidy up alert output info for poller cli (#4578)

This commit is contained in:
Neil Lathwood
2016-09-25 16:01:58 +01:00
committed by Tony Murray
parent 0c0c553d74
commit 8b68429a06
2 changed files with 10 additions and 7 deletions

View File

@@ -160,13 +160,14 @@ function RunRules($device)
return false;
}
foreach (GetRules($device) as $rule) {
echo " #".$rule['id'].":";
c_echo('Rule %p#'.$rule['id'].' (' . $rule['name'] . '):%n ');
$inv = json_decode($rule['extra'], true);
if (isset($inv['invert'])) {
$inv = (bool) $inv['invert'];
} else {
$inv = false;
}
d_echo(PHP_EOL);
$chk = dbFetchRow("SELECT state FROM alerts WHERE rule_id = ? && device_id = ? ORDER BY id DESC LIMIT 1", array($rule['id'], $device));
$sql = GenSQL($rule['rule']);
$qry = dbFetchRows($sql, array($device));
@@ -185,30 +186,31 @@ function RunRules($device)
}
if ($doalert) {
if ($chk['state'] === "2") {
echo " SKIP ";
c_echo('Status: %ySKIP');
} elseif ($chk['state'] >= "1") {
echo " NOCHG ";
c_echo('Status: %bNOCHG');
} else {
$extra = gzcompress(json_encode(array('contacts' => GetContacts($qry), 'rule'=>$qry)), 9);
if (dbInsert(array('state' => 1, 'device_id' => $device, 'rule_id' => $rule['id'], 'details' => $extra), 'alert_log')) {
if (!dbUpdate(array('state' => 1, 'open' => 1), 'alerts', 'device_id = ? && rule_id = ?', array($device,$rule['id']))) {
dbInsert(array('state' => 1, 'device_id' => $device, 'rule_id' => $rule['id'], 'open' => 1,'alerted' => 0), 'alerts');
}
echo " ALERT ";
c_echo(PHP_EOL . 'Status: %rALERT');
}
}
} else {
if ($chk['state'] === "0") {
echo " NOCHG ";
c_echo('Status: %bNOCHG');
} else {
if (dbInsert(array('state' => 0, 'device_id' => $device, 'rule_id' => $rule['id']), 'alert_log')) {
if (!dbUpdate(array('state' => 0, 'open' => 1), 'alerts', 'device_id = ? && rule_id = ?', array($device,$rule['id']))) {
dbInsert(array('state' => 0, 'device_id' => $device, 'rule_id' => $rule['id'], 'open' => 1, 'alerted' => 0), 'alerts');
}
echo " OK ";
c_echo(PHP_EOL . 'Status: %gOK');
}
}
}
c_echo('%n' . PHP_EOL);
}
}

View File

@@ -134,8 +134,9 @@ foreach (dbFetch($query) as $device) {
$device = dbFetchRow("SELECT * FROM `devices` WHERE `device_id` = " .$device['device_id']);
$device['vrf_lite_cisco'] = dbFetchRows("SELECT * FROM `vrf_lite_cisco` WHERE `device_id` = ".$device['device_id']);
poll_device($device, $options);
echo "#### Start Alerts ####\n";
RunRules($device['device_id']);
echo "\r\n";
echo "#### End Alerts ####\r\n";
$polled_devices++;
}