/usr/local/CPAN/Ocsinventory-Agent/Ocsinventory/Agent/Backend/OS/BSD/Storages.pm
package Ocsinventory::Agent::Backend::OS::BSD::Storages;
use strict;
sub check {-r '/etc/fstab'}
sub run {
my $params = shift;
my $inventory = $params->{inventory};
my @values;
my @devices;
open FSTAB, "/etc/fstab";
while(<FSTAB>){
if(/^\/dev\/(\D+\d)/) {
push @devices, $1 unless grep(/^$1$/, @devices);
}
}
for my $dev (@devices) {
my ($model,$capacity,$found, $manufacturer);
for(`dmesg`){
if(/^$dev/) { $found = 1;}
if(/^$dev.*<(.*)>/) { $model = $1; }
if(/^$dev.*\s+(\d+)\s*MB/) { $capacity = $1;}
}
if ($model =~ s/^(SGI|SONY|WDC|ASUS|LG|TEAC|SAMSUNG|PHILIPS|PIONEER|MAXTOR|PLEXTOR|SEAGATE|IBM|SUN|SGI|DEC|FUJITSU|TOSHIBA|YAMAHA|HITACHI|VERITAS)\s*//i) {
$manufacturer = $1;
}
# clean up the model
$model =~ s/^(\s|,)*//;
$model =~ s/(\s|,)*$//;
$inventory->addStorages({
MANUFACTURER => $manufacturer,
MODEL => $model,
DESCRIPTION => $dev,
TYPE => '',
DISKSIZE => $capacity
});
}
}
1;