diff --git a/html/pages/settings/alerting.inc.php b/html/pages/settings/alerting.inc.php index fd2a4e4f3e..14a910cb78 100644 --- a/html/pages/settings/alerting.inc.php +++ b/html/pages/settings/alerting.inc.php @@ -1000,6 +1000,27 @@ echo '
+ +
+
+

+ OpsGenie +

+
+
+
+
+ +
+
+ + +
+
+
+
'; $clickatell = get_config_by_name('alert.transports.clickatell.token'); diff --git a/includes/alerts/transport.opsgenie.php b/includes/alerts/transport.opsgenie.php new file mode 100755 index 0000000000..2ef4acfa51 --- /dev/null +++ b/includes/alerts/transport.opsgenie.php @@ -0,0 +1,43 @@ +/* Copyright (C) 2017 Celal Emre CICEK + * 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. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ + +/** + * OpsGenie API Transport + * @author Celal Emre CICEK + * @copyright 2017 Celal Emre CICEK + * @license GPL + * @package LibreNMS + * @subpackage Alerts + */ + +$url = $opts['url']; + +$curl = curl_init(); + +set_curl_proxy($curl); +curl_setopt($curl, CURLOPT_URL, $url ); +curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); +curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); +curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); +curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($obj)); + +$ret = curl_exec($curl); +$code = curl_getinfo($curl, CURLINFO_HTTP_CODE); + +if($code != 200) { + var_dump("Error when sending post request to OpsGenie. Response code: " . $code . " Response body: " . $ret); //FIXME: proper debugging + return false; +} + +return true; diff --git a/sql-schema/208.sql b/sql-schema/208.sql new file mode 100644 index 0000000000..ffa9b7ad05 --- /dev/null +++ b/sql-schema/208.sql @@ -0,0 +1 @@ +INSERT INTO config (config_name,config_value,config_default,config_descr,config_group,config_group_order,config_sub_group,config_sub_group_order,config_hidden,config_disabled) values ('alert.transports.opsgenie.url','','','OpsGenie Webhook URL','alerting',0,'transports',0,'0','0'); \ No newline at end of file