AFS-Command
view release on metacpan or search on metacpan
lib/AFS/Command/VOS.pm view on Meta::CPAN
#
# If we get this far, then we have an unrecognized
# line of vos examine output. Complain.
#
$self->_Carp("Unrecognized output format:\n" . $_);
}
#
# Are we looking for extended data??
#
if ( $args{extended} ) {
my $raw = AFS::Object->new();
my $author = AFS::Object->new();
my $boundary = 0;
while ( defined($_ = $self->{handle}->getline()) ) {
chomp;
$boundary++ if /^\s+\|-+\|\s*$/;
last if /^\s*$/ && $boundary == 4;
next unless /\s+(\d+)\s+\|\s+(\d+)\s+\|\s+(\d+)\s+\|\s+(\d+)\s+\|/;
my @column = ( $1, $2, $3, $4 );
my $class = "";
my $int = "";
$class = 'reads' if /^Reads/;
$class = 'writes' if /^Writes/;
if ( $class ) {
my $same = AFS::Object->new
(
total => $column[0],
auth => $column[1],
);
my $diff = AFS::Object->new
(
total => $column[2],
auth => $column[3],
);
my $stats = AFS::Object->new
(
same => $same,
diff => $diff,
);
$raw->_setAttribute( $class => $stats );
}
$int = '0sec' if /^0-60 sec/;
$int = '1min' if /^1-10 min/;
$int = '10min' if /^10min-1hr/;
$int = '1hr' if /^1hr-1day/;
$int = '1day' if /^1day-1wk/;
$int = '1wk' if /^> 1wk/;
if ( $int ) {
my $file = AFS::Object->new
(
same => $column[0],
diff => $column[1],
);
my $dir = AFS::Object->new
(
same => $column[2],
diff => $column[3],
);
my $stats = AFS::Object->new
(
file => $file,
dir => $dir,
);
$author->_setAttribute( $int => $stats );
}
}
$header->_setAttribute
(
raw => $raw,
author => $author,
);
}
$result->_addVolumeHeader($header);
next;
}
#
# The rest of the information we get will be from the
# VLDB. This will start with the volume ids, which we DO want
# to check against those found above, since they are from a
# different source, and a conflict is cause for concern.
#
if ( /^\s+RWrite:\s+(\d+)/ ) {
if ( /RWrite:\s+(\d+)/ ) { $entry->_setAttribute( rwrite => $1 ); }
if ( /ROnly:\s+(\d+)/ ) { $entry->_setAttribute( ronly => $1 ); }
if ( /Backup:\s+(\d+)/ ) { $entry->_setAttribute( backup => $1 ); }
if ( /RClone:\s+(\d+)/ ) { $entry->_setAttribute( rclone => $1 ); }
next;
( run in 0.666 second using v1.01-cache-2.11-cpan-39bf76dae61 )