functions: Remove GetObject to check if PLDM is running

In order to check if PLDM is running, the code was subscribing to Name
Owner change and calling GetObject to see if PLDM was running, but PLDM
starts and does not immediately create its Object Manager, therefore
there is a time window when if PLDM starts but hasn't created its Object
Manager, and the openpower service starts, it'll hang forever waiting
for the Name Owner change signal that will not be sent because PLDM
already started.

Instead of calling GetObject, just attempt to run the callback, in this
case setting the bios attribute, and forward the exception if it fails
(due to PLDM not running and the property not existing in D-Bus yet),
so that the openpower service continues to wait. Change the log severity
to informational since setting the bios attribute will fail if PLDM has
not started yet.

Tested: Stopped the PLDM and Entity Manager services and started these
services and the openpower service in various different orders to verify
the openpower service ran when both PLDM and EM had started.

Change-Id: Idd2f344beda8dfcf2b987b3cab6f8967c63cab4c
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
2 files changed
tree: 5f1f5705e21bd3744e1c1a740985ab53ddbe7bdc
  1. dbus/
  2. mmc/
  3. static/
  4. test/
  5. ubi/
  6. vpnor/
  7. .clang-format
  8. .gitignore
  9. .shellcheck
  10. activation.cpp
  11. activation.hpp
  12. functions.cpp
  13. functions.hpp
  14. generate-tar
  15. generate-ubi
  16. image_verify.cpp
  17. image_verify.hpp
  18. item_updater.cpp
  19. item_updater.hpp
  20. item_updater_main.cpp
  21. LICENSE
  22. MAINTAINERS
  23. meson.build
  24. meson_options.txt
  25. msl_verify.cpp
  26. msl_verify.hpp
  27. msl_verify_main.cpp
  28. op-pnor-msl.service
  29. openpower-pnor-update@.service
  30. org.open_power.Software.Host.Updater.service
  31. OWNERS
  32. README.md
  33. utils.cpp
  34. utils.hpp
  35. version.cpp
  36. version.hpp
README.md

openpower-pnor-code-mgmt

OpenPower PNOR (Processor NOR) Code Management provides a set of host software management applications for OpenPower systems. The host firmware is stored on the PNOR chip. More information can be found at Software Architecture or Host Code Update

To Build

To build this package, do the following steps:

  1. meson build
  2. ninja -C build

To clean the repository run rm -r build.