tar.extractall(UPDATE_PATH,members=doExtract(tar,copy_files)) tar.close() if (self.Get(DBUS_NAME,"clear_persistent_files") == True): print "Removing persistent files" os.unlink(UPDATE_PATH+"/whitelist") if (self.Get(DBUS_NAME,"preserve_network_settings") == True): print "Preserving network settings" shutil.copy2("/dev/mtd2",UPDATE_PATH+"/image-u-boot-env") except Exception as e: print e self.Set(DBUS_NAME,"status","Update Error") self.Set(DBUS_NAME,"status","Update Success. Please reboot.") if __name__ == '__main__': dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = get_dbus() name = dbus.service.BusName(DBUS_NAME, bus) obj = BmcFlashControl(bus, OBJ_NAME) mainloop = gobject.MainLoop() print "Running Bmc Flash Control" mainloop.run()
def getVersion(): version = "Error" with open('/etc/os-release', 'r') as f: for line in f: p = line.rstrip('\n') parts = line.rstrip('\n').split('=') if (parts[0] == "VERSION_ID"): version = parts[1] return version if __name__ == '__main__': dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = get_dbus() mainloop = gobject.MainLoop() obj_parent = Inventory(bus, '/org/openbmc/inventory') for f in FRUS.keys(): obj_path=f.replace("<inventory_root>",System.INVENTORY_ROOT) obj = InventoryItem(bus,obj_path,FRUS[f]) obj_parent.add(obj_path,obj) ## TODO: this is a hack to update bmc inventory item with version ## should be done by flash object if (FRUS[f]['fru_type'] == "BMC"): version = getVersion() obj.update({'version': version}) name = dbus.service.BusName(DBUS_NAME,bus)