source: ocsinventory-agent/trunk/fuentes/lib/Ocsinventory/Agent/Backend/OS/HPUX/Storages.pm @ 468

Last change on this file since 468 was 468, checked in by mabarracus, 4 years ago

Copyt trusty code

File size: 2.2 KB
Line 
1package Ocsinventory::Agent::Backend::OS::HPUX::Storages;
2
3sub check  { $^O =~ /hpux/ }
4
5sub 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
871;
Note: See TracBrowser for help on using the repository browser.