NBU
view release on metacpan or search on metacpan
bin/robot-status.pl view on Meta::CPAN
#!/usr/local/bin/perl
use strict;
use Getopt::Std;
use Time::Local;
my %opts;
getopts('dtscvM:', \%opts);
if ($opts{'v'}) {
$opts{'c'} = $opts{'t'} = $opts{'s'} = 1;
}
use NBU;
NBU->debug($opts{'d'});
my $master;
if ($opts{'M'}) {
$master = NBU::Host->new($opts{'M'});
}
else {
my @masters = NBU->masters; $master = $masters[0];
}
foreach my $stu (NBU::StorageUnit->list($master)) {
NBU::Drive->populate($stu->host)
unless (!defined($stu->host));
}
for my $robot (NBU::Robot->farm) {
next unless (defined($robot));
print "Robot ".$robot->id;
print " controlled from ".$robot->host->name if (defined($robot->host));
print "\n";
for my $drive (sort {$a->robotDriveIndex <=> $b->robotDriveIndex} $robot->drives) {
print " ".($drive->down ? "v" : "^");
printf(" %2u", $drive->robotDriveIndex);
printf(" %-8s", $drive->name);
printf(" (%2u)", $drive->id) if ($opts{'v'});
if ($opts{'t'}) {
if ($drive->busy) {
print " (".$drive->mount->volume->id.")";
}
else {
print " ( )";
}
}
print " SN:".$drive->serialNumber if ($opts{'s'});
print " Cleaned: ".substr(localtime($drive->lastCleaned), 4) if ($opts{'c'});
print ": ".$drive->comment if ($opts{'v'});
print "\n";
}
}
( run in 2.007 seconds using v1.01-cache-2.11-cpan-99c4e6809bf )