def use_dump_file(self): """Set this instances to use a dmidecode dump file. WARNING: This involves settings a module global attribute in 'dmidecode', not just for this class or object, but for the lifetime of the dmidecode module. To 'unset' it, it can be set back to '/dev/mem', or re set it to another dump file.""" if os.access(self.dump_file, os.R_OK): dmidecode.set_dev(self.dump_file)
def get_gmi_info(self): if self.dump_file: if os.access(self.dump_file, os.R_OK): dmidecode.set_dev(self.dump_file) dmiinfo = {} dmi_data = { "dmi.bios.": self._read_dmi(dmidecode.bios), "dmi.processor.": self._read_dmi(dmidecode.processor), "dmi.baseboard.": self._read_dmi(dmidecode.baseboard), "dmi.chassis.": self._read_dmi(dmidecode.chassis), "dmi.slot.": self._read_dmi(dmidecode.slot), "dmi.system.": self._read_dmi(dmidecode.system), "dmi.memory.": self._read_dmi(dmidecode.memory), "dmi.connector.": self._read_dmi(dmidecode.connector), } try: for tag, func in dmi_data.items(): dmiinfo = self._get_dmi_data(func, tag, dmiinfo) except Exception, e: log.warn(_("Error reading system DMI information: %s"), e)
print("*** memory ***\n"); dmidecode.memory() print_warnings() print("*** cache ***\n"); dmidecode.cache() print_warnings() print("*** connector ***\n"); dmidecode.connector() print_warnings() print("*** slot ***\n"); dmidecode.slot() print_warnings() #. Now test get/set of memory device file... print("*** get_dev()") print(dmidecode.get_dev()) print_warnings() print("*** set_dev('dmidata.dump')") print(dmidecode.set_dev("dmidata.dump")); print_warnings() print("*** get_dev()") print(dmidecode.get_dev()) print_warnings() #. Test taking a dump... if root_user: print("*** Dumping DMI data to dump file") print(dmidecode.dump()) print_warnings() #. Test reading the dump... Using the preferred API print("*** bios ***\n"); pprint(dmidecode.QuerySection('bios')) print_warnings() print("*** system ***\n"); pprint(dmidecode.QuerySection('system'))