Subversion Repositories se3

Compare Revisions

Ignore whitespace Rev 6613 → Rev 6614

/branches/2.1/se3-clonage/sources/www/tftp/action_memtest_tftp.php
29,7 → 29,7
// CSS pour mes tableaux:
echo "<link type='text/css' rel='stylesheet' href='tftp.css' />\n";
 
if (is_admin("system_is_admin",$login)=="Y")
if ((is_admin("system_is_admin",$login)=="Y")||(ldap_get_right("parc_can_clone",$login)=="Y"))
{
// Choix des parcs:
$parc=isset($_POST['parc']) ? $_POST['parc'] : (isset($_GET['parc']) ? $_GET['parc'] : NULL);
58,6 → 58,17
 
echo "<h1>".gettext("Action rapport TFTP")."</h1>\n";
 
$restriction_parcs="n";
if(is_admin("system_is_admin",$login)!="Y") {
$restriction_parcs="y";
$tab_delegated_parcs=list_delegated_parcs($login);
if(count($tab_delegated_parcs)==0) {
echo "<p>Aucun parc ne vous a été délégué.</p>\n";
include ("pdp.inc.php");
die();
}
}
 
if(!isset($parc)){
echo "<p>Cette page doit vous permettre de programmer un test de mémoire vive sur les machines choisies.<br />Le dispositif ne permet hélas pas de récupérer un rapport sur l'état des barrettes.<br />Il faut passer devant les stations pour constater l'état et taper sur ECHAP pour quitter ensuite.</p>\n";
 
86,8 → 97,12
echo "<td align='left'>\n";
}
 
echo "<label for='parc_$loop'><input type='checkbox' id='parc_$loop' name='parc[]' value=\"".$list_parcs[$loop]["cn"]."\" />".$list_parcs[$loop]["cn"]."</label>\n";
echo "<br />\n";
if(($restriction_parcs=="n")||(in_array($list_parcs[$loop]["cn"], $tab_delegated_parcs))) {
echo "<label for='parc_$loop'><input type='checkbox' id='parc_$loop' name='parc[]' value=\"".$list_parcs[$loop]["cn"]."\"";
if(count($list_parcs)==1) {echo " checked";}
echo " />".$list_parcs[$loop]["cn"]."</label>\n";
echo "<br />\n";
}
}
 
echo "</td>\n";
98,6 → 113,20
 
echo "</form>\n";
 
echo "<script type='text/javascript'>
nb_parcs=0;
id_parc='';
for(i=0;i<$loop;i++) {
if(document.getElementById('parc_'+i)) {
nb_parcs++;
id_parc='parc_'+i;
}
}
if(nb_parcs==1) {
document.getElementById(id_parc).checked=true;
}
</script>\n";
 
echo "<p><a href='index.php'>Retour à l'index</a>.</p>\n";
}
else {
362,111 → 391,124
$nom_machine=$lig->name;
$ip_machine=$lig->ip;
 
echo "Génération pour $nom_machine: ";
 
$corrige_mac=strtolower(strtr($mac_machine,":","-"));
 
$chemin="/usr/share/se3/scripts";
$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'memtest' '$corrige_mac' '$ip_machine' '$nom_machine'", $retour);
 
if(count($retour)>0){
//echo "<p>";
//echo "<span style='color:red;'>Il semble que la génération du fichier ait échoué...</span><br />\n";
echo "<span style='color:red;'>ECHEC de la génération du fichier</span><br />\n";
for($j=0;$j<count($retour);$j++){
echo "$retour[$j]<br />\n";
if($restriction_parcs=="y") {
$temoin_erreur='y';
for($loop=0; $loop<count($tab_delegated_parcs);$loop++) {
// La machine est-elle dans un des parcs délégués?
if(is_machine_in_parc($nom_machine,$tab_delegated_parcs[$loop])) {$temoin_erreur='n';break;}
}
$temoin_erreur="y";
//echo "</p>\n";
}
 
if($temoin_erreur=="y") {
echo "<p style='color:red'>La machine $nom_machine ne vous est pas déléguée</p>\n";
}
else {
$sql="DELETE FROM se3_tftp_action WHERE id='$id_machine[$i]';";
$suppr=mysql_query($sql);
 
$timestamp=time();
$sql="INSERT INTO se3_tftp_action SET id='$id_machine[$i]',
mac='$mac_machine',
name='$nom_machine',
date='$timestamp',
type='memtest',
num_op='$num_op',
infos='';";
$insert=mysql_query($sql);
if(!$insert) {
echo "<span style='color:red;'>ECHEC de l'enregistrement dans 'se3_tftp_action'</span><br />\n";
echo "Génération pour $nom_machine: ";
$corrige_mac=strtolower(strtr($mac_machine,":","-"));
$chemin="/usr/share/se3/scripts";
$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'memtest' '$corrige_mac' '$ip_machine' '$nom_machine'", $retour);
if(count($retour)>0){
//echo "<p>";
//echo "<span style='color:red;'>Il semble que la génération du fichier ait échoué...</span><br />\n";
echo "<span style='color:red;'>ECHEC de la génération du fichier</span><br />\n";
for($j=0;$j<count($retour);$j++){
echo "$retour[$j]<br />\n";
}
$temoin_erreur="y";
//echo "</p>\n";
}
 
/*
// Génération du lanceur de récupération:
//$dossier="/var/se3/tmp/tftp/$id_machine[$i]";
$dossier="/etc/se3/www-tools/tftp/$id_machine[$i]";
if(!file_exists($dossier)) { mkdir($dossier,0700);}
$lanceur_recup="$dossier/lanceur_recup_rapport_action_tftp.sh";
$fich=fopen($lanceur_recup,"w+");
// On donne 4H pour que la récup soit effectuée:
$timestamp_limit=time()+4*3600;
//fwrite($fich,"/usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' 'rapport' '$timestamp_limit'");
fwrite($fich,"sudo /usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' 'rapport' '$timestamp_limit'");
fclose($fich);
chmod($lanceur_recup,0750);
*/
 
// Ménage dans les tâches précédentes
@exec("sudo /usr/share/se3/scripts/se3_tftp_menage_atq.sh $id_machine[$i]",$retour);
 
/*
// Planification de la tâche
//@exec("at -f $lanceur_recup now + 1 minute 2>/dev/null",$retour);
@exec("at -f $lanceur_recup now + 1 minute 2>$dossier/at.txt",$retour);
//passthru("at -f $lanceur_recup now + 1 minute",$retour);
if($retour) {
echo "<span style='color:red;'>ECHEC de la planification de la tâche.</span><br />\n";
for($j=0;$j<count($retour);$j++){echo "$retour[$j]<br />\n";}
//echo "$retour<br />\n";
$temoin_erreur="y";
}
*/
 
/*
// Avec ça on arrive à récupérer l'info:
// -warning: commands will be executed using /bin/sh -
// -job 1572 at 2008-03-01 15:13 -
// Mais une fois le at repoussé, ce n'est plus www-se3, mais root qui en est proprio...
if(file_exists("$dossier/at.txt")) {
$fp=fopen("$dossier/at.txt","r");
else {
$sql="DELETE FROM se3_tftp_action WHERE id='$id_machine[$i]';";
$suppr=mysql_query($sql);
$timestamp=time();
$sql="INSERT INTO se3_tftp_action SET id='$id_machine[$i]',
mac='$mac_machine',
name='$nom_machine',
date='$timestamp',
type='memtest',
num_op='$num_op',
infos='';";
$insert=mysql_query($sql);
if(!$insert) {
echo "<span style='color:red;'>ECHEC de l'enregistrement dans 'se3_tftp_action'</span><br />\n";
$temoin_erreur="y";
}
/*
// Génération du lanceur de récupération:
//$dossier="/var/se3/tmp/tftp/$id_machine[$i]";
$dossier="/etc/se3/www-tools/tftp/$id_machine[$i]";
if(!file_exists($dossier)) { mkdir($dossier,0700);}
$lanceur_recup="$dossier/lanceur_recup_rapport_action_tftp.sh";
$fich=fopen($lanceur_recup,"w+");
// On donne 4H pour que la récup soit effectuée:
$timestamp_limit=time()+4*3600;
//fwrite($fich,"/usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' 'rapport' '$timestamp_limit'");
fwrite($fich,"sudo /usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' 'rapport' '$timestamp_limit'");
fclose($fich);
chmod($lanceur_recup,0750);
*/
// Ménage dans les tâches précédentes
@exec("sudo /usr/share/se3/scripts/se3_tftp_menage_atq.sh $id_machine[$i]",$retour);
/*
// Planification de la tâche
//@exec("at -f $lanceur_recup now + 1 minute 2>/dev/null",$retour);
@exec("at -f $lanceur_recup now + 1 minute 2>$dossier/at.txt",$retour);
//passthru("at -f $lanceur_recup now + 1 minute",$retour);
if($retour) {
echo "<span style='color:red;'>ECHEC de la planification de la tâche.</span><br />\n";
for($j=0;$j<count($retour);$j++){echo "$retour[$j]<br />\n";}
//echo "$retour<br />\n";
$temoin_erreur="y";
}
*/
/*
// Avec ça on arrive à récupérer l'info:
// -warning: commands will be executed using /bin/sh -
// -job 1572 at 2008-03-01 15:13 -
// Mais une fois le at repoussé, ce n'est plus www-se3, mais root qui en est proprio...
if(file_exists("$dossier/at.txt")) {
$fp=fopen("$dossier/at.txt","r");
while(!feof($fp)) {
$ligne=fgets($fp,4096);
echo "<p>-".$ligne."-</p>";
}
fclose($fp);
}
*/
/*
$fp=popen("at -f $lanceur_recup now + 1 minute","r");
while(!feof($fp)) {
$ligne=fgets($fp,4096);
echo "<p>-".$ligne."-</p>";
}
fclose($fp);
*/
if($temoin_erreur=="n") {
//echo "<span style='color:green;'>OK</span><br />\n";
echo "<span style='color:green;'>OK</span>\n";
// Application de l'action choisie:
echo " <span id='wake_shutdown_or_reboot_$i'></span>";
echo "<script type='text/javascript'>
// <![CDATA[
new Ajax.Updater($('wake_shutdown_or_reboot_$i'),'ajax_lib.php?ip=$ip_machine&nom=$nom_machine&mode=wake_shutdown_or_reboot&wake=$wake&shutdown_reboot=$shutdown_reboot',{method: 'get'});
//]]>
</script>\n";
echo "<br />\n";
}
}
*/
 
/*
$fp=popen("at -f $lanceur_recup now + 1 minute","r");
while(!feof($fp)) {
$ligne=fgets($fp,4096);
echo "<p>-".$ligne."-</p>";
}
fclose($fp);
*/
 
if($temoin_erreur=="n") {
//echo "<span style='color:green;'>OK</span><br />\n";
echo "<span style='color:green;'>OK</span>\n";
// Application de l'action choisie:
echo " <span id='wake_shutdown_or_reboot_$i'></span>";
 
echo "<script type='text/javascript'>
// <![CDATA[
new Ajax.Updater($('wake_shutdown_or_reboot_$i'),'ajax_lib.php?ip=$ip_machine&nom=$nom_machine&mode=wake_shutdown_or_reboot&wake=$wake&shutdown_reboot=$shutdown_reboot',{method: 'get'});
//]]>
</script>\n";
 
 
echo "<br />\n";
}
}
}
}