• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Fusion inventory et HP 11.11 / PA Risc / pas de cpu pas de mémoire
#1
Bonjour,

En testant l'agent 2.1.7 sur un HP 9000 PA risc / HP UX 11.11 je me suis aperçu qu'il ne retournait pas la mémoire
et le modèle de CPU.

Ces deux patch peuvent corriger le problème :

$ diff -Naur CPU.pm.orig CPU.pm
--- CPU.pm.orig 2010-12-04 13:29:29.000000000 +0100
+++ CPU.pm 2011-03-18 16:13:30.000000000 +0100
@@ -21,7 +21,7 @@
my $params = shift;
my $inventory = $params->{inventory};

- my $CPUinfo = { MANUFACTURER => 'unknow', TYPE => 'unknow', SERIAL => 'No Serial Number available!', SPEED => 0 };
+ my $CPUinfo = { MANUFACTURER => 'unknow', NAME => 'unknow', SERIAL => 'No Serial Number available!', SPEED => 0 };
my $CPUcount;

# Using old system HpUX without machinfo
@@ -65,7 +65,7 @@
if (/Number of CPUs = (\d+)/) {
$CPUcount = $1;
} elsif (/processor model: \d+ (.+)$/) {
- $CPUinfo->{TYPE} = $1;
+ $CPUinfo->{NAME} = $1;
} elsif (/Clock speed = (\d+) MHz/) {
$CPUinfo->{SPEED} = $1;
} elsif (/vendor information =\W+(\w+)/) {
@@ -85,13 +85,15 @@
} else {
chomp(my $DeviceType =`model |cut -f 3- -d/`);
my $tempCpuInfo = $cpuInfos{"$DeviceType"};
- if ( $tempCpuInfo =~ /^(\S+)\s(\S+)/ ) {
- $CPUinfo->{TYPE} = $1;
- $CPUinfo->{SPEED} = $2;
+ if (defined $tempCpuInfo) {
+ if ( $tempCpuInfo =~ /^(\S+)\s(\S+)/ ) {
+ $CPUinfo->{NAME} = $1;
+ $CPUinfo->{SPEED} = $2;
+ }
} else {
for ( `echo 'sc product cpu;il' | /usr/sbin/cstm | grep "CPU Module"` ) {
- if ( /(\S+)\s+CPU\s+Module/ ) {
- $CPUinfo->{TYPE} = $1;
+ if ( /\s+(\S+)\s+CPU\s+Module/ ) {
+ $CPUinfo->{NAME} = $1;
}
}
for ( `echo 'itick_per_usec/D' | adb -k /stand/vmunix /dev/kmem` ) {
@@ -106,11 +108,11 @@

my $serie;
chomp($serie = `uname -m`);
- if ( $CPUinfo->{TYPE} eq 'unknow' and $serie =~ /ia64/) {
- $CPUinfo->{TYPE} = "Itanium"
+ if ( $CPUinfo->{NAME} eq 'unknow' and $serie =~ /ia64/) {
+ $CPUinfo->{NAME} = "Itanium"
}
if ( $serie =~ /9000/) {
- $CPUinfo->{TYPE} = "PA" . $CPUinfo->{TYPE};
+ $CPUinfo->{NAME} = "PA" . $CPUinfo->{NAME};
}

foreach ( 1..$CPUcount ) { $inventory->addCPU($CPUinfo) }

--- Memory.pm.orig 2010-12-04 13:29:29.000000000 +0100
+++ Memory.pm 2011-03-18 16:13:45.000000000 +0100
@@ -62,7 +62,7 @@
$ok=0;
#print "FRU Source memory\n";
}
- if ( /Source\s+Detail\s+=\s4/ ) {
+ if ( /Source\s+Detail\s+=\s0x4/ ) {
$ok=1;
#print "Source Detail IMM\n";
}
@@ -71,7 +71,7 @@
#print "Extended sub $subnumslot\n";
};
if ( /DIMMS\s+Rank\s+=\s+(\S+)/ ) {
- $numslot=sprintf("%02x",$1);
+ $numslot=sprintf("%02x",hex($1));
#print "Num slot $numslot\n";
}

Par ailleurs, pour les personnes intéressées j'ai une version packagée de l'agent pour PA-Risc / HP UX 11.11
( un endroit ou l'uploader ? )

Merci,
  Reply
#2
pour l'agent packagé, contacte moi,
pour les patchs, je laisse gonéri intéger tout ça

merci du retour !
  Reply
#3
Merci Yanick, j'ai appliqué le premier patch
https://github.com/fusinv/fusioninventor...f79df5bc87
Peux tu me confirmer que le patch marche bien ?

Pour Memory.pm:
la ligne "Source Detail", la valeur est en hexa sur les autres versions de HP-UX aussi ?
Please contact Fusioninventory Partners companies if you look for a FusionInventory on site expert.
http://www.fusioninventory.org/partners/
  Reply
#4
Pour Memory.pm : je ne sais pas pour les i64 mais dans le cas qui nous concerne sur les PA RISC que je posséde en 11.11 c'est le cas

Patch complémentaire pour Memory (mise à jour de HARDWARE / Memory et swap)

--- Memory.pm.2 2011-03-18 16:13:45.000000000 +0100
+++ Memory.pm 2011-03-30 14:03:49.000000000 +0200
@@ -57,7 +57,6 @@
my $ok=0;

for ( `echo 'sc product system;il' | /usr/sbin/cstm` ) {
-
if ( /FRU\sSource\s+=\s+\S+\s+\(memory/ ) {
$ok=0;
#print "FRU Source memory\n";
@@ -116,6 +115,14 @@
} # $ok eq 1
} # /Serial\s+Number\.*:\s*(\S+)\s+/
} # echo 'sc product system;il' | /usr/sbin/cstm
+ foreach ( @list_mem ) {
+ if (/Total Configured Memory\s*:\s(\d+)\sMB/i) {
+ my $TotalMemSize = $1;
+ my $TotalSwapSize = `swapinfo -dt | tail -n1`;
+ $TotalSwapSize =~ s/^total\s+(\d+)\s+\d+\s+\d+\s+\d+%\s+\-\s+\d+\s+\-/$1/i;
+ $inventory->setHardware({ MEMORY => $TotalMemSize, SWAP => sprintf("%i", $TotalSwapSize/1024), });
+ }
+ }
}

}
  Reply
#5
Pour Memory.pm et l'hexa, je ne sais pas pour les versions inférieur ou supérieure de l'os
  Reply
#6
J'ai créé le ticket ici http://forge.fusioninventory.org/issues/737 (en anglais)
Please contact Fusioninventory Partners companies if you look for a FusionInventory on site expert.
http://www.fusioninventory.org/partners/
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)