summaryrefslogtreecommitdiffstats
path: root/server/lib
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2009-10-19 09:47:15 +0000
committerramon <ramongomez@us.es>2009-10-19 09:47:15 +0000
commit8964f9b26b06f61e20fba15bfe4fb653cc1a31b5 (patch)
tree8663353fbea6faab97ee1ac38d541d5485771018 /server/lib
parent87b02b26e403807cf587356ed77ac52c74eba3fd (diff)
Resstructuración de trunk.
git-svn-id: https://opengnsys.es/svn/trunk@390 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'server/lib')
-rw-r--r--server/lib/DBprocess.php319
1 files changed, 319 insertions, 0 deletions
diff --git a/server/lib/DBprocess.php b/server/lib/DBprocess.php
new file mode 100644
index 00000000..7303ee5a
--- /dev/null
+++ b/server/lib/DBprocess.php
@@ -0,0 +1,319 @@
+<?php
+
+#no integrado parcialmente. Pendiente de ser llamado desde el EACserver
+function RegistryHost ($mac,$ip)
+{
+ echo $mac . $ip;
+ $conexion=mysql_connect($_SERVER['SQL_HOST'], $_SERVER['SQL_USER'], $_SERVER['SQL_PASS']) or die ('no se ha podido conectar con mysql');
+ mysql_select_db($_SERVER['DATABASE'], $conexion);
+ $insert="insert into infonetequipos (hostname, macaddress, ipaddress, startpage, aula, vga, acpi, pci) values ('" . $_SERVER['HOSTNAME'] . "', '" . $mac . "', '" . $ip . "' , 'default.sh' , '1', '788', '" . $_SERVER['acpi'] . "', '" . $_SERVER['pci'] . "')";
+ $resultado=mysql_query($insert);
+ #ethtool -s eth0 wol g autoneg off speed 100 duplex full
+ #}
+ mysql_close($conexion);
+}
+
+
+
+
+
+
+function BootServer ($boot,$ip)
+{
+#/** @function BootServer: @brief Configura el fichero de arranque remoto para el equipo, y actualiza la base de datos.
+#@param $1 str_LabelBootMenu
+#@param $2 str_IPHost
+#@return Mensaje informativo sobre dicho proceso
+#@warning Salidas de errores no determinada
+#@attention
+#@note Notas sin especificar
+#@version 1.0 Date: 27/10/2008 Author Antonio J. Doblas Viso. Universidad de Malaga
+#*/
+
+
+
+ #actualizamos el menu de arranque para ese equipo
+ $query3="update infonetequipos set arranque='" . $boot ."' where ipaddress='" .$ip . "'";
+ $resultado = mysql_query($query3) or die (mysql_error());
+############# Consultas SQL para obtener la informacion del ciente. varinfoaula, varinfoequipo, varinfoparameters
+## varinfohost= toda la informacion de este equipo almacenado en el array infohost
+ $peticion="select * from infonetequipos where ipaddress='".$ip . "'";
+ $rsinfohost = mysql_query($peticion);
+ $infohost = mysql_fetch_array($rsinfohost);
+ $aula= $infohost['aula'];
+ #obtenemos los campos del host y los metemos dentro de la variable varinfohost
+ $varinfohost=" ";
+ $lastparameters=mysql_num_fields($rsinfohost);
+ #for ($i=3; $i<$lastparameters; $i++)
+ for ($i=0; $i<$lastparameters; $i++)
+ {
+ if ( mysql_field_name($rsinfohost, $i) == 'startpage' )
+ {
+ $varinfohost = $varinfohost . " " . mysql_field_name($rsinfohost, $i) . "=A_id" . $aula . "_" . $infohost[$i] ;
+ }
+ else
+ {
+ $varinfohost = $varinfohost . " " . mysql_field_name($rsinfohost, $i) . "=" . $infohost[$i] ;
+ #echo $infohost[$i] . "\n";
+ }
+ }
+ #echo $parameters . "\n" ;
+ mysql_free_result($rsinfohost);
+
+## obtenemos el nombre del fichero pxe para este equipo
+ $mac=$infohost['macaddress'];
+ $macfile="01-" . str_replace(":","-",strtolower($mac));
+ $nombre_archivo="/tftpboot/pxelinux.cfg/" . $macfile;
+
+
+### varinfoaula= toda la informacion del aula al que pertenece el equipo infoaula.
+ $peticion="select * from infonetaulas where id_aula='".$aula . "'";
+ $rsinfoaula = mysql_query($peticion);
+ #$infoaula = mysql_fetch_assoc($rsinfoaula);
+ $infoaula = mysql_fetch_array($rsinfoaula);
+ $varinfoaula=" ";
+ $lastparameters=mysql_num_fields($rsinfoaula);
+ #for ($i=3; $i<$lastparameters; $i++)
+ for ($i=0; $i<$lastparameters; $i++)
+ {
+ $varinfoaula = $varinfoaula . " " . mysql_field_name($rsinfoaula, $i) . "=" . $infoaula[$i] ;
+ }
+ mysql_free_result($rsinfoaula);
+
+$gateway=$infoaula['gateway'];
+ $netmask=$infoaula['netmask'];
+ $repo_client=$infoaula['repo_client'];
+ $menu=$infohost['arranque'];
+
+### varinfoparameters= toda la informacion generica de los clientes.
+ $peticion="select variable, value from infoparametersclients";
+ $rsinfoparameters = mysql_query($peticion);
+ #$infoparameters = mysql_fetch_assoc($rsinfoparameters);
+# $infoparameters = mysql_fetch_array($rsinfoparameters);
+ $varinfoparameters=" ";
+# $lastparameters=mysql_num_fields($rsinfoparameters);
+# #for ($i=3; $i<$lastparameters; $i++)
+# for ($i=0; $i<$lastparameters; $i++)
+# {
+# $varinfoparameters = $varinfoparameters . " " . mysql_field_name($rsinfoparameters, $i) . "=" . $infoparameters[$i] ;
+# }
+ while ($fila = mysql_fetch_row($rsinfoparameters))
+ {
+#foreach ($fila as $elemento)
+# {
+# $varinfoparameters = $varinfoparameters . "" . $elemento . "=";
+# }
+ $varinfoparameters = $varinfoparameters . " " . $fila[0] . "=" . $fila[1];
+ }
+
+ mysql_free_result($rsinfoparameters);
+################################################ Fin de consustar SQL
+
+ if (!$gestion= fopen($nombre_archivo, 'w+'))
+ {
+ echo "No se puede abrir el archivo ($nombre_archivo)";
+ return;
+ }
+ # cuales son los parametros del menu
+ fwrite($gestion, "DEFAULT syslinux/vesamenu.c32 \n");
+ fwrite($gestion, "MENU TITLE Aplicacion GNSYS \n");
+ # cuales son los elemtos del menu
+ $peticion="select itemboot.label, itemboot.kernel, itemboot.append, menuboot.timeout, menuboot.prompt, menuboot.description, menuboot_itemboot.default from itemboot,menuboot_itemboot,menuboot where menuboot_itemboot.labelmenu=menuboot.label and menuboot_itemboot.labelitem=itemboot.label and menuboot.label='" . $menu . "'";
+ # echo $peticion;
+ $rsbootoption = mysql_query($peticion);
+ while($row = mysql_fetch_assoc($rsbootoption))
+ {
+ fwrite($gestion, " \n");
+ fwrite($gestion, "LABEL " . $row['label'] . " \n");
+ fwrite($gestion, "MENU LABEL " . $row['label'] . " \n");
+ if ( $row['default'] == true)
+ {
+ fwrite($gestion, "MENU DEFAULT \n");
+ }
+
+
+ $iseac=substr_count($row['append'] , "ogclients");
+ echo $iseaci . " \n";
+ if ($iseac > 0)
+ {
+ fwrite($gestion, $row['kernel'] . " EACregistred=YES " . $varinfoaula . "\n");
+ $append=str_replace("repo_client", $repo_client, $row['append']);
+## echo $append . "\n";
+ fwrite($gestion, $append . " ip=" . $infohost['ipaddress'] .":" . $repo_client . ":" . $gateway . ":" . $netmask . ":" . $infohost['hostname'] . ":eth0 ro " . " " . $varinfohost . " ". $varinfoparameters . " \n");
+ }
+ else
+ {
+ fwrite($gestion, $row['kernel'] . " \n");
+ fwrite($gestion, $row['append'] . " \n");
+ }
+ $prompt=$row['prompt'];
+ $timeout=$row['timeout'];
+ }
+
+ fwrite($gestion, " \n");
+ fwrite($gestion, "PROMPT " . $prompt ." \n");
+ fwrite($gestion, "TIMEOUT " . $timeout . " \n");
+ mysql_free_result($rsbootoption);
+ fwrite($gestion, " \n");
+ fclose($gestion);
+ exec("chown www-data:www-data /tftpboot/pxelinux.cfg/". $macfile);
+ exec("chmod 777 /tftpboot/pxelinux.cfg/". $macfile);
+ #return("ok");
+ # actualizando el boot del cliente
+ #system(REPO . "admin/procedimientos/Log " . SQL_HOST . " ' 00:00 ' ' " . $ip . " solicita un SetDefaultBoot ' ' " . $boot . " " . $ip . " con resultado " . $bootstatus ."'");
+}
+
+# no integrado
+function Logger ()
+{
+ #include("/var/EAC/admin/config/EAC.conf");
+ # formato de entrada
+ # 1IP ; 2tiempo proceso; 3comando; 4parametros
+ #$hora=date("H:i:s");
+ #$dia=date("Y-m-d");
+ #formato del log
+ # IPsolicitante ; dia ; hora ; tiempo proceso ; comando; parametros
+ #formato del log
+ #mensaje en ventana del solicitante.
+ #echo($_SERVER['argv'][1] . " ; " . $dia . " ; " . $hora . " ; " . $_SERVER['argv'][2] . " ; " . $_SERVER['argv'][3] . " ; " . $_SERVER['argv'][4]);
+ #$info=$_SERVER['argv'][1] . " ; " . $dia . " ; " . $hora . " ; " . $_SERVER['argv'][2] . " ; " . $_SERVER['argv'][3] . " ; " . $_SERVER['argv'][4] . "\n";
+ #echo($info);
+ ## escritura en el ficheor /var/EAC/hosts/$IP-Log
+ #$fp = fopen(REPO . "hosts/" . $_SERVER['argv'][1] ."-Log", "ab");
+ #fwrite($fp, $info);
+ #fclose($fp);
+ ## insertar la informacion en la base de datos
+ #$conexion=mysql_connect(SQL_HOST, SQL_USER, SQL_PASS) or die ('no se ha podido conectar con mysql');
+ #mysql_select_db(DATABASE, $conexion);
+ #$insert="insert into log (ip, dia, hora, tiempo_proceso, comando, parametros) values ('".$_SERVER['argv'][1] . "','" . $dia . "','" .$hora . "','" .$_SERVER['argv'][2]."','".$_SERVER['argv'][3]."','".$_SERVER['argv'][4]."')";
+ #echo $insert . "\n";
+ #$resultado = mysql_query($insert) or die (mysql_error());
+ #mysql_close($conexion);
+}
+
+
+#primera integracion
+function InsertClassrom ($descripcion,$subred,$netmask,$broadcast,$gateway,$repo_image,$repo_client)
+{
+
+ $query="select * from infonetaulas where descripcion='" . $descripcion ."'";
+ echo $query;
+ $rs=mysql_query($query);
+ $num_rows = mysql_num_rows($rs);
+ $row = mysql_fetch_assoc($rs);
+
+ if ($num_rows == 0 )
+ {
+ $insert="insert into infonetaulas (descripcion, subred, netmask, broadcast, gateway, repo_image, repo_client) values ('$descripcion', '$subred', '$netmask', '$broadcast', '$gateway', '$repo_image', '$repo_client')";
+ #echo $row['id_aula'];
+ echo $insert;
+ $resultado = mysql_query($insert) or die (mysql_error());
+ mysql_free_result($rs);
+ $query="select * from infonetaulas where descripcion='" . $descripcion ."'";
+ #echo $query;
+ $rs=mysql_query($query);
+ $num_rows = mysql_num_rows($rs);
+ $row = mysql_fetch_assoc($rs);
+ if ($num_rows > 0 )
+ {
+ echo "creando directorios";
+ $dir = REPOSTATIC . "client/etc/startpage/models";
+ $dh = opendir($dir);
+ while (false !== ($nombre_archivo = readdir($dh)))
+ {
+ $archivos[] = $nombre_archivo;
+ }
+ foreach ($archivos as $directorio)
+ {
+ if ((strlen($directorio) >= 3) and ($directorio <> '.svn'))
+ {
+ #echo "creando " . $directorio;
+ exec("touch /opt/opengnsys/client/etc/startpage/A_id". $row['id_aula'] ."_". $directorio);
+ }
+ }
+
+ }
+
+
+
+ }
+ #mysql_close($conexion);
+}
+# no integrado
+function InsertDefaultClassrom ($descripcion,$subred,$netmask,$broadcast,$gateway,$repo_image,$repo_client)
+{
+ #include ("/var/EAC/admin/config/EAC.conf");
+ $conexion=mysql_connect(SQL_HOST_LOCAL, SQL_USER, SQL_PASS) or die ('no se ha podido conectar con mysql');
+ mysql_select_db(DATABASE, $conexion);
+ $query="select * from aulas";
+ $rs=mysql_query($query);
+ $num_rows = mysql_num_rows($rs);
+ echo $num_rows;
+ if ($num_rows == 0 )
+ {
+ $insert="insert into aulas (descripcion, subred, netmask, broadcast, gateway, repo_image, repo_client) values ('$descripcion', '$subred', '$netmask', '$broadcast', '$gateway', '$repo_image', '$repo_client')";
+ }
+ else
+ {
+ $insert="update aulas SET descripcion='" . $descripcion . "', subred='". $subred . "', netmask='" . $netmask ."', broadcast='". $broadcast ."', gateway='" . $gateway . "', repo_image='" . $repo_image ."', repo_client='" . $repo_client ."' WHERE id_aula=1";
+ }
+ echo $insert;
+ $resultado = mysql_query($insert) or die (mysql_error());
+ mysql_free_result($rs);
+ $query="select * from aulas where descripcion='" . $descripcion ."'";
+ echo $query;
+ $rs=mysql_query($query);
+ $num_rows = mysql_num_rows($rs);
+ $row = mysql_fetch_assoc($rs);
+
+ if ($num_rows > 0 )
+ {
+ echo $row['id_aula'];
+ echo "creando directorios";
+ $dir = REPO . "admin/startpage/models";
+ $dh = opendir($dir);
+ while (false !== ($nombre_archivo = readdir($dh)))
+ {
+ $archivos[] = $nombre_archivo;
+ }
+
+ foreach ($archivos as $directorio)
+ {
+ if ((strlen($directorio) >= 3) and ($directorio <> '.svn'))
+ {
+ #echo "creando " . $directorio;
+ exec("touch /var/EAC/admin/startpage/A_id". $row['id_aula'] ."_". $directorio);
+ }
+ }
+
+ }
+ mysql_free_result($rs);
+
+ mysql_close($conexion);
+}
+
+
+# no integrado
+function InsertItemtoMenu ($menu,$item)
+{
+ #include ("/var/EAC/admin/config/EAC.conf");
+#echo $menu . $item . "\n";
+# $conexion=mysql_connect(SQL_HOST_LOCAL, SQL_USER, SQL_PASS) or die ('no se ha podido conectar con mysql');
+# mysql_select_db(DATABASE, $conexion);
+ $query="select * from menuboot_itemboot where labelmenu='$menu' and labelitem='$item'";
+ echo " " . $query . " \n";
+ $rs=mysql_query($query);
+ $num_rows = mysql_num_rows($rs);
+ echo $num_rows;
+ if ($num_rows < 1 )
+ {
+ $insert="insert into menuboot_itemboot values ('$menu', '$item', 0)";
+ echo " ".$insert . " \n";
+ $resultado = mysql_query($insert) or die (mysql_error());
+ mysql_free_result($rs);
+ mysql_close($conexion);
+ }
+
+}
+
+ ?>