xcat-core/xCAT-UI/monitor/setup.php
2009-11-05 06:50:40 +00:00

96 lines
2.5 KiB
PHP

<?php
/*
* setup.php
* perform the "monstart", "monadd" and "monstop" actions for selected monitoring plugins
*/
if(!isset($TOPDIR)) { $TOPDIR="..";}
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
//$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;
//}
switch($action) {
case "stop":
monstop($name);
break;
case "restart":
monrestart($name);
break;
case "start":
monstart($name);
break;
default:
break;
}
function monstop($plugin)
{
$xml = docmd("monstop", "", array("$plugin","-r"));
return 0;
}
function monrestart($plugin)
{
$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;
}
function monstart($plugin)
{
//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;
}
}
//we have to make sure that the plugin is added in the "monitoring" table
$xml = docmd("monstart", "", array("$plugin", "-r"));
return 0;
}
?>