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-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
|
||||
|
Reference in New Issue
Block a user