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

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

Copyt trusty code

File size: 3.2 KB
Line 
1package Ocsinventory::Agent::Backend::OS::HPUX::CPU;
2
3###
4# Version 1.1
5# Correction of Bug n 522774
6#
7# thanks to Marty Riedling for this correction
8#
9###
10
11use strict;
12use LWP::UserAgent;
13
14sub check  { $^O =~ /hpux/ }
15
16sub run {
17   my $params = shift;
18   my $common = $params->{common};
19
20   my $processort;
21   my $processorn;
22   my $processors="";
23   my $DeviceType;
24   my $cpuInfo;
25   my $serie;
26
27   # Using old system HpUX without machinfo
28   # the Hpux whith machinfo will be done after
29   my %cpuInfos = (
30                "D200"=>"7100LC 75",
31                "D210"=>"7100LC 100",
32                "D220"=>"7300LC 132",
33                "D230"=>"7300LC 160",
34                "D250"=>"7200 100",
35                "D260"=>"7200 120",
36                "D270"=>"8000 160",
37                "D280"=>"8000 180",
38                "D310"=>"7100LC 100",
39                "D320"=>"7300LC 132",
40                "D330"=>"7300LC 160",
41                "D350"=>"7200 100",
42                "D360"=>"7200 120",
43                "D370"=>"8000 160",
44                "D380"=>"8000 180",
45                "D390"=>"8200 240",
46                "K360"=>"8000 180",
47                "K370"=>"8200 200",
48                "K380"=>"8200 240",
49                "K400"=>"7200 100",
50                "K410"=>"7200 120",
51                "K420"=>"7200 120",
52                "K460"=>"8000 180",
53                "K570"=>"8200 200",
54                "K580"=>"8200 240",
55                "L1000-36"=>"8500 360",
56                "L1500-7x"=>"8700 750",
57                "L3000-7x"=>"8700 750",
58                "N4000-44"=>"8500 440",
59                "ia64 hp server rx1620"=>"itanium 1600");
60
61   if ( can_run ("machinfo") )
62   {
63      foreach ( `machinfo`)
64      {
65         if ( /Number of CPUs\s+=\s+(\d+)/ )
66         {
67            $processorn=$1;
68         }
69         if ( /Clock speed\s+=\s+(\d+)\s+MHz/ )
70         {
71            $processors=$1;
72         }
73         # Added for HPUX 11.31
74         if ( /Intel\(R\) Itanium 2 9[01]00 series processor \((\d+\.\d+)/ )
75         {
76            $processors=$1*1000;
77         }
78         if ( /(\d+)\s+logical processors/ )
79         {
80            $processorn=$1;
81         }
82         # end HPUX 11.31
83
84      }
85   }
86   else
87   {
88      chomp($DeviceType =`model |cut -f 3- -d/`);
89      my $cpuInfo = $cpuInfos{"$DeviceType"};
90      if ( "$cpuInfo" =~ /^(\S+)\s(\S+)/ ) 
91      {
92         $processort=$1;
93         $processors=$2;
94      } 
95      else 
96      {
97        for ( `echo 'sc product cpu;il' | /usr/sbin/cstm | grep "CPU Module"` ) 
98        {
99           if ( /(\S+)\s+CPU\s+Module/ ) 
100           {
101             $processort=$1;
102           }
103        };
104        for ( `echo 'itick_per_usec/D' | adb -k /stand/vmunix /dev/kmem` )
105        {
106            if ( /tick_per_usec:\s+(\d+)/ )
107            {
108               $processors=$1;
109            }
110        }
111      };
112      # NBR CPU
113      chomp($processorn=`ioscan -Fk -C processor | wc -l`);
114      #print "HP $processort A $processorn A $processors ";
115   }
116
117   chomp($serie = `uname -m`);
118   if ( $serie =~ /ia64/) 
119   {
120      $processort="Itanium"
121   }
122   if ( $serie =~ /9000/) 
123   {
124      $processort="PA$processort";
125   }
126   $common->setHardware({
127
128      PROCESSORT => $processort,
129      PROCESSORN => $processorn,
130      PROCESSORS => $processors,
131    });
132
133
134}
135
1361;
Note: See TracBrowser for help on using the repository browser.