Merge pull request #1662 from laf/issue-1626

Added ability to send test alerts via each transport
This commit is contained in:
Daniel Preussker
2015-08-13 15:42:16 +02:00
2 changed files with 72 additions and 9 deletions

View File

@@ -0,0 +1,53 @@
<?php
/*
* LibreNMS
*
* Copyright (c) 2014 Neil Lathwood <https://github.com/laf/ http://www.lathwood.co.uk/fa>
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version. Please see LICENSE.txt at the top level of
* the source code distribution for details.
*/
if (is_admin() === false) {
die('ERROR: You need to be admin');
}
$transport = mres($_POST['transport']);
$obj = array(
'contacts' => $config['alert']['default_mail'],
'title' => 'Testing transport from ' . $config['project_name'],
'msg' => 'This is a test alert',
'severity' => 'critical',
'state' => 'critical',
'hostname' => 'testing',
'name' => 'Testing rule',
);
unset($obj);
$obj['contacts'] = 'test';
$obj['title'] = 'test';
$obj['msg'] = 'test';
$obj['severity'] = 'test';
$obj['state'] = 'test';
$obj['hostname'] = 'test';
$obj['name'] = 'test';
$status = 'error';
if (file_exists($config['install_dir']."/includes/alerts/transport.$transport.php")) {
$opts = $config['alert']['transports'][$transport];
if ($opts) {
eval('$tmp = function($obj,$opts) { global $config; '.file_get_contents($config['install_dir'].'/includes/alerts/transport.'.$transport.'.php').' };');
$tmp = $tmp($obj,$opts);
if ($tmp) {
$status = 'ok';
}
}
}
echo _json_encode(array('status' => $status));

View File

@@ -263,7 +263,7 @@ echo '
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#email_transport_expand">Email transport</a>
<a data-toggle="collapse" data-parent="#accordion" href="#email_transport_expand">Email transport</a> <button name="test-alert" id="test-alert" type="button" data-transport="mail" class="btn btn-primary btn-xs pull-right">Test transport</button>
</h4>
</div>
<div id="email_transport_expand" class="panel-collapse collapse">
@@ -389,7 +389,7 @@ foreach ($dyn_config['email_smtp_secure'] as $secure) {
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#api_transport_expand">API transport</a>
<a data-toggle="collapse" data-parent="#accordion" href="#api_transport_expand">API transport</a> <button name="test-alert" id="test-alert" type="button" data-transport="api" class="btn btn-primary btn-xs pull-right">Test transport</button>
</h4>
</div>
<div id="api_transport_expand" class="panel-collapse collapse">
@@ -431,7 +431,7 @@ foreach ($api_urls as $api_url) {
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#pagerduty_transport_expand">Pagerduty transport</a>
<a data-toggle="collapse" data-parent="#accordion" href="#pagerduty_transport_expand">Pagerduty transport</a> <button name="test-alert" id="test-alert" type="button" data-transport="pagerduty" class="btn btn-primary btn-xs pull-right">Test transport</button>
</h4>
</div>
<div id="pagerduty_transport_expand" class="panel-collapse collapse">
@@ -456,7 +456,7 @@ else {
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#nagios_transport_expand">Nagios compatible transport</a>
<a data-toggle="collapse" data-parent="#accordion" href="#nagios_transport_expand">Nagios compatible transport</a> <button name="test-alert" id="test-alert" type="button" data-transport="nagios" class="btn btn-primary btn-xs pull-right">Test transport</button>
</h4>
</div>
<div id="nagios_transport_expand" class="panel-collapse collapse">
@@ -475,7 +475,7 @@ else {
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#irc_transport_expand">IRC transport</a>
<a data-toggle="collapse" data-parent="#accordion" href="#irc_transport_expand">IRC transport</a> <button name="test-alert" id="test-alert" type="button" data-transport="irc" class="btn btn-primary btn-xs pull-right">Test transport</button>
</h4>
</div>
<div id="irc_transport_expand" class="panel-collapse collapse">
@@ -493,7 +493,7 @@ else {
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#slack_transport_expand">Slack transport</a>
<a data-toggle="collapse" data-parent="#accordion" href="#slack_transport_expand">Slack transport</a> <button name="test-alert" id="test-alert" type="button" data-transport="slack" class="btn btn-primary btn-xs pull-right">Test transport</button>
</h4>
</div>
<div id="slack_transport_expand" class="panel-collapse collapse">
@@ -559,7 +559,7 @@ foreach ($slack_urls as $slack_url) {
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#hipchat_transport_expand">Hipchat transport</a>
<a data-toggle="collapse" data-parent="#accordion" href="#hipchat_transport_expand">Hipchat transport</a> <button name="test-alert" id="test-alert" type="button" data-transport="hipchat" class="btn btn-primary btn-xs pull-right">Test transport</button>
</h4>
</div>
<div id="hipchat_transport_expand" class="panel-collapse collapse">
@@ -655,7 +655,7 @@ foreach ($hipchat_urls as $hipchat_url) {
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#pushover_transport_expand">Pushover transport</a>
<a data-toggle="collapse" data-parent="#accordion" href="#pushover_transport_expand">Pushover transport</a> <button name="test-alert" id="test-alert" type="button" data-transport="pushover" class="btn btn-primary btn-xs pull-right">Test transport</button>
</h4>
</div>
<div id="pushover_transport_expand" class="panel-collapse collapse">
@@ -736,7 +736,7 @@ echo '<div id="pushover_appkey_template" class="hide">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#boxcar_transport_expand">Boxcar transport</a>
<a data-toggle="collapse" data-parent="#accordion" href="#boxcar_transport_expand">Boxcar transport</a> <button name="test-alert" id="test-alert" type="button" data-transport="boxcar" class="btn btn-primary btn-xs pull-right">Test transport</button>
</h4>
</div>
<div id="boxcar_transport_expand" class="panel-collapse collapse">
@@ -814,6 +814,16 @@ echo '<div id="boxcar_appkey_template" class="hide">
$(".toolTip").tooltip();
$("button#test-alert").click(function() {
var transport = $(this).data("transport");
$.ajax({
type: 'POST',
url: '/ajax_form.php',
data: { type: "test-transport", transport: transport },
dataType: "json"
});
});
apiIndex = 0;
// Add API config