code: def get_inventory(self):
          
          self.oem_init()
          yield ("System", self._get_zero_fru())
          self.init_sdr()
          for fruid in sorted(self._sdr.fru):
              fruinf = fru.FRU(
                  ipmicmd=self, fruid=fruid, sdr=self._sdr.fru[fruid]).info
              if fruinf is not None:
                  fruinf = self._oem.process_fru(fruinf,
                                                 self._sdr.fru[fruid].fru_name)
              yield (self._sdr.fru[fruid].fru_name, fruinf)
          for componentpair in self._oem.get_oem_inventory():
              yield componentpair
docs: Retrieve inventory of system
  
          Retrieve inventory of the targeted system.  This frequently includes
          serial numbers, sometimes hardware addresses, sometimes memory modules
          This function will retrieve whatever the underlying platform provides
          and apply some structure.  Iterating over the return yields tuples
          of a name for the inventoried item and dictionary of descriptions
          or None for items not present.