<?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;
}

?>