server management
This commit is contained in:
parent
40b341c626
commit
96edf459f1
128
web/index.php
128
web/index.php
|
@ -17,34 +17,32 @@ $mode="";
|
||||||
|
|
||||||
function checkvm($vmname) {
|
function checkvm($vmname) {
|
||||||
$shellout = shell_exec("/usr/bin/nlvmi checkvm $vmname bla");//){
|
$shellout = shell_exec("/usr/bin/nlvmi checkvm $vmname bla");//){
|
||||||
// echo $shellout;
|
|
||||||
if (preg_match_all('/not running/', $shellout)){
|
if (preg_match_all('/not running/', $shellout)){
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
function serverdepropdown($server, $val, $what){
|
function serverdepropdown($server, $val, $what){
|
||||||
if ($what == "cdrom"){
|
if ($what == "cdrom"){
|
||||||
$dir = "isodirectory";
|
$dir = "isodirectory";
|
||||||
$enddiv = "</div>";
|
$enddiv = "</div>";
|
||||||
} elseif (preg_match('/drive/', $what)) {
|
} elseif (preg_match('/drive/', $what)) {
|
||||||
$dir = "vmdirectory";
|
$dir = "vmdirectory";
|
||||||
$enddiv="";
|
$enddiv="";
|
||||||
}
|
}
|
||||||
echo "<div class=row><div class=col-md-1 style=text-align:right>$what</div><div class=col-md-2><div class=dropdown><button class=\"btn btn-secondary dropdown-toggle\" type=button id=".$what."button data-toggle=dropdown aria-haspopup=true aria-expanded=false>$val</button>";
|
echo "<div class=row><div class=col-md-1 style=text-align:right>$what</div><div class=col-md-2><div class=dropdown><button class=\"btn btn-secondary dropdown-toggle\" type=button id=".$what."button data-toggle=dropdown aria-haspopup=true aria-expanded=false>$val</button>";
|
||||||
echo "<div class=dropdown-menu aria-labelledby=".$what."button>";
|
echo "<div class=dropdown-menu aria-labelledby=".$what."button>";
|
||||||
echo "<a class=dropdown-item href=\"javascript:dropdown('".$what."button','')\">no $what</a><div class=dropdown-divider></div>";
|
echo "<a class=dropdown-item href=\"javascript:dropdown('".$what."button','')\">no $what</a><div class=dropdown-divider></div>";
|
||||||
$shellout=shell_exec("/usr/bin/nlvmi listdir $server $dir");
|
$shellout=shell_exec("/usr/bin/nlvmi listdir $server $dir");
|
||||||
$files = explode("\n", $shellout);
|
$files = explode("\n", $shellout);
|
||||||
for ($f=0; $f<count($files); $f++){
|
for ($f=0; $f<count($files); $f++){
|
||||||
$file = explode(" ", $files[$f]);
|
$file = explode(" ", $files[$f]);
|
||||||
$lastpart = count($file) -1;
|
$lastpart = count($file) -1;
|
||||||
if((preg_match('/\//', $file[$lastpart]))&&(!preg_match('/^d/', $file[0]))){
|
if((preg_match('/\//', $file[$lastpart]))&&(!preg_match('/^d/', $file[0]))){
|
||||||
echo "<a class=dropdown-item href=\"javascript:dropdown('".$what."button','$file[$lastpart]')\">$file[$lastpart]</a>";
|
echo "<a class=dropdown-item href=\"javascript:dropdown('".$what."button','$file[$lastpart]')\">$file[$lastpart]</a>";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
echo "$enddiv</div></div></div><input type=hidden id=".$what."buttonh name=$what value=$val>";
|
||||||
echo "$enddiv</div></div></div><input type=hidden id=".$what."buttonh name=$what value=$val>";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//read config file
|
//read config file
|
||||||
|
@ -96,9 +94,6 @@ if ($usersfound=="no"){
|
||||||
$_SESSION['isadmin']="1";
|
$_SESSION['isadmin']="1";
|
||||||
if (!isset($_POST['newusername'])){
|
if (!isset($_POST['newusername'])){
|
||||||
echo "<h1>You have no users in the datbase!</h1></br>";
|
echo "<h1>You have no users in the datbase!</h1></br>";
|
||||||
// echo "Aborting....";
|
|
||||||
// exit;
|
|
||||||
|
|
||||||
$mode="usermgmt";
|
$mode="usermgmt";
|
||||||
}
|
}
|
||||||
} elseif ((isset($_POST['login']))&&(isset($_POST['username']))&&(isset($_POST['password']))){
|
} elseif ((isset($_POST['login']))&&(isset($_POST['username']))&&(isset($_POST['password']))){
|
||||||
|
@ -198,7 +193,41 @@ if (isset($_SESSION['username'])){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//insert new server in db
|
||||||
|
if(isset($_POST['newservername'])){
|
||||||
|
if($_SESSION['isadmin']!=1){
|
||||||
|
echo "you are not allowed to add servers!";
|
||||||
|
} else {
|
||||||
|
$newservername = clean($_POST['newhostname']);
|
||||||
|
$connectstring = clean($_POST['connectstring']);
|
||||||
|
$vmdirectory = clean($_POST['vmdirectory']);
|
||||||
|
$isodirectory = clean($_POST['isodirectory']);
|
||||||
|
$sqlu="INSERT INTO servers ('hostname','connectstring','vmdirectory','isodirectory') VALUES('$newservername',$connectstring','$vmdirectory','$isodirectory')";
|
||||||
|
$res = $db_handle->query($sqlu);
|
||||||
|
echo "success";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//update server in db
|
||||||
|
if(isset($_POST['changehostname'])){
|
||||||
|
if($_SESSION['isadmin']!=1){
|
||||||
|
echo "you are not allowed to change servers!";
|
||||||
|
} else {
|
||||||
|
$newservername = clean($_POST['changehostname']);
|
||||||
|
$connectstring = clean($_POST['connectstring']);
|
||||||
|
$vmdirectory = clean($_POST['vmdirectory']);
|
||||||
|
$isodirectory = clean($_POST['isodirectory']);
|
||||||
|
$changeid = clean($_POST['changeid']);
|
||||||
|
$sql="UPDATE servers SET hostname='$newservername', connectstring='$connectstring', vmdirectory='$vmdirectory', isodirectory='$isodirectory' where id='$changeid'";
|
||||||
|
if($db_handle->query($sql)){
|
||||||
|
echo "success";
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
echo "$sql";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
//insert or update vm in db
|
//insert or update vm in db
|
||||||
if(isset($_REQUEST['mode'])){
|
if(isset($_REQUEST['mode'])){
|
||||||
if($_REQUEST['mode']=="newvm"){
|
if($_REQUEST['mode']=="newvm"){
|
||||||
|
@ -232,10 +261,7 @@ if (isset($_SESSION['username'])){
|
||||||
$res = $db_handle->exec($sql);
|
$res = $db_handle->exec($sql);
|
||||||
echo "success";
|
echo "success";
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
// $mode="";
|
|
||||||
} elseif ($_REQUEST['mode']=="editvm"){
|
} elseif ($_REQUEST['mode']=="editvm"){
|
||||||
// $mode="";
|
|
||||||
$sql="UPDATE vms SET ";
|
$sql="UPDATE vms SET ";
|
||||||
foreach(array_keys($_REQUEST) as $rkey){
|
foreach(array_keys($_REQUEST) as $rkey){
|
||||||
if (($rkey!="mode")&&($rkey!="editid")&&($rkey!="rand")){
|
if (($rkey!="mode")&&($rkey!="editid")&&($rkey!="rand")){
|
||||||
|
@ -256,18 +282,16 @@ if (isset($_SESSION['username'])){
|
||||||
$sql = rtrim($sql, ',');
|
$sql = rtrim($sql, ',');
|
||||||
$eid=clean($_REQUEST['editid']);
|
$eid=clean($_REQUEST['editid']);
|
||||||
$sql .= " WHERE id='$eid'";
|
$sql .= " WHERE id='$eid'";
|
||||||
// if($db_handle->exec($sql)){
|
|
||||||
$res = $db_handle->exec($sql);
|
$res = $db_handle->exec($sql);
|
||||||
echo "success";
|
echo "success";
|
||||||
//echo $res;
|
|
||||||
exit;
|
exit;
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isset($_POST['serverbuttoni'])){
|
if (isset($_POST['serverbuttoni'])){
|
||||||
serverdepropdown($_POST['serverbuttoni'], "no cdrom", 'cdrom');
|
serverdepropdown($_POST['serverbuttoni'], "no cdrom", 'cdrom');
|
||||||
exit;
|
exit;
|
||||||
} elseif (isset($_POST['serverbuttona'])){
|
//not nice, i know... Will do a function later...
|
||||||
|
} elseif (isset($_POST['serverbuttona'])){
|
||||||
serverdepropdown($_POST['serverbuttona'], "no drive1", 'drive1');
|
serverdepropdown($_POST['serverbuttona'], "no drive1", 'drive1');
|
||||||
echo "<div class=row><div class=col>format1</div><div class=col><div class=dropdown><button class=\"btn btn-secondary dropdown-toggle\" type=button id=format1buttonformat1 data-toggle=dropdown aria-haspopup=true aria-expanded=false></button>";
|
echo "<div class=row><div class=col>format1</div><div class=col><div class=dropdown><button class=\"btn btn-secondary dropdown-toggle\" type=button id=format1buttonformat1 data-toggle=dropdown aria-haspopup=true aria-expanded=false></button>";
|
||||||
echo "<div class=dropdown-menu aria-labelledby=formatbuttonformat1>";
|
echo "<div class=dropdown-menu aria-labelledby=formatbuttonformat1>";
|
||||||
|
@ -298,6 +322,7 @@ if (isset($_SESSION['username'])){
|
||||||
echo "</div></div></div></div></div><input type=hidden id=format3buttonformat3h name=format3 value=\"no drive1\">";
|
echo "</div></div></div></div></div><input type=hidden id=format3buttonformat3h name=format3 value=\"no drive1\">";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
//ajax queries are all done, time for the header
|
//ajax queries are all done, time for the header
|
||||||
include('header.php');
|
include('header.php');
|
||||||
|
|
||||||
|
@ -337,6 +362,31 @@ if (isset($_SESSION['username'])){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//servermanagement
|
||||||
|
if (isset($_POST['servermgmt'])){
|
||||||
|
$mode="servermgmt";
|
||||||
|
if ($_SESSION['isadmin']=="1"){
|
||||||
|
$sql="SELECT * FROM servers";
|
||||||
|
$res = $db_handle->query($sql);
|
||||||
|
echo "</br>";
|
||||||
|
//echo "<div class=row><div class=col>Username</div><div class=col>Is Admin</div><div class=col>New Password</div></div>";
|
||||||
|
echo "<h2>Existing servers</h2>";
|
||||||
|
echo "<div class=row><div class=col>hostname</div><div class=col>connectstring</div><div class=col>VM directory</div><div class=col>ISO directory</div><div class=col></div></div>";
|
||||||
|
while ($row = $res->fetchArray(SQLITE3_ASSOC)){
|
||||||
|
echo "<form id=sform$row[id] action=? method=post><div class=row><div class=col style=text-align:right><input class=form-control name=changehostname value=$row[hostname]></div>";
|
||||||
|
echo "<div class=col><input name=connectstring id=\"connectstring\" type=\"text\" value=$row[connectstring]></div>";
|
||||||
|
echo "<div class=col><input name=vmdirectory id=\"connectstring\" type=\"text\" value=$row[vmdirectory]></div>";
|
||||||
|
echo "<div class=col><input name=isodirectory id=\"connectstring\" type=\"text\" value=$row[isodirectory]></div>";
|
||||||
|
echo "<div class=col><input type=hidden name=changeid value=$row[id]><a href=# class=\"btn btn-success\" onclick=\"javascript:submitbutton('sform$row[id]');\">save server</a></div></div></form>";
|
||||||
|
}
|
||||||
|
//newserverform
|
||||||
|
echo "<h2>Create a new server</h2><form id=newserverform action=? method=post><div class=row><div class=col><input type=text class=form-control name=newhostname placeholder=hostname></div>";
|
||||||
|
echo "<div class=col><input class=form-control name=connectstring type=\"text\" placeholder=\"nlvmi@192.168.0.X\"></div>";
|
||||||
|
echo "<div class=col><input class=form-control type=test name=vmdirectory placeholder=\"multiple directories like /directorya;/directoryb\"></div>";
|
||||||
|
echo "<div class=col><input class=form-control type=test name=isoirectory placeholder=\"multiple directories like /directorya;/directoryb\"></div>";
|
||||||
|
echo "<div class=col><a href=# class=\"btn btn-success\" onclick=\"javascript:submitbutton('newserverform');\">Create server</a></div></div></form>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//start vm
|
//start vm
|
||||||
|
@ -423,7 +473,6 @@ if (isset($_SESSION['username'])){
|
||||||
$val = "";
|
$val = "";
|
||||||
}
|
}
|
||||||
$colname=$arrColnames[$col];
|
$colname=$arrColnames[$col];
|
||||||
//$placeh=$placehold[$arrColnames[$col]];
|
|
||||||
if ($arrColnames[$col] == "bootoption"){
|
if ($arrColnames[$col] == "bootoption"){
|
||||||
if($val=="") {
|
if($val=="") {
|
||||||
$val="c";
|
$val="c";
|
||||||
|
@ -433,7 +482,6 @@ if (isset($_SESSION['username'])){
|
||||||
echo "<a class=dropdown-item href=\"javascript:dropdown('bootoptionbutton','c')\">c</a>";
|
echo "<a class=dropdown-item href=\"javascript:dropdown('bootoptionbutton','c')\">c</a>";
|
||||||
echo "<a class=dropdown-item href=\"javascript:dropdown('bootoptionbutton','d')\">d</a>";
|
echo "<a class=dropdown-item href=\"javascript:dropdown('bootoptionbutton','d')\">d</a>";
|
||||||
echo "</div></div></div></div><input type=hidden id=bootoptionbuttonh name=bootoption value=$val>";
|
echo "</div></div></div></div><input type=hidden id=bootoptionbuttonh name=bootoption value=$val>";
|
||||||
// echo "$arrColnames[$col] <select name=bootoption><option value=c>C</option><option value=d>D</option></select></br>";
|
|
||||||
} elseif ($arrColnames[$col] == "user"){
|
} elseif ($arrColnames[$col] == "user"){
|
||||||
if ($val=="") {
|
if ($val=="") {
|
||||||
$val=$_SESSION['username'];
|
$val=$_SESSION['username'];
|
||||||
|
@ -470,8 +518,6 @@ if (isset($_SESSION['username'])){
|
||||||
echo "<div id=cdromdiv>";
|
echo "<div id=cdromdiv>";
|
||||||
serverdepropdown($server, $val, "cdrom");
|
serverdepropdown($server, $val, "cdrom");
|
||||||
echo "</div>";
|
echo "</div>";
|
||||||
// } elseif (preg_match('/format/', $arrColnames[$col])) {
|
|
||||||
// echo "<div class=col-md-1 style=text-align:right>$arrColnames[$col]</div><div class=col-md-2><input class=form-control type=text name=$arrColnames[$col] value=$val></div></div></div>";
|
|
||||||
} elseif (preg_match('/tapdev/', $arrColnames[$col])) {
|
} elseif (preg_match('/tapdev/', $arrColnames[$col])) {
|
||||||
echo "<div class=row><div class=col-md-1 style=text-align:right>$arrColnames[$col]</div><div class=col-md-2><input class=form-control type=text name=$arrColnames[$col] value=\"$val\" placeholder=\"$placehold[$colname]\"></div>";
|
echo "<div class=row><div class=col-md-1 style=text-align:right>$arrColnames[$col]</div><div class=col-md-2><input class=form-control type=text name=$arrColnames[$col] value=\"$val\" placeholder=\"$placehold[$colname]\"></div>";
|
||||||
} elseif (preg_match('/macaddr/', $arrColnames[$col])) {
|
} elseif (preg_match('/macaddr/', $arrColnames[$col])) {
|
||||||
|
@ -491,14 +537,6 @@ if (isset($_SESSION['username'])){
|
||||||
|
|
||||||
echo "<a class=dropdown-item href=\"javascript:dropdown('$arrColnames[$col]button','$rows[hostname]')\">$rows[hostname]</a>";
|
echo "<a class=dropdown-item href=\"javascript:dropdown('$arrColnames[$col]button','$rows[hostname]')\">$rows[hostname]</a>";
|
||||||
}
|
}
|
||||||
// $vmdirs = explode('|', $config['VMDIRECTORY']);
|
|
||||||
// foreach($vmdirs as $vmdir){
|
|
||||||
// $files = array_diff(scandir($vmdir), array('.', '..'));
|
|
||||||
// $files = array_values(array_filter($files));
|
|
||||||
// for ($f=0; $f<count($files); $f++){
|
|
||||||
// echo "<a class=dropdown-item href=\"javascript:dropdown('$arrColnames[$col]button','$vmdir/$files[$f]')\">$vmdir/$files[$f]</a>";
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
echo "</div></div></div></div><input type=hidden id=$arrColnames[$col]buttonh name=$arrColnames[$col] value=$val>";
|
echo "</div></div></div></div><input type=hidden id=$arrColnames[$col]buttonh name=$arrColnames[$col] value=$val>";
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue