sel: Fix assertion in custom SEL parser

The code was using assert() to make sure the custom SEL's additional
data exists.

The assumption was wrong because there could be log entries with
additional data that does not contain the metadata defined in
xyz/openbmc_project/Logging/SEL.metadata.yaml.
E.g.
 ipmid: ../git/selutility.cpp:107: void ipmi::sel::internal::constructOEMSEL(uint8_t, std::chrono::milliseconds, const additionalDataMap&, ipmi::sel::GetSELEntryResponse&): Assertion `dataIter != m.end()' failed.

The behavior is changed to:
* Check if the additional data contains the SEL.metadata;
* If yes, parse it as custom SEL;
* If no, parse it as before, and throw if there is no associated
  inventory sensor, which is the logic before the custom SEL is
  introduced.

Tested: Verify `ipmitool sel list` shows all the entries and does not
        assert when the logging entries without SEL.metadata exists.

Signed-off-by: Lei YU <yulei.sh@bytedance.com>
Change-Id: Icc3df27ade4fdc40cf4fe73d3716e7270a97a5f1
1 file changed