Using openhpi 2.12.0, 2.13.3, and 2.14.0 with the oa-soap plugin, I have observed that on occasion after a blade is extracted and re-inserted into a bay, the serial number for that blade is reported as unknown. The following is the test that I have run and the hpiinv output that I am observing:
1) Run the hpiinv utility to capture the inventory
{SYSTEM_BLADE:5} {SYSTEM_CHASSIS:50101} {ROOT:0}
RDR[30000]: Inventory, IdrId=0 ProLiant BL460c G1
AreaId[0] Product Area
FieldId[0] Product Name : ProLiant BL460c G1
FieldId[1] Manufacturer : HP
FieldId[2] Product Versn : 1.70 Dec 02 2008
AreaId[1] Board Area
FieldId[0] Part Number : 447707-B21
FieldId[1] Serial Number : USE999WK5B
2) Properly extract blade 5 from the c-Class enclosure. Wait 30 seconds.
3) Insert the blade back into bay 5.
4) When the blade re-appears in the hpiinv output, its inventory information is incomplete (specifically the serial number)
{SYSTEM_BLADE:5} {SYSTEM_CHASSIS:50101} {ROOT:0}
RDR[30000]: Inventory, IdrId=0 HP ProLiant BL460c G1
AreaId[0] Product Area
FieldId[0] Product Name : HP ProLiant BL460c G1
FieldId[1] Manufacturer : HP
FieldId[2] Product Versn : 1.70
AreaId[1] Board Area
FieldId[0] Part Number : [Unknown]
FieldId[1] Serial Number : [Unknown]
This does not occur every time (maybe 1 in 5), but seems to occur much more frequently if multiple blades are pulled and then re-inserted at the same time. This can be corrected by restarting the openhpid daemon.
BLADE_INSERT_COMPLETED is not fixed in OA 3.0. It may not be fixed soon. oa_soap plugin needs to handle all EVENT_BLADE_INFO events and update the serial number and part number as and when it gets it.
EVENT_BLADE_INFO is handled to get the serial number when it is available. The fix is checked in as revision 7340. This checkin also resolves bug #2967121