[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 /* $Id: consultation_tftp.php 7214 2012-05-23 13:35:44Z crob $ 3 =========================================== 4 Projet SE3 5 Dispositif SE3+TFTP+Sauvegarde/Restauration/Clonage 6 Stephane Boireau 7 Distribué selon les termes de la licence GPL 8 ============================================= 9 */ 10 11 // loading libs and init 12 include "entete.inc.php"; 13 include "ldap.inc.php"; 14 include "ihm.inc.php"; 15 //require_once "../dhcp/dhcpd.inc.php"; 16 include "printers.inc.php"; 17 18 require ("lib_action_tftp.php"); 19 20 //aide 21 $_SESSION["pageaide"]="Le_module_Clonage_des_stations#Consulter_le_r.C3.A9sultat_d.27une_action"; 22 23 // On active les rapports d'erreurs: 24 //error_reporting(E_ALL); 25 26 // CSS pour mes tableaux: 27 echo "<link type='text/css' rel='stylesheet' href='tftp.css' />\n"; 28 29 if ((is_admin("system_is_admin",$login)=="Y")||(ldap_get_right("parc_can_clone",$login)=="Y")) 30 { 31 32 $mode_rech=isset($_POST['mode_rech']) ? $_POST['mode_rech'] : (isset($_GET['mode_rech']) ? $_GET['mode_rech'] : NULL); 33 34 //$action=isset($_POST['action']) ? $_POST['action'] : (isset($_GET['action']) ? $_GET['action'] : NULL); 35 36 $parc=isset($_POST['parc']) ? $_POST['parc'] : (isset($_GET['parc']) ? $_GET['parc'] : NULL); 37 38 $parametrage_action=isset($_POST['parametrage_action']) ? $_POST['parametrage_action'] : (isset($_GET['parametrage_action']) ? $_GET['parametrage_action'] : NULL); 39 40 $id_machine=isset($_POST['id_machine']) ? $_POST['id_machine'] : (isset($_GET['id_machine']) ? $_GET['id_machine'] : NULL); 41 $num_op=isset($_POST['num_op']) ? $_POST['num_op'] : (isset($_GET['num_op']) ? $_GET['num_op'] : NULL); 42 43 44 $restriction_parcs="n"; 45 if(is_admin("system_is_admin",$login)!="Y") { 46 $restriction_parcs="y"; 47 $tab_delegated_parcs=list_delegated_parcs($login); 48 if(count($tab_delegated_parcs)==0) { 49 echo "<p>Aucun parc ne vous a été délégué.</p>\n"; 50 include ("pdp.inc.php"); 51 die(); 52 } 53 } 54 55 56 $suppr=isset($_POST['suppr']) ? $_POST['suppr'] : NULL; 57 if(isset($suppr)){ 58 for($i=0;$i<count($suppr);$i++){ 59 // Suppression du fichier en /tftpboot/pxelinux.cfg/ 60 61 if(is_admin("system_is_admin",$login)!="Y") { 62 $temoin_erreur="y"; 63 $nom=""; 64 65 $sql="SELECT name FROM se3_dhcp WHERE id='$suppr[$i]';"; 66 $res=mysql_query($sql); 67 if(mysql_num_rows($res)>0) { 68 $lig=mysql_fetch_object($res); 69 $nom=$lig->name; 70 71 for($loop=0;$loop<count($tab_delegated_parcs);$loop++) { 72 // La machine est-elle dans un des parcs délégués? 73 if(is_machine_in_parc($nom,$tab_delegated_parcs[$loop])) { 74 $temoin_erreur='n'; 75 break; 76 } 77 } 78 } 79 if($temoin_erreur=="y") { 80 echo "<p style='color:red'>La machine $nom n'est pas dans un de vos parcs delegues.</p>\n"; 81 die(); 82 } 83 } 84 85 // Récupérer l'adresse MAC: 86 $sql="SELECT mac FROM se3_dhcp WHERE id='$suppr[$i]';"; 87 //echo "$sql<br />\n"; 88 $res_mac=mysql_query($sql); 89 if(mysql_num_rows($res_mac)==0) { 90 $sql="SELECT mac FROM se3_tftp_action WHERE id='$suppr[$i]';"; 91 //echo "$sql<br />\n"; 92 $res_mac=mysql_query($sql); 93 if(mysql_num_rows($res_mac)==0) { 94 echo "<span style='color:red'>ERREUR:</span> L'adresse MAC de la machine d'identifiant $suppr[$i] n'a pas été trouvée dans les tables 'se3_dhcp' ni 'se3_tftp_action'. Il se peut qu'il subsiste un fichier /tftpboot/pxelinux.cfg/01-ADRESSE_MAC qui pourrait perturber le démarrage de la machine.<br />\n"; 95 } 96 else { 97 $lig_mac=mysql_fetch_object($res_mac); 98 //$corrige_mac=strtolower(strtr($mac_machine,":","-")); 99 $corrige_mac=strtolower(strtr($lig_mac->mac,":","-")); 100 //echo "Test de /tftpboot/pxelinux.cfg/01-$corrige_mac<br />\n"; 101 if(file_exists("/tftpboot/pxelinux.cfg/01-$corrige_mac")) { 102 //echo "Suppression de /tftpboot/pxelinux.cfg/01-$corrige_mac<br />\n"; 103 unlink("/tftpboot/pxelinux.cfg/01-$corrige_mac"); 104 } 105 } 106 } 107 else { 108 $lig_mac=mysql_fetch_object($res_mac); 109 //$corrige_mac=strtolower(strtr($mac_machine,":","-")); 110 $corrige_mac=strtolower(strtr($lig_mac->mac,":","-")); 111 //echo "Test de /tftpboot/pxelinux.cfg/01-$corrige_mac<br />\n"; 112 if(file_exists("/tftpboot/pxelinux.cfg/01-$corrige_mac")) { 113 //echo "Suppression de /tftpboot/pxelinux.cfg/01-$corrige_mac<br />\n"; 114 unlink("/tftpboot/pxelinux.cfg/01-$corrige_mac"); 115 } 116 } 117 118 // Suppression de l'action dans la table: 119 $sql="DELETE FROM se3_tftp_action WHERE id='$suppr[$i]';"; 120 //echo "$sql<br />\n"; 121 $suppression=mysql_query($sql); 122 123 // Suppression de la tâche recup_rapport.php? 124 //$dossier="/var/se3/tmp/tftp/$suppr[$i]"; 125 $dossier="/etc/se3/www-tools/tftp/$suppr[$i]"; 126 $lanceur_recup="$dossier/lanceur_recup_rapport_action_tftp.sh"; 127 if(file_exists($lanceur_recup)) { 128 unlink($lanceur_recup); 129 } 130 } 131 } 132 133 // Création de la table dès que possible: 134 creation_tftp_tables(); 135 136 echo "<h1>".gettext("Consultation TFTP")."</h1>\n"; 137 138 if(is_admin("system_is_admin",$login)!="Y") { 139 $mode_rech="parc"; 140 } 141 142 if(!isset($mode_rech)){ 143 echo "<p>Choisissez le mode de consultation:</p>\n"; 144 echo "<ul>\n"; 145 echo "<li><a href='".$_SERVER['PHP_SELF']."?mode_rech=parc'>Sélectionner un parc</a>.</li>\n"; 146 147 $sql="SELECT 1=1 FROM se3_tftp_action WHERE type='sauvegarde';"; 148 $test=mysql_query($sql); 149 if(mysql_num_rows($test)>0) { 150 echo "<li><a href='".$_SERVER['PHP_SELF']."?mode_rech=svg'>Afficher les sauvegardes en attente</a>.</li>\n"; 151 } 152 153 $sql="SELECT 1=1 FROM se3_tftp_action WHERE type='restauration';"; 154 $test=mysql_query($sql); 155 if(mysql_num_rows($test)>0) { 156 echo "<li><a href='".$_SERVER['PHP_SELF']."?mode_rech=rest'>Afficher les restaurations en attente</a>.</li>\n"; 157 } 158 159 $sql="SELECT 1=1 FROM se3_tftp_action WHERE type LIKE 'udpcast_%';"; 160 $test=mysql_query($sql); 161 if(mysql_num_rows($test)>0) { 162 echo "<li><a href='".$_SERVER['PHP_SELF']."?mode_rech=clone'>Afficher les clonages en attente</a>.</li>\n"; 163 } 164 165 $sql="SELECT 1=1 FROM se3_tftp_action WHERE type='rapport';"; 166 $test=mysql_query($sql); 167 if(mysql_num_rows($test)>0) { 168 echo "<li><a href='".$_SERVER['PHP_SELF']."?mode_rech=rapport'>Afficher les remontées de rapports en attente</a>.</li>\n"; 169 } 170 171 $sql="SELECT 1=1 FROM se3_tftp_action WHERE type='unattend_xp';"; 172 $test=mysql_query($sql); 173 if(mysql_num_rows($test)>0) { 174 echo "<li><a href='".$_SERVER['PHP_SELF']."?mode_rech=unattend_xp'>Afficher les installations unattend XP en attente</a>.</li>\n"; 175 } 176 177 echo "</ul>\n"; 178 179 echo "<p><a href='index.php'>Retour à l'index</a>.</p>\n"; 180 } 181 else { 182 if($mode_rech=="parc"){ 183 if(!isset($parc)){ 184 echo "<p>Choisissez un ou des parcs:</p>\n"; 185 186 $list_parcs=search_machines("objectclass=groupOfNames","parcs"); 187 if (count($list_parcs)==0) { 188 echo "<br><br>"; 189 echo gettext("Il n'existe aucun parc. Vous devez d'abord créer un parc"); 190 include ("pdp.inc.php"); 191 exit; 192 } 193 sort($list_parcs); 194 195 echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">\n"; 196 echo "<input type=\"hidden\" name=\"mode_rech\" value=\"$mode_rech\" />\n"; 197 198 // Affichage des parcs sur 3/4 colonnes 199 $nb_parcs_par_colonne=round(count($list_parcs)/3); 200 echo "<table border='0'>\n"; 201 echo "<tr valign='top'>\n"; 202 echo "<td> </td>\n"; 203 echo "<td align='left'>\n"; 204 for ($loop=0; $loop < count($list_parcs); $loop++) { 205 //array_push($parcs,$list_parcs[$loop]["cn"]); 206 207 if(($loop>0)&&(round($loop/$nb_parcs_par_colonne)==$loop/$nb_parcs_par_colonne)){ 208 echo "</td>\n"; 209 echo "<td align='left'>\n"; 210 } 211 212 if(($restriction_parcs=="n")||(in_array($list_parcs[$loop]["cn"], $tab_delegated_parcs))) { 213 echo "<label for='parc_$loop'><input type='checkbox' id='parc_$loop' name='parc[]' value=\"".$list_parcs[$loop]["cn"]."\""; 214 //if(count($list_parcs)==1) {echo " checked";} 215 echo " />".$list_parcs[$loop]["cn"]."</label>\n"; 216 echo "<br />\n"; 217 } 218 } 219 220 echo "</td>\n"; 221 echo "</tr>\n"; 222 echo "</table>\n"; 223 224 echo "<p align='center'><input type=\"submit\" name=\"submit\" value=\"Valider\" /></p>\n"; 225 226 echo "<script type='text/javascript'> 227 nb_parcs=0; 228 id_parc=''; 229 for(i=0;i<$loop;i++) { 230 if(document.getElementById('parc_'+i)) { 231 nb_parcs++; 232 id_parc='parc_'+i; 233 } 234 } 235 if(nb_parcs==1) { 236 document.getElementById(id_parc).checked=true; 237 } 238 </script>\n"; 239 240 echo "</form>\n"; 241 } 242 else { 243 echo "<script type='text/javascript' src='../includes/prototype.js'></script>\n"; 244 // Afficher un tableau des parcs avec les machines qui ont une action programmée... 245 246 echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">\n"; 247 echo "<input type=\"hidden\" name=\"mode_rech\" value=\"$mode_rech\" />\n"; 248 249 $max_eff_parc=0; 250 for($i=0;$i<count($parc);$i++){ 251 echo "<input type='hidden' name='parc[]' value='$parc[$i]' />\n"; 252 253 echo "<h2>Parc $parc[$i]</h2>\n"; 254 255 $mp=gof_members($parc[$i],"parcs",1); 256 $nombre_machine=count($mp); 257 sort($mp); 258 259 //echo "<table border='1'>\n"; 260 echo "<table class='crob'>\n"; 261 echo "<tr>\n"; 262 263 echo "<th>Nom</th>\n"; 264 echo "<th>Etat</th>\n"; 265 echo "<th>Session</th>\n"; 266 echo "<th>Config DHCP</th>\n"; 267 268 echo "<th>Action</th>\n"; 269 270 echo "<th>Supprimer l'action<br />\n"; 271 echo "<a href='#' onclick='check_suppr($i,\"check\");return false'><img src=\"../elements/images/enabled.gif\" border='0' alt=\"Tout cocher\" title=\"Tout cocher\" /></a>\n"; 272 echo " / <a href='#' onclick='check_suppr($i,\"uncheck\");return false'><img src=\"../elements/images/disabled.gif\" border='0' alt=\"Tout décocher\" title=\"Tout décocher\" /></a>\n"; 273 echo "</th>\n"; 274 275 echo "<th>Rapports</th>\n"; 276 echo "<th>Sauvegardes<br />antérieures</th>\n"; 277 278 //echo "<th></th>\n"; 279 echo "</tr>\n"; 280 281 for ($loop=0; $loop < count($mp); $loop++) { 282 $mpenc=urlencode($mp[$loop]); 283 284 // Test si on a une imprimante ou une machine 285 $resultat=search_imprimantes("printer-name=$mpenc","printers"); 286 $suisje_printer="non"; 287 for ($loopp=0; $loopp < count($resultat); $loopp++) { 288 if ($mpenc==$resultat[$loopp]['printer-name']) { 289 $suisje_printer="yes"; 290 continue; 291 } 292 } 293 294 if($suisje_printer=="non") { 295 // Réinitialisation: 296 $id_machine=""; 297 298 echo "<tr>\n"; 299 echo "<td width='20%'>".$mp[$loop]."</td>\n"; 300 301 // Etat: allumé ou éteint 302 echo "<td width='20%'>"; 303 $mp_curr=search_machines2("(&(cn=$mpenc)(objectClass=ipHost))","computers"); 304 if ($mp_curr[0]["ipHostNumber"]) { 305 $iphost=$mp_curr[0]["ipHostNumber"]; 306 307 echo "<div id='divip$loop'>Patientez</div>\n"; 308 309 echo "<script type='text/javascript'> 310 // <![CDATA[ 311 new Ajax.Updater($('divip$loop'),'ajax_lib.php?ip=$iphost&mode=ping_ip',{method: 'get'}); 312 //]]> 313 </script>\n"; 314 315 } 316 echo "</td>\n"; 317 318 319 // Session: ouverte ou pas... sous quelle identité 320 echo "<td width='20%'>\n"; 321 echo "<div id='divsession$loop'>Patientez</div>\n"; 322 323 echo "<script type='text/javascript'> 324 // <![CDATA[ 325 new Ajax.Updater($('divsession$loop'),'ajax_lib.php?nom_machine=".$mp[$loop]."&mode=session',{method: 'get'}); 326 //]]> 327 </script>\n"; 328 329 echo "</td>\n"; 330 331 332 // Etat config DHCP: 333 // Par la suite il ne faudra pas prendre les IP dans l'annuaire, 334 // mais dans la config DHCP parce que ce sont ces IP qui seront attribuées lors du boot PXE 335 echo "<td width='20%'>\n"; 336 //$mp_curr=search_machines("(&(cn=$mpenc)(objectClass=ipHost))","computers"); 337 if ($mp_curr[0]["macAddress"]) { 338 $sql="SELECT * FROM se3_dhcp WHERE mac='".$mp_curr[0]["macAddress"]."';"; 339 //echo "$sql<br />"; 340 $res=mysql_query($sql); 341 if(mysql_num_rows($res)>0) { 342 $lig=mysql_fetch_object($res); 343 $id_machine=$lig->id; 344 345 //echo $lig->id; 346 echo "<img src=\"../elements/images/enabled.gif\" border='0' alt=\"$lig->ip\" title=\"$lig->ip\" />"; 347 } 348 else { 349 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Pas d'adresse IP attribuée\" title=\"Pas d'adresse IP attribuée\" />"; 350 } 351 } 352 else { 353 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Pas d'adresse MAC dans l'annuaire???\" title=\"Pas d'adresse MAC dans l'annuaire???\" />"; 354 } 355 echo "</td>\n"; 356 357 358 // Action programmée 359 echo "<td width='20%'>\n"; 360 /* 361 foreach($mp_curr[0] as $champ => $valeur) { 362 echo "\$mp_curr[0]['$champ']=$valeur<br />"; 363 } 364 */ 365 $temoin_action="n"; 366 if($id_machine!=""){ 367 $sql="SELECT * FROM se3_tftp_action WHERE id='".$id_machine."';"; 368 $res=mysql_query($sql); 369 if(mysql_num_rows($res)>0) { 370 $lig=mysql_fetch_object($res); 371 echo "<a href='visu_action.php?id_machine=$id_machine' target='_blank'>$lig->type</a> (<i>$lig->num_op</i>)"; 372 373 //echo " <u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<center>".preg_replace("/'/","",preg_replace("/'/","",visu_tache($mp_curr[0]["macAddress"],'light')))."</center>')")."\"><img name=\"action_image$loop\" src=\"../elements/images/detail.gif\" /></u>"; 374 375 //echo " <u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<center>".preg_replace("/'/","",visu_tache($mp_curr[0]["macAddress"],'light'))."</center>')")."\"><img name=\"action_image$loop\" src=\"../elements/images/detail.gif\"></u>"; 376 // CELA MERDOUILLE QUAND LA TACHE EST UN CLONAGE... JE NE SAISIS PAS POURQUOI... 377 echo " <u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<center>".preg_replace('/"/','',preg_replace("/'/","",visu_tache($mp_curr[0]["macAddress"],'light')))."</center>')")."\"><img name=\"action_image$loop\" src=\"../elements/images/detail.gif\"></u>"; 378 379 $temoin_action="y"; 380 381 //echo " <u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<center>".preg_replace("/'/"," ",visu_tache($mp_curr[0]["macAddress"],'light'))."</center>')")."\"><img name=\"action_image$loop\" src=\"../elements/images/detail.gif\" /></u>"; 382 383 //echo " <u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<center>".visu_tache($mp_curr[0]["macAddress"],'light')."</center>')")."\"><img name=\"action_image$loop\" src=\"../elements/images/detail.gif\" /></u>"; 384 } 385 else { 386 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Pas d'action programmée\" title=\"Pas d'action programmée\" />"; 387 } 388 } 389 else { 390 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Il faut commencer par effectuer la configuration DHCP\" title=\"Il faut commencer par effectuer la configuration DHCP\" />"; 391 } 392 echo "</td>\n"; 393 394 if($temoin_action=="y") { 395 echo "<td>\n"; 396 echo "<input type='checkbox' name='suppr[]' id='suppr_".$i."_".$loop."' value='$id_machine' />\n"; 397 echo "</td>\n"; 398 } 399 else { 400 echo "<td>\n"; 401 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Pas d'action à supprimer\" title=\"Pas d'action à supprimer\" />\n"; 402 echo "</td>\n"; 403 } 404 405 // Rapports 406 echo "<td width='20%'>\n"; 407 if($id_machine!=""){ 408 $sql="SELECT * FROM se3_tftp_rapports WHERE id='".$id_machine."' ORDER BY date DESC;"; 409 $res=mysql_query($sql); 410 if(mysql_num_rows($res)>0) { 411 $lig=mysql_fetch_object($res); 412 echo "<a href='visu_rapport.php?id_machine=$id_machine' target='_blank'><img src=\"../elements/images/enabled.gif\" border='0' alt=\"Visualiser le(s) rapport(s) existant(s)\" title=\"Visualiser le(s) rapport(s) existant(s)\" /></a>"; 413 echo "<br />\n"; 414 echo "<span style='font-size: x-small;' title='Dernier rapport: $lig->tache ($lig->statut)'>".mysql_date_to_fr_date($lig->date)."</span>\n"; 415 } 416 else { 417 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Aucun rapport existant\" title=\"Aucun rapport existant\" />"; 418 } 419 } 420 else { 421 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Aucun rapport existant\" title=\"Aucun rapport existant\" />"; 422 } 423 echo "</td>\n"; 424 425 426 // Sauvegardes existantes 427 echo "<td width='20%'>\n"; 428 if($id_machine!=""){ 429 $sql="SELECT * FROM se3_tftp_sauvegardes WHERE id='".$id_machine."' ORDER BY date DESC;"; 430 $res=mysql_query($sql); 431 if(mysql_num_rows($res)>0) { 432 $lig=mysql_fetch_object($res); 433 echo "<a href='visu_svg.php?id_machine=$id_machine' target='_blank'><img src=\"../elements/images/enabled.gif\" border='0' alt=\"Visualiser la(les) sauvegarde(s) existante(s)\" title=\"Visualiser la(les) sauvegarde(s) existante(s)\" /></a>"; 434 echo "<br />\n"; 435 echo "<span style='font-size: x-small;' title='Dernière sauvegarde: $lig->image'>".mysql_date_to_fr_date($lig->date)."</span>\n"; 436 } 437 else { 438 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Aucune sauvegarde existante\" title=\"Aucune sauvegarde existante\" />"; 439 } 440 } 441 else { 442 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Aucune sauvegarde existante\" title=\"Aucune sauvegarde existante\" />"; 443 } 444 echo "</td>\n"; 445 446 echo "</tr>\n"; 447 } 448 } 449 echo "</table>\n"; 450 if($max_eff_parc<$loop) {$max_eff_parc=$loop;} 451 } 452 453 echo "<script type='text/javascript'> 454 function check_suppr(num_parc,mode) { 455 for(i=0;i<$max_eff_parc;i++){ 456 if(document.getElementById('suppr_'+num_parc+'_'+i)){ 457 if(mode=='check'){ 458 document.getElementById('suppr_'+num_parc+'_'+i).checked=true; 459 } 460 else{ 461 document.getElementById('suppr_'+num_parc+'_'+i).checked=false; 462 } 463 } 464 } 465 } 466 </script>\n"; 467 468 echo "<p align='center'><input type=\"submit\" name=\"submit\" value=\"Valider les suppressions\" /></p>\n"; 469 echo "</form>\n"; 470 471 echo "<p><i>NOTE:</i> Ajouter l'affichage du rapport s'il existe, des sauvegardes existantes,...</p>"; 472 473 //echo "<p><a href='".$_SERVER['PHP_SELF']."'>Retour au choix du(des) parc(s)</a>.</p>\n"; 474 } 475 } 476 //elseif($mode_rech=="svg"){ 477 //elseif(($mode_rech=="svg")||($mode_rech=="rest")){ 478 elseif(($mode_rech=="svg")||($mode_rech=="rest")||($mode_rech=="rapport")||($mode_rech=="unattend_xp")){ 479 echo "<script type='text/javascript' src='../includes/prototype.js'></script>\n"; 480 481 echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">\n"; 482 echo "<input type=\"hidden\" name=\"mode_rech\" value=\"$mode_rech\" />\n"; 483 484 // Afficher un tableau des parcs avec les machines qui ont une action programmée... 485 //for($i=0;$i<count($parc);$i++){ 486 487 if($mode_rech=="svg") { 488 echo "<h2>Sauvegardes en attente</h2>\n"; 489 490 $sql="SELECT * FROM se3_tftp_action WHERE type='sauvegarde' ORDER BY num_op,name;"; 491 $res=mysql_query($sql); 492 if(mysql_num_rows($res)==0){ 493 echo "<p>Aucune sauvegarde n'est en attente.</p>\n"; 494 include ("pdp.inc.php"); 495 exit(); 496 } 497 } 498 elseif($mode_rech=="rest") { 499 echo "<h2>Restaurations en attente</h2>\n"; 500 501 $sql="SELECT * FROM se3_tftp_action WHERE type='restauration' ORDER BY num_op,name;"; 502 $res=mysql_query($sql); 503 if(mysql_num_rows($res)==0){ 504 echo "<p>Aucune restauration n'est en attente.</p>\n"; 505 include ("pdp.inc.php"); 506 exit(); 507 } 508 } 509 elseif($mode_rech=="rapport") { 510 echo "<h2>Remontées de rapports programmées</h2>\n"; 511 512 $sql="SELECT * FROM se3_tftp_action WHERE type='rapport' ORDER BY num_op,name;"; 513 $res=mysql_query($sql); 514 if(mysql_num_rows($res)==0){ 515 echo "<p>Aucune remontée de rapport n'est en attente.</p>\n"; 516 include ("pdp.inc.php"); 517 exit(); 518 } 519 } 520 elseif($mode_rech=="unattend_xp") { 521 echo "<h2>Remontées de rapports programmées</h2>\n"; 522 523 $sql="SELECT * FROM se3_tftp_action WHERE type='unattend_xp' ORDER BY num_op,name;"; 524 $res=mysql_query($sql); 525 if(mysql_num_rows($res)==0){ 526 echo "<p>Aucune installation unattend xp n'est en attente.</p>\n"; 527 include ("pdp.inc.php"); 528 exit(); 529 } 530 } 531 532 //$mp=gof_members($parc[$i],"parcs",1); 533 $nombre_machine=mysql_num_rows($res); 534 $mp=array(); 535 //sort($mp); 536 while($lig=mysql_fetch_object($res)) { 537 $mp[]=$lig->name; 538 } 539 540 //echo "<table border='1'>\n"; 541 echo "<table class='crob'>\n"; 542 echo "<tr>\n"; 543 544 //echo "<th>Numéro d'opération</th>\n"; 545 echo "<th>Nom</th>\n"; 546 echo "<th>Etat</th>\n"; 547 echo "<th>Session</th>\n"; 548 echo "<th>Config DHCP</th>\n"; 549 550 echo "<th>Action</th>\n"; 551 552 echo "<th>Supprimer l'action<br />\n"; 553 echo "<a href='#' onclick='check_suppr(\"check\");return false'><img src=\"../elements/images/enabled.gif\" border='0' alt=\"Tout cocher\" title=\"Tout cocher\" /></a>\n"; 554 echo " / <a href='#' onclick='check_suppr(\"uncheck\");return false'><img src=\"../elements/images/disabled.gif\" border='0' alt=\"Tout décocher\" title=\"Tout décocher\" /></a>\n"; 555 echo "</th>\n"; 556 557 echo "<th>Rapports</th>\n"; 558 echo "<th>Sauvegardes<br />antérieures</th>\n"; 559 560 //echo "<th></th>\n"; 561 echo "</tr>\n"; 562 563 for ($loop=0; $loop < count($mp); $loop++) { 564 $mpenc=urlencode($mp[$loop]); 565 566 // Test si on a une imprimante ou une machine 567 $resultat=search_imprimantes("printer-name=$mpenc","printers"); 568 $suisje_printer="non"; 569 for ($loopp=0; $loopp < count($resultat); $loopp++) { 570 if ($mpenc==$resultat[$loopp]['printer-name']) { 571 $suisje_printer="yes"; 572 continue; 573 } 574 } 575 576 if($suisje_printer=="non") { 577 // Réinitialisation: 578 $id_machine=""; 579 580 echo "<tr>\n"; 581 //echo "<td width='20%'></td>\n"; 582 echo "<td width='20%'>".$mp[$loop]."</td>\n"; 583 584 // Etat: allumé ou éteint 585 echo "<td width='20%'>"; 586 $mp_curr=search_machines2("(&(cn=$mpenc)(objectClass=ipHost))","computers"); 587 if ($mp_curr[0]["ipHostNumber"]) { 588 $iphost=$mp_curr[0]["ipHostNumber"]; 589 590 echo "<div id='divip$loop'>Patientez</div>\n"; 591 echo "<script type='text/javascript'> 592 // <![CDATA[ 593 new Ajax.Updater($('divip$loop'),'ajax_lib.php?ip=$iphost&mode=ping_ip',{method: 'get'}); 594 //]]> 595 </script>\n"; 596 } 597 echo "</td>\n"; 598 599 600 // Session: ouverte ou pas... sous quelle identité 601 echo "<td width='20%'>\n"; 602 echo "<div id='divsession$loop'>Patientez</div>\n"; 603 echo "<script type='text/javascript'> 604 // <![CDATA[ 605 new Ajax.Updater($('divsession$loop'),'ajax_lib.php?nom_machine=".$mp[$loop]."&mode=session',{method: 'get'}); 606 //]]> 607 </script>\n"; 608 echo "</td>\n"; 609 610 611 // Etat config DHCP: 612 // Par la suite il ne faudra pas prendre les IP dans l'annuaire, 613 // mais dans la config DHCP parce que ce sont ces IP qui seront attribuées lors du boot PXE 614 echo "<td width='20%'>\n"; 615 //$mp_curr=search_machines("(&(cn=$mpenc)(objectClass=ipHost))","computers"); 616 if ($mp_curr[0]["macAddress"]) { 617 $sql="SELECT * FROM se3_dhcp WHERE mac='".$mp_curr[0]["macAddress"]."';"; 618 //echo "$sql<br />"; 619 $res=mysql_query($sql); 620 if(mysql_num_rows($res)>0) { 621 $lig=mysql_fetch_object($res); 622 $id_machine=$lig->id; 623 624 //echo $lig->ip; 625 echo "<img src=\"../elements/images/enabled.gif\" border='0' alt=\"$lig->ip\" title=\"$lig->ip\" />"; 626 } 627 else { 628 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Pas d'adresse IP attribuée\" title=\"Pas d'adresse IP attribuée\" />"; 629 } 630 } 631 else { 632 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Pas d'adresse MAC dans l'annuaire???\" title=\"Pas d'adresse MAC dans l'annuaire???\" />"; 633 } 634 echo "</td>\n"; 635 636 637 // Action programmée 638 echo "<td width='20%'>\n"; 639 /* 640 foreach($mp_curr[0] as $champ => $valeur) { 641 echo "\$mp_curr[0]['$champ']=$valeur<br />"; 642 } 643 */ 644 if($id_machine!=""){ 645 $sql="SELECT * FROM se3_tftp_action WHERE id='".$id_machine."';"; 646 $res=mysql_query($sql); 647 if(mysql_num_rows($res)>0) { 648 $lig=mysql_fetch_object($res); 649 //echo "<a href='visu_action.php?id_machine=$id_machine' target='_blank'>$lig->type</a>"; 650 echo "<a href='visu_action.php?id_machine=$id_machine' target='_blank'>$lig->type</a> (<i>$lig->num_op</i>)"; 651 //echo " <u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<center>".preg_replace('/\n/',"",preg_replace("/'/","",visu_tache($mp_curr[0]["macAddress"],'light')))."</center>')")."\"><img name=\"action_image$loop\" src=\"../elements/images/detail.gif\"></u>"; 652 echo " <u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<center>".preg_replace("/'/","",visu_tache($mp_curr[0]["macAddress"],'light'))."</center>')")."\"><img name=\"action_image$loop\" src=\"../elements/images/detail.gif\"></u>"; 653 } 654 else { 655 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Pas d'action programmée\" title=\"Pas d'action programmée\" />"; 656 } 657 } 658 else { 659 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Il faut commencer par effectuer la configuration DHCP\" title=\"Il faut commencer par effectuer la configuration DHCP\" />"; 660 } 661 echo "</td>\n"; 662 663 echo "<td>\n"; 664 echo "<input type='checkbox' name='suppr[]' id='suppr_".$loop."' value='$id_machine' />\n"; 665 echo "</td>\n"; 666 667 // Rapports 668 echo "<td width='20%'>\n"; 669 if($id_machine!=""){ 670 $sql="SELECT * FROM se3_tftp_rapports WHERE id='".$id_machine."';"; 671 $res=mysql_query($sql); 672 if(mysql_num_rows($res)>0) { 673 $lig=mysql_fetch_object($res); 674 echo "<a href='visu_rapport.php?id_machine=$id_machine' target='_blank'><img src=\"../elements/images/enabled.gif\" border='0' alt=\"Visualiser le(s) rapport(s) existant(s)\" title=\"Visualiser le(s) rapport(s) existant(s)\" /></a>"; 675 } 676 else { 677 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Aucun rapport existant\" title=\"Aucun rapport existant\" />"; 678 } 679 } 680 else { 681 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Aucun rapport existant\" title=\"Aucun rapport existant\" />"; 682 } 683 echo "</td>\n"; 684 685 686 // Sauvegardes existantes 687 echo "<td width='20%'>\n"; 688 if($id_machine!=""){ 689 $sql="SELECT * FROM se3_tftp_sauvegardes WHERE id='".$id_machine."';"; 690 $res=mysql_query($sql); 691 if(mysql_num_rows($res)>0) { 692 $lig=mysql_fetch_object($res); 693 echo "<a href='visu_svg.php?id_machine=$id_machine' target='_blank'><img src=\"../elements/images/enabled.gif\" border='0' alt=\"Visualiser la(les) sauvegarde(s) existante(s)\" title=\"Visualiser la(les) sauvegarde(s) existante(s)\" /></a>"; 694 } 695 else { 696 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Aucune sauvegarde existante\" title=\"Aucune sauvegarde existante\" />"; 697 } 698 } 699 else { 700 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Aucune sauvegarde existante\" title=\"Aucune sauvegarde existante\" />"; 701 } 702 echo "</td>\n"; 703 704 echo "</tr>\n"; 705 } 706 } 707 echo "</table>\n"; 708 //} 709 710 echo "<script type='text/javascript'> 711 function check_suppr(mode) { 712 for(i=0;i<$nombre_machine;i++){ 713 if(document.getElementById('suppr_'+i)){ 714 if(mode=='check'){ 715 document.getElementById('suppr_'+i).checked=true; 716 } 717 else{ 718 document.getElementById('suppr_'+i).checked=false; 719 } 720 } 721 } 722 } 723 </script>\n"; 724 725 echo "<p align='center'><input type=\"submit\" name=\"submit\" value=\"Valider les suppressions\" /></p>\n"; 726 echo "</form>\n"; 727 728 //echo "<p><i>NOTE:</i> Ajouter l'affichage du rapport s'il existe, des sauvegardes existantes,...</p>"; 729 730 //echo "<p><a href='".$_SERVER['PHP_SELF']."'>Retour au choix du(des) parc(s)</a>.</p>\n"; 731 732 } 733 elseif($mode_rech=="clone"){ 734 if(!isset($num_op)) { 735 echo "<h2>Clonages en attente</h2>\n"; 736 737 $sql="SELECT * FROM se3_tftp_action WHERE type='udpcast_emetteur' ORDER BY num_op;"; 738 $res=mysql_query($sql); 739 if(mysql_num_rows($res)>0) { 740 741 echo "<table class='crob'>\n"; 742 echo "<tr>\n"; 743 echo "<th>Numéro d'opération</th>\n"; 744 echo "<th>Emetteur</th>\n"; 745 echo "<th>Clones</th>\n"; 746 echo "<th>Disque/Partition</th>\n"; 747 echo "<th>Port</th>\n"; 748 echo "<th>Compression</th>\n"; 749 echo "</tr>\n"; 750 while($lig=mysql_fetch_object($res)) { 751 echo "<tr>\n"; 752 echo "<td><a href='".$_SERVER['PHP_SELF']."?num_op=$lig->num_op&mode_rech=clone'>$lig->num_op</a></td>\n"; 753 echo "<td>$lig->name</td>\n"; 754 755 echo "<td>"; 756 $sql="SELECT * FROM se3_tftp_action WHERE num_op='$lig->num_op' AND type='udpcast_recepteur' ORDER BY name;"; 757 //echo "$sql<br />"; 758 $res2=mysql_query($sql); 759 if(mysql_num_rows($res2)>0) { 760 $cpt=0; 761 while($lig2=mysql_fetch_object($res2)) { 762 if($cpt>0) {echo ", ";} 763 echo $lig2->name; 764 $cpt++; 765 } 766 } 767 else { 768 echo "<span style='color:red'>Aucun récepteur</span>"; 769 } 770 echo "</td>\n"; 771 772 // Rechercher dans le fichier de conf... ou dans $lig->infos 773 $tab_infos=decoupe_infos($lig->infos); 774 echo "<td>"; 775 if(isset($tab_infos['disk'])) {echo $tab_infos['disk'];}else{echo "<span style='color:red'>NaN</span>";} 776 echo "</td>\n"; 777 echo "<td>"; 778 if(isset($tab_infos['port'])) {echo $tab_infos['port'];}else{echo "<span style='color:red'>NaN</span>";} 779 echo "</td>\n"; 780 echo "<td>"; 781 if(isset($tab_infos['compr'])) {echo $tab_infos['compr'];}else{echo "<span style='color:red'>NaN</span>";} 782 echo "</td>\n"; 783 echo "</tr>\n"; 784 } 785 echo "</table>\n"; 786 787 echo "<p><i>A FAIRE:</i></p>\n"; 788 echo "<ul>\n"; 789 echo "<li>Permettre d'ajouter une ou des machines dans une opération de clonage</li>\n"; 790 echo "<li>Supprimer automatiquement les opérations udpcast_recepteur si on supprime l'action udpcast_emetteur</li>\n"; 791 echo "</ul>\n"; 792 } 793 else { 794 echo "<p>Aucun clonage n'est en attente.</p>\n"; 795 } 796 } 797 else { 798 echo "<h2>Clonage n°$num_op</h2>\n"; 799 800 $sql="SELECT * FROM se3_tftp_action WHERE num_op='$num_op';"; 801 $res=mysql_query($sql); 802 $nombre_machine=mysql_num_rows($res); 803 if($nombre_machine>0) { 804 805 echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">\n"; 806 echo "<input type=\"hidden\" name=\"mode_rech\" value=\"$mode_rech\" />\n"; 807 808 echo "<table class='crob'>\n"; 809 echo "<tr>\n"; 810 echo "<th>Numéro d'opération</th>\n"; 811 echo "<th>Nom</th>\n"; 812 echo "<th>Statut</th>\n"; 813 echo "<th>Supprimer l'action<br />\n"; 814 echo "<a href='#' onclick='check_suppr(\"check\");return false'><img src=\"../elements/images/enabled.gif\" border='0' alt=\"Tout cocher\" title=\"Tout cocher\" /></a>\n"; 815 echo " / <a href='#' onclick='check_suppr(\"uncheck\");return false'><img src=\"../elements/images/disabled.gif\" border='0' alt=\"Tout décocher\" title=\"Tout décocher\" /></a>\n"; 816 echo "</th>\n"; 817 echo "</tr>\n"; 818 819 $cpt=0; 820 while($lig=mysql_fetch_object($res)) { 821 echo "<tr>\n"; 822 echo "<td>$lig->num_op</td>\n"; 823 echo "<td>$lig->name</td>\n"; 824 echo "<td>"; 825 if($lig->type=="udpcast_emetteur") {echo "Emetteur";} else {echo "Récepteur";} 826 echo "</td>\n"; 827 828 echo "<td>\n"; 829 echo "<input type='checkbox' name='suppr[]' id='suppr_".$cpt."' value='$lig->id' />\n"; 830 echo "</td>\n"; 831 832 echo "</tr>\n"; 833 $cpt++; 834 } 835 836 echo "</table>\n"; 837 838 echo "<script type='text/javascript'> 839 function check_suppr(mode) { 840 for(i=0;i<$nombre_machine;i++){ 841 if(document.getElementById('suppr_'+i)){ 842 if(mode=='check'){ 843 document.getElementById('suppr_'+i).checked=true; 844 } 845 else{ 846 document.getElementById('suppr_'+i).checked=false; 847 } 848 } 849 } 850 } 851 </script>\n"; 852 853 echo "<p align='center'><input type=\"submit\" name=\"submit\" value=\"Valider les suppressions\" /></p>\n"; 854 echo "</form>\n"; 855 } 856 else { 857 echo "<p>Aucune machine ne correspond au numéro d'opération choisi.</p>\n"; 858 } 859 } 860 //echo "<p><a href='".$_SERVER['PHP_SELF']."'>Retour au menu de consultation</a>.</p>\n"; 861 } 862 echo "<p><a href='".$_SERVER['PHP_SELF']."'>Retour au menu de consultation</a>.</p>\n"; 863 } 864 } 865 else { 866 print (gettext("Vous n'avez pas les droits nécessaires pour ouvrir cette page...")); 867 } 868 869 // Footer 870 include ("pdp.inc.php"); 871 872 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |