Add Serialization Support for Dump Entry Attributes

Implemented serialization of dump entry attributes using the
nlohmann::json library. Added serialization support in the Dump Entry
class, serializing attributes including originatorId, originatorType,
and startTime. These attributes are not part of the dump filename and
thus require serialization to ensure their state is preserved.

Deserialization will occur only if the serialization version matches
and the dump ID in the dump object matches the ID in the
serialized file.

Tests:
- Created BMC dumps and restarted service
- Created BMC dumps and restarted BMC
- Created 200 BMC dumps and restarted service and BMC multiple times

File:
```
{"dumpId":2,"originatorId":"","originatorType":1,"startTime":1718199238942411,"version":1}
```

Change-Id: I16ecb058bddd464c8771bd8d08a50ea1877747ed
Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
8 files changed
tree: 5eb70c82390260d665d13c599b7468f1f40ed7ad
  1. dump-extensions/
  2. host-transport-extensions/
  3. subprojects/
  4. test/
  5. tools/
  6. .clang-format
  7. .gitignore
  8. .shellcheck-ignore
  9. bmc_dump_entry.cpp
  10. bmc_dump_entry.hpp
  11. core_manager.cpp
  12. core_manager.hpp
  13. core_manager_main.cpp
  14. dump-extensions.hpp
  15. dump_entry.cpp
  16. dump_entry.hpp
  17. dump_manager.cpp
  18. dump_manager.hpp
  19. dump_manager_bmc.cpp
  20. dump_manager_bmc.hpp
  21. dump_manager_faultlog.cpp
  22. dump_manager_faultlog.hpp
  23. dump_manager_main.cpp
  24. dump_offload.cpp
  25. dump_offload.hpp
  26. dump_serialize.cpp
  27. dump_serialize.hpp
  28. dump_types.mako.cpp
  29. dump_types.mako.hpp
  30. dump_utils.cpp
  31. dump_utils.hpp
  32. elog_watch.cpp
  33. elog_watch.hpp
  34. example_dump_types.yaml
  35. example_errors_watch.yaml
  36. faultlog_dump_entry.cpp
  37. faultlog_dump_entry.hpp
  38. ffdc
  39. host_transport_exts.hpp
  40. LICENSE
  41. map_gen.py
  42. meson.build
  43. meson.options
  44. OWNERS
  45. ramoops_manager.cpp
  46. ramoops_manager.hpp
  47. ramoops_manager_main.cpp
  48. README.md
  49. watch.cpp
  50. watch.hpp
README.md

phosphor-debug-collector

Phosphor Debug Collector provides mechanisms to collect various log files and system parameters. Used to troubleshoot problems in OpenBMC based systems.

One such mechanism is dreport, a script that collects debug data and packages it into an archive file.

To Build

To build this package with meson, do the following steps:

    1. meson builddir
    2. ninja -C builddir

To clean the built files run ninja -C builddir clean.

To run unit tests

Tests can be run in the CI docker container, refer local-ci-build

or with an OpenBMC x86 sdk(see below for x86 steps).

meson -Dtests=enabled build
ninja -C build test