mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Merge pull request #1662 from laf/issue-1626
Added ability to send test alerts via each transport
This commit is contained in:
53
html/includes/forms/test-transport.inc.php
Normal file
53
html/includes/forms/test-transport.inc.php
Normal 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));
|
@@ -263,7 +263,7 @@ echo '
|
|||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4 class="panel-title">
|
<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>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="email_transport_expand" class="panel-collapse collapse">
|
<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 panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4 class="panel-title">
|
<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>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="api_transport_expand" class="panel-collapse collapse">
|
<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 panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4 class="panel-title">
|
<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>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="pagerduty_transport_expand" class="panel-collapse collapse">
|
<div id="pagerduty_transport_expand" class="panel-collapse collapse">
|
||||||
@@ -456,7 +456,7 @@ else {
|
|||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4 class="panel-title">
|
<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>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="nagios_transport_expand" class="panel-collapse collapse">
|
<div id="nagios_transport_expand" class="panel-collapse collapse">
|
||||||
@@ -475,7 +475,7 @@ else {
|
|||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4 class="panel-title">
|
<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>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="irc_transport_expand" class="panel-collapse collapse">
|
<div id="irc_transport_expand" class="panel-collapse collapse">
|
||||||
@@ -493,7 +493,7 @@ else {
|
|||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4 class="panel-title">
|
<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>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="slack_transport_expand" class="panel-collapse collapse">
|
<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 panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4 class="panel-title">
|
<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>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="hipchat_transport_expand" class="panel-collapse collapse">
|
<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 panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4 class="panel-title">
|
<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>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="pushover_transport_expand" class="panel-collapse collapse">
|
<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 panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4 class="panel-title">
|
<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>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="boxcar_transport_expand" class="panel-collapse collapse">
|
<div id="boxcar_transport_expand" class="panel-collapse collapse">
|
||||||
@@ -814,6 +814,16 @@ echo '<div id="boxcar_appkey_template" class="hide">
|
|||||||
|
|
||||||
$(".toolTip").tooltip();
|
$(".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;
|
apiIndex = 0;
|
||||||
|
|
||||||
// Add API config
|
// Add API config
|
||||||
|
Reference in New Issue
Block a user