<?php
$admin = array('192.168.0.160','192.168.0.153','192.168.0.154','192.168.0.167');
$is_admin = in_array($_SERVER['REMOTE_ADDR'],$admin) ? true : false;
require_once 'MDB2.php';
$dsn="mysql://root:mailvision@192.168.0.74/mvstatus";
$mdb2 =& MDB2::singleton($dsn);
if (PEAR::isError($mdb2)) {
die($mdb2->getMessage());
}
#define('mysql_host',"192.168.0.74");
#define('mysql_user',"root");
#define('mysql_pass',"mailvision");
#define('mysql_schema',"mvstatus");
function getListOfProtocols($select_name, $selected){
$out="<select name='service[".$select_name."][protocol]'>\n";
$options[]='http';
$options[]='sip';
foreach($options as $option) {
if($option==$selected){
$add_select="selected='selected'";
}
else {
$add_select="";
}
$out .= "<option value='$option' $add_select >$option</option>\n";
}
return $out;
}
function addMachine($vals_array){
$mdb2 =& MDB2::singleton();
if($vals_array['host']==""){
return;
}
$query="INSERT INTO machine VALUES(NULL, ";
$query .= "'".$vals_array['host']."',";
$query .= "'".$vals_array['display']."',";
$query .= "'".$vals_array['user']."',";
$query .= "'".$vals_array['password']."',";
$query .= "'".$vals_array['port']."'";
$query .=")";
$mdb2->query($query);
}
function delMachine($mid){
$mdb2 =& MDB2::singleton();
$query="DELETE FROM machine WHERE `id`='".$mid."'";
$mdb2->query($query);
}
function updateService($vals_array){
$mdb2 =& MDB2::singleton();
if(!isset($vals_array['id'])){
if($vals_array['port']==""){
return;
}
$query="INSERT INTO service VALUES(NULL, ";
$query .= "'".$vals_array['mid']."',";
$query .= "'".$vals_array['protocol']."',";
$query .= "'".$vals_array['port']."',";
$query .= "'".$vals_array['interval']."',";
$query .= "'".$vals_array['count']."',";
$query .= "'',";
$query .= "'".$vals_array['service_name']."'";
$query .=")";
$mdb2->query($query);
return;
}
if(isset($vals_array['del'])){
$query="DELETE FROM service WHERE `id`='".$vals_array['id']."'";
$mdb2->query($query);
return;
}
$query="UPDATE service SET ";
$query .= "`protocol`='".$vals_array['protocol']."',";
$query .= "`port`='".$vals_array['port']."',";
$query .= "`interval`='".$vals_array['interval']."',";
$query .= "`count`='".$vals_array['count']."',";
$query .= "`service_name`='".$vals_array['service_name']."' ";
$query .= "WHERE id='".$vals_array['id']."'";
$mdb2->query($query);
}
function execute_ssh_command($host, $port, $user, $pass_or_key, $cmd){
$connection=null;
if(is_readable($pass_or_key)){
$connection = ssh2_connect($host, $port,array('hostkey'=>'ssh-rsa'));
if (!ssh2_auth_pubkey_file($connection,$user,"$pass_or_key.pub",$pass_or_key)){
return false;
}
}
else {
$connection = ssh2_connect($host, $port);
if (ssh2_auth_password($connection, $user, $pass_or_key)===FALSE) {
return false;
}
}
$stream = ssh2_exec($connection, $cmd);
stream_set_blocking($stream, true);
return stream_get_contents($stream);
}
function get_machines_from_db(){
$mdb2 =& MDB2::singleton();
$mdb3 =& MDB2::singleton();
$query = "SELECT * FROM machine";
$result=&$mdb2->query($query);
$machines=array();
while($machine=$result->fetchRow(MDB2_FETCHMODE_ASSOC)){
$id=$machine['id'];
$query = "SELECT * FROM service where machine_id = '$id'";
$result2 =& $mdb3->query($query);
while($service=$result2->fetchRow(MDB2_FETCHMODE_ASSOC)){
$machine['services'][]=$service;
}
$machines[$id]=$machine;
}
return $machines;
}
function getService($service_id){
$mdb2 =& MDB2::singleton();
$query = "SELECT * FROM service WHERE id='$service_id' LIMIT 1";
$mdb2->query($query);
$result=& $mdb2->query($query);
$service=$result->fetchRow(MDB2_FETCHMODE_ASSOC);
$m_id=$service['machine_id'];
$query = "SELECT * FROM machine WHERE id='$m_id'";
$mdb2->query($query);
$result=& $mdb2->query($query);
$machine=$result->fetchRow(MDB2_FETCHMODE_ASSOC);
$service['machine']=$machine;
return $service;
}
function getServicesOfMachine($mid){
$mdb2 =& MDB2::singleton();
$res =& $mdb2->query("SELECT * FROM service WHERE machine_id=$mid");
$services=array();
while ($row = $res->fetchRow(MDB2_FETCHMODE_OBJECT)) {
$services[]=$row;
}
return $services;
}
function getMachine($mid){
$mdb2 =& MDB2::singleton();
$res =& $mdb2->query("SELECT * FROM machine WHERE id=$mid");
if (PEAR::isError($res)) {
die($res->getMessage());
}
return $res->fetchRow(MDB2_FETCHMODE_OBJECT);
}
?>