2009-08-13 06:45:39 +00:00
|
|
|
<?php
|
2009-09-10 06:57:06 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* setup.php
|
|
|
|
* perform the "monstart", "monadd" and "monstop" actions for selected monitoring plugins
|
2009-08-13 06:45:39 +00:00
|
|
|
*/
|
|
|
|
|
2009-09-01 20:25:18 +00:00
|
|
|
if(!isset($TOPDIR)) { $TOPDIR="..";}
|
2009-08-13 06:45:39 +00:00
|
|
|
|
|
|
|
require_once "$TOPDIR/lib/security.php";
|
|
|
|
require_once "$TOPDIR/lib/functions.php";
|
|
|
|
require_once "$TOPDIR/lib/display.php";
|
|
|
|
require_once "$TOPDIR/lib/monitor_display.php";
|
|
|
|
|
|
|
|
$name = $_REQUEST['name'];
|
|
|
|
$action = $_REQUEST['action'];
|
|
|
|
//read the "monitoring" table to see whether node status monitoring is enable or not
|
2009-09-17 14:54:43 +00:00
|
|
|
//$xml = docmd("webrun", "", array("gettab name=$name monitoring.nodestatmon"));
|
|
|
|
//if(getXmlErrors($xml, $errors)) {
|
|
|
|
// echo "<p class=Error>",implode(' ', $errors), "</p>";
|
|
|
|
// exit;
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
//foreach($xml->children() as $response) foreach($response->children() as $data)
|
|
|
|
//{
|
|
|
|
// $nodemonstat = $data;
|
|
|
|
//}
|
2009-08-13 06:45:39 +00:00
|
|
|
switch($action) {
|
|
|
|
case "stop":
|
2009-09-17 14:54:43 +00:00
|
|
|
monstop($name);
|
2009-08-13 06:45:39 +00:00
|
|
|
break;
|
|
|
|
case "restart":
|
2009-09-17 14:54:43 +00:00
|
|
|
monrestart($name);
|
2009-08-13 06:45:39 +00:00
|
|
|
break;
|
|
|
|
case "start":
|
2009-09-17 14:54:43 +00:00
|
|
|
monstart($name);
|
2009-08-13 06:45:39 +00:00
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2009-09-17 14:54:43 +00:00
|
|
|
function monstop($plugin)
|
2009-08-13 06:45:39 +00:00
|
|
|
{
|
|
|
|
$xml = docmd("monstop", "", array("$plugin","-r"));
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2009-09-17 14:54:43 +00:00
|
|
|
function monrestart($plugin)
|
2009-08-13 06:45:39 +00:00
|
|
|
{
|
|
|
|
$xml = docmd("monstop", "", array("$plugin", "-r"));
|
|
|
|
if(getXmlErrors($xml, $errors)) {
|
|
|
|
echo "<p class=Error>",implode(' ', $errors), "</p>";
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
$xml = docmd("moncfg", "", array("$plugin", "-r"));
|
|
|
|
if(getXmlErrors($xml, $errors)) {
|
|
|
|
echo "<p class=Error>",implode(' ', $errors), "</p>";
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
|
|
|
$xml = docmd("monstart", "", array("$plugin", "-r"));
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2009-09-17 14:54:43 +00:00
|
|
|
function monstart($plugin)
|
2009-08-13 06:45:39 +00:00
|
|
|
{
|
2009-09-17 14:54:43 +00:00
|
|
|
//Before running "monstart", the command "monls" is used to check
|
|
|
|
$xml = docmd("monls","", NULL);
|
|
|
|
if(getXmlErrors($xml, $errors)) {
|
|
|
|
echo "<p class=Error>",implode(' ', $errors), "</p>";
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
$has_plugin = false;
|
|
|
|
if(count($xml->children()) != 0) {
|
|
|
|
foreach($xml->children() as $response) foreach($response->children() as $data) {
|
|
|
|
$arr = preg_split("/\s+/", $data);
|
|
|
|
if($arr[0] == $plugin) {
|
|
|
|
$has_plugin = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if($has_plugin == false) {
|
|
|
|
//if $has_plugin == false, that means the plugin is not added into the monitoring table
|
|
|
|
$xml = docmd("monadd",'', array("$plugin"));
|
|
|
|
if(getXmlErrors($xml, $errors)) {
|
|
|
|
echo "<p class=Error>",implode(' ', $errors), "</p>";
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
}
|
2009-08-13 06:45:39 +00:00
|
|
|
//we have to make sure that the plugin is added in the "monitoring" table
|
|
|
|
$xml = docmd("monstart", "", array("$plugin", "-r"));
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|