 #!/usr/bin/perl -w
use strict;
use LWP::UserAgent;
use HTML::Form;
use XML::Parser;
use Newtestlib;


       	         #########################################################################################
       		 #                                                                                       #
       		 #                               file POOLER Version 1                                   #
       		 #                                                                                       #
        	 #########################################################################################


##########################################################################################################
my $response_robot;#$x; #pour recuperer la reponse de la requete
my $response_sce;#$y; #pour recuperer la reponse de la requete
my $debug=0;#$v=0;#pour le debug
my $name;
my @liste_sce;
my $cpt;
my @ba;
my $base;
my $f;
my $srv; #nom du serveur
my $trace;   #nom du fichier trace du pooler
my @list_robot;
my $cpt_robot;
my $i;
my $j;
my $file_r;#nom complet du fichier file_rbt_sce
#############################################################################################################
if(  @ARGV != 2 ){print("missing argument argv0 is the config file path and the argv1 is the debug flag 0 or 1\n");exit(-1);}

if( not defined ( $ARGV[1]) ){$debug=0;}
if($ARGV[1] == 1){print("v=1\n");$debug=1;}
if (not -e $ARGV[0] )
	{
	print("config file ".$ARGV[0]." doesn t exist \n");
	exit;
        }

Newtestlib::get_debug($debug);
Newtestlib::get_config_file($ARGV[0]);##mode debug si v=1
@ba=Newtestlib::get_param();#recuperer les paramtres a paritr du fichier /tmp/newtest_config.cfg

$base=$ba[4];#recupere l'adresse du nmc
if($debug==1)  { print ("$base\n");}
$f=$base;
$f=~ s/\./_/g;   ##pour que le nom de fichier ne contiennet pas de '.' mais des '_' car linux n'acepte pas les '.'
if($debug==1){print("$f\n");}
$srv="http://"."$base";#caril faut qu'elle commence par http://
$trace=Newtestlib::get_road()."Newtest_trace_pooler_$base.txt";#$f"; #get_road pour recuperer le chemin ou sera mis les fichier file_rbt_sce et
Newtestlib::get_file_trace($trace);#donner le nom du fichier trace a la librairie
open(TRACE,"+>$trace") || die "error when opening file $trace"; #ouverture du fichier trace pooler en mode ecrasement(ecriture)
$response_robot=Newtestlib::request_robot($srv);

if($debug==1){print("\n$response_robot\n");}
print TRACE "\n **** FILE TRACE *****\n";
print TRACE "\n the response of the request:\n    $response_robot \n";
print TRACE "end of the first request to the server(robot)\n";
######################################################
if($debug==1)  {print("\n\n#################     parseur xml      ########################\n\n");}
print TRACE "parser xml for the xml result of the first request to the server(robot)\n";
####################
Newtestlib::parser_robot($response_robot);#parser les fichier xml resultat de la requete sur les robots
($cpt_robot,@list_robot)=Newtestlib::recup_robot();
print TRACE "end of the parser xml for the xml result of the first request to the server(robot)\n";
if ($debug==1){print ("\n -------------------------------- resultats -------------------------- \n");
           for($i=0;$i<$cpt_robot;$i++)
                                       { for($j=0;$j<"3";$j++){ print (" \n aaa $i $j  $list_robot[$i][$j] \n "); } }
          }
###############creation et remplissage du fichier de robot_scenario  file_rbt_sce_nom serveur ############################
print TRACE "Writing of the name,status and lastmessage of all robots in the file file_rbt_sce_$base\n";
$file_r=Newtestlib::get_road()."Newtest_file_rbt_sce_$f";
Newtestlib::get_file_rbtsce($file_r); #donner le nom du fichier a la librairie
if($debug==1){print ("\nbase=$base"); }
Newtestlib::writing_robot($base,$cpt_robot,@list_robot,$debug);#remplissage des informations sur les robots dans un tableau @list_robot
print TRACE "end of Writing of the name,status and lastmessage of all robots in the file file_rbt_sce_$base\n";
####pour chaque robot recuperer tous ces scenarios ainsi que leur etat et leur last message####
print TRACE "second request to the server(for each robot get the name,status and last message of his scenarios)\n";
print TRACE "boucle for\n";
for( $cpt=0;$cpt <= $cpt_robot;$cpt++) ##boucle sur tous les robots(nom de robot)
                                { if(! defined ($list_robot[$cpt][0])){Newtestlib::end();#sortir de la librairie
                                                                     goto EXIT;
                                                                    }
                                  else{
                                      $name= $list_robot[$cpt][0];
                                       Newtestlib::get_name($name); #recuperer le nom du robot en cours pour l'utiliser dans la librairie
                                       for($j=0;$j<$cpt_robot;$j++){$liste_sce[$j][4]=0;}#remetre tous les booleen a 0 ca va etre un autre robot
                                       $i=0;
                                       if($debug==1) {  print("\n le nom du robot est :  $name \n");}
                                       $response_sce=Newtestlib::req_sce($name);#requete pour recupere des informations sur les scenarios(dans un fichier xml)
                                       if($debug==1){ print ("\n y=$response_sce");}
                                       print TRACE "parser xml for the xml result of the second request to the server(scenarios)\n";
                                       Newtestlib::sce_parser($response_sce);#parser le resultat du fichier xml sceanrio puis continuer l'ensemble du travail
                                     }
                               }
                           EXIT: