1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
package Ocsinventory::Agent::Backend::OS::Solaris::Ports;
use strict;
sub run {
my $params = shift;
my $common = $params->{common};
my $zone;
my $SystemModel;
my $aarch;
my $flag;
my $caption;
my $description;
my $name;
my $type;
if ( !$common->can_run("zonename") || `zonename` =~ /global/ ) {
# Ether pre Sol10 or in Sol10/Sol11 global zone
$zone = "global";
} else {
$zone = "";
}
if ($zone) {
chomp($SystemModel = `uname -m`);
chomp($aarch = `uname -p`);
if( $aarch eq "i386" ){
#
# For a Intel/AMD arch, we're using smbios
#
foreach(`/usr/sbin/smbios -t SMB_TYPE_PORT`) {
if(/\s+Internal Reference Designator:\s*(.+)/i ) {
$flag = 1;
$name = $1;
}
elsif ($flag && /^$/) { # end of section
$flag = 0;
$common->addPorts({
CAPTION => $caption,
DESCRIPTION => $description,
NAME => $name,
TYPE => $type,
});
$caption = $description = $name = $type = undef;
}
elsif ($flag) {
$caption = $1 if /\s+External Connector Type:.*\((.+)\)/i;
$description = $1 if /\s+External Reference Designator:\s*(.+)/i;
$type = $1 if /\s+Port Type:.*\((.+)\)/i;
}
}
}
elsif( $aarch eq "sparc" ) {
#
# For a Sparc arch, we're done
#
}
}
}
1;
|