#!/opt/bin/perl -I/opt/ras/lib:/opt/ras/lib/auto

use Getopt::Std;
use SANAgent;
use Debug;
use System;
use PDM::ConfigFile;

if (-d "/opt/ras") {
  System->set_home("/opt/ras");
  System->set_config("/opt/ras/DATA/rasagent.conf");

} elsif (-d "/opt/SUNWrasag") {
  System->set_home("/opt/SUNWrasag");
  System->set_config("/opt/SUNWrasag/DATA/rasagent.conf");
} else {
  print "No SUNWrasag directory!\n";
  exit;
}

if ("@ARGV" eq "") {
   $noarg = 1;
}
if (!getopts("thc:ds:a:b:", \%opts)) {
    print ("Argument error : $Getopt::Std::ERROR \n");
    &usage();
}
if ($noarg) {
  $opts{a} = "all";
  $opts{c} = 0;
}

if ($opts{h} || (!$opts{t} &&  !$opts{a} && !$opts{s}) ) {
  &usage();
}
if ($opts{b}) {
  Debug->level($opts{b});
}

$report = $opts{d}? 0:1;

if ($opts{a}) { # a5k
  if ($report) {
     $report = A5KAgent->FCCounters({cache => $opts{c}, report => $report,  probe => 1,debug => $opts{b}});
     print $report;
  } else {
     ($x, $summ) = A5KAgent->FCCounters({cache => $opts{c}, report => $report, probe => 1, debug => $opts{b}});
     foreach $c (@$x) {
        print "$c \n";
     }
  }
}

if ($opts{t}) { # T3
  my($renv, $devs, $host,$notifs) = PDM::ConfigFile->new()->read();

  if ($report) {
     $report = T3Agent->FCCounters(
             {cache => $opts{c}, report => $report,  devs => $devs,
              probe => 1,         debug => $opts{b}});
     print $report;
  } else {
     ($x, $summ) = T3Agent->FCCounters(
                       {cache => $opts{c}, report => $report,  devs => $devs,
                        probe => 1,         debug => $opts{b}});
     foreach $c (@$x) {
        print "$c \n";
     }
  }
}

if ($opts{s}) {  # switch
  $ip = $opts{s};
  print "\nSwitch: $ip \n";
  if ($report) {
     $report = SwitchAgent->FCCounters({cache => $opts{c}, report => $report, ip => $ip });
     print $report;
  } else {
     ($x, $summ) = SwitchAgent->FCCounters({cache => $opts{c}, report => $report, ip => $ip});
     foreach $c (@$x) {
        print "$c \n";
     }
  }
}
  


sub usage {
   print "Usage: luxdisc 
  -d [data only, no report] 
  -b <level> [debug level (1,2) ]
  -c [use cache (1=use cache , 2=don't use cache at all, 0=default)
  -s <ip> [ switch address ] 
  -t   [T3s]
  -a [enclusure name or 'all'] 
  
  Example: luxdisc -a all -s diag120         # access all a5k and one switch
  Default: no argument will run luxdisc -c0 -aall
\n";
   exit;
}
