Line | |
---|
1 | package Ocsinventory::Agent::Backend::OS::HPUX::Storages; |
---|
2 | |
---|
3 | sub check { $^O =~ /hpux/ } |
---|
4 | |
---|
5 | sub run { |
---|
6 | my $params = shift; |
---|
7 | my $common = $params->{common}; |
---|
8 | |
---|
9 | my @all_type = ("tape","disk") ; |
---|
10 | my $type; |
---|
11 | |
---|
12 | my $description; |
---|
13 | my $path; |
---|
14 | my $vendor; |
---|
15 | my $ref; |
---|
16 | my $size; |
---|
17 | |
---|
18 | my $devdsk; |
---|
19 | my $devrdsk; |
---|
20 | my $revlvl; |
---|
21 | my $alternate; |
---|
22 | |
---|
23 | for ( @all_type ) { |
---|
24 | $type = "$_"; |
---|
25 | for ( `ioscan -kFnC $type | cut -d ':' -f 1,11,18` ) { |
---|
26 | if ( /(\S+)\:(\S+)\:(\S+)\s+(\S+)/ ) { |
---|
27 | $description = $1; |
---|
28 | $path = $2; |
---|
29 | $vendor = $3; |
---|
30 | $ref = $4; |
---|
31 | }; |
---|
32 | $alternate = 0 ; |
---|
33 | if ( $type eq "disk" ) { |
---|
34 | if ( /\s+(\/dev\/dsk\/\S+)\s+(\/dev\/rdsk\/\S+)/ ) { |
---|
35 | #print "1 $1 2 $2 \n"; |
---|
36 | $devdsk=$1; |
---|
37 | $devrdsk=$2; |
---|
38 | # We look if whe are on an alternate link |
---|
39 | for ( `pvdisplay $devdsk 2> /dev/null` ) { |
---|
40 | if ( /$devdsk\.+lternate/ ) { |
---|
41 | $alternate=1; |
---|
42 | }; |
---|
43 | }; |
---|
44 | # We are not on an alternate link |
---|
45 | if ( $alternate eq 0 ) { |
---|
46 | #$size = `diskinfo -b $devrdsk`; |
---|
47 | |
---|
48 | for ( `diskinfo -v $devrdsk`) { |
---|
49 | if ( /^\s+size:\s+(\S+)/ ) { |
---|
50 | $size=$1; |
---|
51 | $size = int ( $size/1024 ) if $size; |
---|
52 | }; |
---|
53 | if ( /^\s+rev level:\s+(\S+)/ ) { |
---|
54 | $revlvl=$1; |
---|
55 | }; |
---|
56 | }; |
---|
57 | #print "vendor $vendor ref $ref type $type description $description path $path size $size\n"; |
---|
58 | $common->addStorages({ |
---|
59 | MANUFACTURER => $vendor, |
---|
60 | MODEL => $ref, |
---|
61 | NAME => $devdsk, |
---|
62 | DESCRIPTION => $description, |
---|
63 | TYPE => $type, |
---|
64 | DISKSIZE => $size, |
---|
65 | FIRMWARE => $revlvl, |
---|
66 | }); |
---|
67 | }; |
---|
68 | }; |
---|
69 | } else { |
---|
70 | # We look for tapes |
---|
71 | if ( /^\s+(\/dev\/rmt\/\Sm)\s+/ ) { |
---|
72 | $devdsk=$1; |
---|
73 | $common->addStorages({ |
---|
74 | MANUFACTURER => $vendor, |
---|
75 | MODEL => $ref, |
---|
76 | NAME => $devdsk, |
---|
77 | DESCRIPTION => $description, |
---|
78 | TYPE => $type, |
---|
79 | DISKSIZE => '' |
---|
80 | }); |
---|
81 | }; |
---|
82 | }; |
---|
83 | }; |
---|
84 | }; |
---|
85 | } |
---|
86 | |
---|
87 | 1; |
---|
Note: See
TracBrowser
for help on using the repository browser.