Are you Covered?
JSchmitz
created: 2006-03-20 11:07:12
#!/usr/bin/perl -w

#  Requires NBU module installed on host machine.....
use strict;

use Getopt::Std;

my %opts;
getopts('ucd', \%opts);

use NBU;
NBU->debug($opts{'d'});

NBU::Class->populate;

my @clients;
if ($#ARGV > -1 ) {
  for my $clientName (@ARGV) {
    push @clients, NBU::Host->new($clientName);
  }
}
else {
  NBU::Host->populate(1);
  @clients = (sort {$a->name cmp $b->name} (NBU::Host->list));
}

foreach my $client (@clients) {
  my $cn = $client->name;

  print "$cn:";
  my %mountPointList = $client->coverage;
  foreach my $mp (sort (keys %mountPointList)) {
    my $clR = $mountPointList{$mp};
    my $mpStatus = "\t$mp:";
    my $disposition;
    my $covered;
    if ($clR) {
      foreach my $class (@$clR) {
	my $cn = $class->name;
	if ($class->active) {
	  $mpStatus .= " $cn" if ($opts{'c'} || !$opts{'u'});
	  $covered += 1;
	}
	else {
	  $mpStatus .= " ($cn)" if ($opts{'u'} || !$opts{'c'});
	}
      }
    }
    else {
      $mpStatus .= " not covered";
    }
    if ((!$opts{'u'} && !$opts{'c'}) ||
	($opts{'u'} && !$covered) ||
	($opts{'c'} && $covered)) {
      print "\n$mpStatus";
    }
  }

  if ($opts{'c'} || !$opts{'u'}) {
    my $sep = "\n\tadditional active classes are: ";
    foreach my $class ($client->classes) {
      if ($class->active && !$class->providesCoverage) {
	print $sep.$class->name;
	$sep = " ";
      }
    }
  }

  if ($opts{'u'} || !$opts{'c'}) {
    my $sep = "\n\tadditional inactive classes are: ";
    foreach my $class ($client->classes) {
      if (!$class->active && !$class->providesCoverage) {
	print $sep."(".$class->name.")";
	$sep = " ";
      }
    }
  }
  print "\n";
}

Re: Are you Covered?
created: 2006-03-20 11:27:34
Don't forget to mention it's for NetBackup.

perlmonks.org content © perlmonks.org and JSchmitz, wazoox

prlmnks.org © 2006 edmund von der burg (eccles & toad)

v 0.03