Set one time properties for non primeable frus
This commit enables vpd-parser to populate one time properties
like "OperationalStatus" and "Enabled" for non primeable frus.
Tested on rainier:
cablecard/cxp_ports are non primeable frus.
Modified inventory json for this testing:
Since am not finding a system with ibm-cablecards, edited vpd_inventory.json
by including cablecard vpd's CCIN in cablecard ccin list to populate cxp_ports.
====> root@rain100bmc:/tmp# busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10/cxp_top
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
com.ibm.ipzvpd.Location interface - - -
.LocationCode property s "U78DA.ND0.WZS004A-P0-C10-T0" emits-change writable
org.freedesktop.DBus.Introspectable interface - - -
.Introspect method - s -
org.freedesktop.DBus.Peer interface - - -
.GetMachineId method - s -
.Ping method - - -
org.freedesktop.DBus.Properties interface - - -
.Get method ss v -
.GetAll method s a{sv} -
.Set method ssv - -
.PropertiesChanged signal sa{sv}as - -
xyz.openbmc_project.Association.Definitions interface - - -
.Associations property a(sss) 2 "fault_led_group" "fault_inventory_ob… emits-change writable
xyz.openbmc_project.Inventory.Decorator.LocationCode interface - - -
.LocationCode property s "U78DA.ND0.WZS004A-P0-C10-T0" emits-change writable
xyz.openbmc_project.Inventory.Item.Connector interface - - -
root@rain100bmc:/tmp#
====> root@rain100bmc:/tmp# ./ibm-read-vpd --file /sys/bus/i2c/drivers/at24/11-0050/eeprom
====> root@rain100bmc:/tmp# busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10/cxp_top
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
com.ibm.ipzvpd.Location interface - - -
.LocationCode property s "U78DA.ND0.WZS004A-P0-C10-T0" emits-change writable
org.freedesktop.DBus.Introspectable interface - - -
.Introspect method - s -
org.freedesktop.DBus.Peer interface - - -
.GetMachineId method - s -
.Ping method - - -
org.freedesktop.DBus.Properties interface - - -
.Get method ss v -
.GetAll method s a{sv} -
.Set method ssv - -
.PropertiesChanged signal sa{sv}as - -
xyz.openbmc_project.Association.Definitions interface - - -
.Associations property a(sss) 2 "fault_led_group" "fault_inventory_ob… emits-change writable
xyz.openbmc_project.Inventory.Decorator.LocationCode interface - - -
.LocationCode property s "U78DA.ND0.WZS004A-P0-C10-T0" emits-change writable
xyz.openbmc_project.Inventory.Item.Connector interface - - -
xyz.openbmc_project.Object.Enable interface - - -
.Enabled property b false emits-change writable
xyz.openbmc_project.State.Decorator.OperationalStatus interface - - -
.Functional property b true emits-change writable
root@rain100bmc:/tmp#
Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: I16e4af25f7427812054871e524e51829713c0012
diff --git a/ibm_vpd_app.cpp b/ibm_vpd_app.cpp
index 43d8280..1a9a7e4 100644
--- a/ibm_vpd_app.cpp
+++ b/ibm_vpd_app.cpp
@@ -1096,9 +1096,11 @@
continue;
}
- if (isSystemVpd)
+ if ((isSystemVpd) || (item.value("noprime", false)))
{
- // Populate one time properties for the system VPD and its sub-frus.
+
+ // Populate one time properties for the system VPD and its sub-frus
+ // and for other non-primeable frus.
// For the remaining FRUs, this will get handled as a part of
// priming the inventory.
setOneTimeProperties(objectPath, interfaces);