From 303513ab472c2d6405f72c75130c61760935e0d8 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Sun, 28 Aug 2016 20:27:47 +0200 Subject: api/img_adt_svc_relais.php: add node coloring from monitoring info get_node_status.php is dummy for now, need SQL and ask the monitoring machine --- api/get_node_status.php | 62 ++++++++++++++++++++++ api/img_adt_svc_relais.php | 27 ++++++++++ .../after-bake/src/Template/Adherents/view.ctp | 2 +- 3 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 api/get_node_status.php diff --git a/api/get_node_status.php b/api/get_node_status.php new file mode 100644 index 0000000..4886bfe --- /dev/null +++ b/api/get_node_status.php @@ -0,0 +1,62 @@ + + * Copyright 2016 Nicolas Goaziou + * + * This file is part of CHD Gestion. + * + * CHD Gestion 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. + * + * CHD Gestion 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 CHD Gestion. If not, see . +**/ +include_once('inc/config.php'); +$mysqli = new mysqli($db_config['host'], $db_config['username'], $db_config['password'], $db_config['database']); +if (mysqli_connect_errno()) { + die(mysqli_connect_error()); +} +unset($db_config); +$mysqli->set_charset("utf8") or die($mysqli->error); + +/* Parse arguments */ +$arg_keys=(array_key_exists('k', $_GET) && preg_match('/^([a-z][0-9]+,)*[a-z][0-9]+$/', $_GET['k']))?(explode(',', $_GET['k'])):array(); + +/* Firlter out keys to keep only equipments */ +$eids=array(); +foreach ( $arg_keys as $k ) { + if ( $k['0'] == 'e' ) { + $eids[]=substr($k,1); + } +} + +/* TODO : SQL query to get IPs from equipement WHERE id in $eids */ + +/* TODO : ask moniteur.chd.sx to ping them */ + +$arr_out = array(); +foreach ( $eids as $eid ) { + + $result=42; /*TODO dummy */ + + switch ($result) { + case 0: + $color='green'; + case 1: + $color='red'; + default: + $color='purple'; + } + $arr_out[] = array('eid'=>'e'.$eid, 'color'=>$color); +} + +/* Output arr_out as JSON to the web client */ +echo json_encode($arr_out); + diff --git a/api/img_adt_svc_relais.php b/api/img_adt_svc_relais.php index ba1be49..d62145c 100644 --- a/api/img_adt_svc_relais.php +++ b/api/img_adt_svc_relais.php @@ -29,12 +29,39 @@ $mysqli->set_charset("utf8") or die($mysqli->error); $opt_show_source=array_key_exists('s', $_GET); $opt_embed=array_key_exists('e', $_GET); +$opt_ping=array_key_exists('p', $_GET); $arg_adt=(array_key_exists('a', $_GET) && is_numeric($_GET['a']))?(0+$_GET['a']):NULL; if (!$arg_adt) { die("Wrong args"); } +if ($opt_ping) { +?> + +
id; + $url = "https://priv.chd.sx/api/img_adt_svc_relais.php?p=yes&e=yes&a=" . $adherent->id; $fh = fopen($url, 'r'); if ( is_resource($fh) ) { stream_set_timeout($fh,1); -- cgit v1.1