Skip updateable association for functional BMC

The updateable association should only be created for non-functional
BMCs for dual image systems, otherwise create the updateable association
by default for single image systems. Add object path to version class as
it will be needed for update interface and updateable association
creation.

Tested:
```
> curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/UpdateService/FirmwareInventory/3c956be0
{
  "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/3c956be0",
  "@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory",
  "Description": "BMC image",
  "Id": "3c956be0",
  "Name": "Software Inventory",
  "RelatedItem": [
    {
      "@odata.id": "/redfish/v1/Managers/bmc"
    }
  ],
  "RelatedItem@odata.count": 1,
  "Status": {
    "Health": "OK",
    "HealthRollup": "OK",
    "State": "Enabled"
  },
  "Updateable": true,
  "Version": "2.16.0-dev-1063-g57294f9ba2-dirty"
}
```
Updateable is marked true for inventory with update interface.

Change-Id: I93b6a6ae36e2d0a06e8f5f97d04007da7707f1d6
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
2 files changed
tree: 4ec123aec6ef2f1d103693cc341f9a92616eb798
  1. mmc/
  2. side-switch/
  3. static/
  4. subprojects/
  5. test/
  6. ubi/
  7. usb/
  8. .clang-format
  9. .clang-tidy
  10. .gitignore
  11. .shellcheck
  12. activation.cpp
  13. activation.hpp
  14. detect-slot-aspeed
  15. download_manager.cpp
  16. download_manager.hpp
  17. download_manager_main.cpp
  18. flash.hpp
  19. force-reboot.service.in
  20. gen-bios-tar
  21. image_manager.cpp
  22. image_manager.hpp
  23. image_manager_main.cpp
  24. image_verify.cpp
  25. image_verify.hpp
  26. images.cpp
  27. images.hpp
  28. item_updater.cpp
  29. item_updater.hpp
  30. item_updater_helper.hpp
  31. item_updater_main.cpp
  32. LICENSE
  33. meson.build
  34. meson.options
  35. msl_verify.cpp
  36. msl_verify.hpp
  37. obmc-flash-bmc
  38. obmc-flash-bmc-setenv@.service.in
  39. obmc-flash-host-bios@.service.in
  40. openssl_alloc.cpp
  41. openssl_alloc.hpp
  42. OWNERS
  43. README.md
  44. reboot-guard-disable.service.in
  45. reboot-guard-enable.service.in
  46. reset-cs0-aspeed
  47. serialize.cpp
  48. serialize.hpp
  49. software.conf
  50. software_manager.cpp
  51. software_utils.cpp
  52. software_utils.hpp
  53. sync-once.sh
  54. sync_manager.cpp
  55. sync_manager.hpp
  56. sync_manager_main.cpp
  57. sync_watch.cpp
  58. sync_watch.hpp
  59. synclist
  60. update_manager.cpp
  61. update_manager.hpp
  62. usr-local.mount.in
  63. utils.cpp
  64. utils.hpp
  65. version.cpp
  66. version.hpp
  67. watch.cpp
  68. watch.hpp
  69. xyz.openbmc_project.Software.BMC.Updater.service.in
  70. xyz.openbmc_project.Software.Download.service.in
  71. xyz.openbmc_project.Software.Manager.service.in
  72. xyz.openbmc_project.Software.Sync.service.in
  73. xyz.openbmc_project.Software.Version.service.in
README.md

phosphor-bmc-code-mgmt

Phosphor BMC Code Management provides a set of system software management applications. More information can be found at Software Architecture

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.