git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@4482 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			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;
 | 
						|
}
 | 
						|
 | 
						|
?>
 |