diff options
Diffstat (limited to 'pyinventorymgr')
-rw-r--r-- | pyinventorymgr/inventory_items.py | 18 | ||||
-rw-r--r-- | pyinventorymgr/sync_inventory_items.py | 19 |
2 files changed, 25 insertions, 12 deletions
diff --git a/pyinventorymgr/inventory_items.py b/pyinventorymgr/inventory_items.py index c815b37..82a1305 100644 --- a/pyinventorymgr/inventory_items.py +++ b/pyinventorymgr/inventory_items.py @@ -3,26 +3,17 @@ import os import sys import gobject -import json import dbus import dbus.service import dbus.mainloop.glib import obmc.dbuslib.propertycacher as PropertyCacher from obmc.dbuslib.bindings import get_dbus, DbusProperties, DbusObjectManager -try: - import obmc_system_config as System - have_system = True -except ImportError: - have_system = False INTF_NAME = 'org.openbmc.InventoryItem' DBUS_NAME = 'org.openbmc.Inventory' -if have_system: - FRUS = System.FRU_INSTANCES -else: - FRUS = {} +FRUS = {} class Inventory(DbusProperties, DbusObjectManager): @@ -92,6 +83,7 @@ if __name__ == '__main__': 'inventory', 'inventory.json') if os.path.exists(INVENTORY_FILE): + import json with open(INVENTORY_FILE, 'r') as f: try: inv = json.load(f) @@ -99,6 +91,12 @@ if __name__ == '__main__': print "Invalid JSON detected in " + INVENTORY_FILE else: FRUS = inv + else: + try: + import obmc_system_config as System + FRUS = System.FRU_INSTANCES + except ImportError: + pass for f in FRUS.keys(): obj_path = f.replace("<inventory_root>", System.INVENTORY_ROOT) diff --git a/pyinventorymgr/sync_inventory_items.py b/pyinventorymgr/sync_inventory_items.py index e11c2e6..6db69cc 100644 --- a/pyinventorymgr/sync_inventory_items.py +++ b/pyinventorymgr/sync_inventory_items.py @@ -20,7 +20,7 @@ import sys import dbus import argparse import subprocess -import obmc_system_config as System + INV_DBUS_NAME = 'org.openbmc.Inventory' INV_INTF_NAME = 'org.openbmc.InventoryItem' @@ -30,7 +30,7 @@ CHS_DBUS_NAME = 'org.openbmc.control.Chassis' CHS_OBJ_NAME = '/org/openbmc/control/chassis0' PROP_INTF_NAME = 'org.freedesktop.DBus.Properties' -FRUS = System.FRU_INSTANCES +FRUS = {} # IEEE 802 MAC address mask for locally administered. # This means the admin has set the MAC and is no longer @@ -111,6 +111,21 @@ if __name__ == '__main__': prop_name = opt.p sync_type = opt.s + inventory = os.path.join( + sys.prefix, 'share', 'inventory', 'inventory.json') + if os.path.exists(inventory): + import json + with open(inventory, 'r') as f: + try: + inv = json.load(f) + except ValueError: + print "Invalid JSON detected in " + inventory + else: + FRUS = inv + else: + import obmc_system_config as System + FRUS = System.FRU_INSTANCES + bus = dbus.SystemBus() inv_obj_path = get_inv_obj_path(fru_type, fru_name) inv_obj = bus.get_object(INV_DBUS_NAME, inv_obj_path) |