#!/usr/bin/perl -w

require "common.pl";

#my $ANETD_BIN = "/usr/home/abocc/anetd/bin";
my $ANETD_BIN = "/afs/cs/user/clin/narada/abone/";

@HOSTS = (
	  "aspinwall.cmcl.cs.cmu.edu", "128.2.220.18", "freebsd",
	  "active.netsec.tislabs.com", "199.171.39.3", "linux",
	  "galileo.cere.pa.cnr.it", "147.163.3.12", "linux", # bad
	  ##"lblpc.cairn.net", "140.173.1.94", "bsd44", 
	  ##"tiswpc.cairn.net", "140.173.212.130", "bsd44", 
	  "core-abone-bos1.bbn.com", "192.1.37.15", "linux", 
	  ##"net.csie.ncu.edu.tw", "140.115.155.198", "bsd44", 
	  "nemain.cs.dal.ca", "129.173.67.2", "linux", 
	  #"abone-01.cs.princeton.edu", "128.112.152.62", "linux", 
	  "halifax.cis.upenn.edu", "158.130.66.10", "linux", 
	  #"horla.enst.fr", "137.194.161.1", "solaris", 
	  #"aegir.aero.org", "206.117.53.68", "linux", 
	  #"abone.cc.gt.atl.ga.us", "199.77.128.195", "solaris", 
	  "abone.fokus.gmd.de", "193.175.135.49", "linux", 
	  ##"sripc.cairn.net", "140.173.129.1", "bsd44", 
	  #"dad.isi.edu", "128.9.160.202", "linux", 
	  #"hub.isi.edu", "128.9.160.168", "solaris", 
	  ##"son.isi.edu", "128.9.160.128", "bsd44", 
	  #"isiepc.cairn.net", "140.173.167.1", "bsd44", 
	  ##"isiepc2.cairn.net", "140.173.167.3", "bsd44", 
	  ##"isiepc3.cairn.net", "140.173.167.4", "bsd44", 
	  #"isipc.cairn.net", "140.173.4.10", "bsd44", 
	  "abone5.cs.columbia.edu", "128.59.22.215", "linux", 
	  "abone6.cs.columbia.edu", "128.59.22.216", "linux", 
	  "abone4.cs.columbia.edu", "128.59.22.214", "linux", 
	  "abone7.cs.columbia.edu", "128.59.22.217", "linux", 
	  "abone3.cs.columbia.edu", "128.59.22.213", "linux", 
	  "abone2.cs.columbia.edu", "128.59.22.212", "linux", 
	  "abone11.cs.columbia.edu", "128.59.22.221", "linux", 
	  "abone9.cs.columbia.edu", "128.59.22.219", "linux", 
	  "abone10.cs.columbia.edu", "128.59.22.220", "linux", 
	  "abone8.cs.columbia.edu", "128.59.22.218", "linux", 
	  "abone12.cs.columbia.edu", "128.59.22.222", "linux", 
	  "flextel.grid.unina.it", "143.225.229.5", "linux", 
	  "anet.it.rit.edu", "129.21.175.129", "linux", 
	  "ave.willab.fi", "193.166.161.22", "linux",
	  "eye.isi.edu", "128.9.160.85", "linux", 
	  "abone13.cs.columbia.edu", "128.59.22.223", "linux", 
	  #"view.cs.columbia.edu", "128.59.22.28", "linux", 
	  #"mk01.maunakea.medianet.kent.edu", "131.123.36.70", "linux", 
	  "mk02.maunakea.medianet.kent.edu", "131.123.36.74", "linux", 
	  "mk00.maunakea.medianet.kent.edu", "131.123.36.66", "linux", 
	  #"mk03.maunakea.medianet.kent.edu", "131.123.36.78", "linux", 
	  #"mk04.maunakea.medianet.kent.edu", "131.123.36.82", "linux", 
	  #"branstock.aero.org", "206.117.53.87", "linux", 
	  #"gram.aero.org", "206.117.53.86", "linux", 
	  "sigmund.aero.org", "206.117.53.84", "linux", 
	  #"signy.aero.org", "206.117.53.83", "linux", 
	  #"sigurd.aero.org", "206.117.53.85", "linux", 
	  #"volsung.aero.org", "206.117.53.82", "linux", 
	  "volga.usc.edu", "128.125.91.180", "linux", 
	  #"tisepc.cairn.net", "140.173.1.42", "bsd44", 
	  #"abone.nal.utoronto.ca", "128.100.244.46", "linux", 
	  "redeye.overeye.org", "67.114.198.190", "linux", 
	  #"mk05.maunakea.medianet.kent.edu", "131.123.36.86", "linux", 
	  #"mk06.maunakea.medianet.kent.edu", "131.123.36.90", "linux", 
	  #"mk07.maunakea.medianet.kent.edu", "131.123.36.94", "linux", 
	  #"mk08.maunakea.medianet.kent.edu", "131.123.36.98", "linux", 
	  #"mk09.maunakea.medianet.kent.edu", "131.123.36.102", "linux", 
	 );

ReadHostParameter(@HOSTS);

# exp parameters
$RUNNING_TIME = 1;

# run the exp
my $host; foreach $host (@HOST_ARR) {

  my $ip = $IP_ARR{$host};
  
  my $memberListArg = "";
  if ($host ne $HOST_ARR[0]) {
    my $firstIP = $IP_ARR{$HOST_ARR[0]};
    $memberListArg = "S=-m$firstIP";
  }
  if ($OS_ARR{$host} ne "linux") {
    print "$host not linux \n";
  } else {
    print "about to execute on $host \n";
    $returnoutput = (`$ANETD_BIN/sc.linux -f anee2 $host LOAD X=http://infocom.cmcl.cs.cmu.edu/executables/proxy S=-y6000 S=-y6001 $memberListArg S=-U S=-S$RUNNING_TIME R=PSERR O=PSOUT C=\"CMU-NARADA\" 2>&1`);
    
    $lookfor = "service was started";
    if ($returnoutput !~ /$lookfor/) {
      print "error with host: $host \n output: $returnoutput";
    } else {
#      $returnoutput =  (`$ANETD_BIN/sc.bsd44 -f anee2 $host QUERY`);
    }
  }
}
exit(0);

# my $i; for ($i=0; $i<($RUNNING_TIME*60/5); $i++) {
#  my $host; foreach $host (@HOST_ARR) {
#    System("$ANETD_BIN/sc.bsd44 -f anee2 $host QUERY thread");  
#    System("$ANETD_BIN/sc.bsd44 -f anee2 $host GET PSERR");  
#
#    System("sleep 10");
#  }
# }

# /home/anee2/anetd/var/12dc0280/proxy.1020668345.linux -y6000 -y6001 -m128.2.220.18 -U -S2 

# sleep
#my $sleepTime = ($RUNNING_TIME+2)*60;
#System("sleep $sleepTime");

# retrieval

sub ReadHostParameter {
  my(@hosts) = @_;
  
  while ($TRUE) {
    my($host) = shift(@hosts);
    if (!defined($host)) {
      last;
    }
    
    @HOST_ARR = (@HOST_ARR, $host);
    $IP_ARR{$host} = shift(@hosts);
    $OS_ARR{$host} = shift(@hosts);
  }
}

