tree ffcd39c3bf1184bebedb8af34c87e88f9af5a711
parent 8d16554c89b1a0ccd0785e06d48114f635ca5c4f
author Isaac Kurth <blisaac91@gmail.com> 1646790473 -0600
committer Adriana Kobylak <anoo@linux.ibm.com> 1663882641 -0500

field mode: restore works on all systems

The restoreFieldModeStatus function previously read from a chip
that is not found on all systems. Changed it to read fieldmode
status using fw_printenv. Updated utils::executeCmd to return the
print output of the command it executes.

Tested:
On p10bmc running mmc chip:
- Set the fieldmode env variable to "true" and verified FieldModeEnabled
  was set to true:
root@p10bmc:~# fw_setenv fieldmode true
root@p10bmc:~# systemctl restart xyz.openbmc_project.Software.BMC.Updater.service
root@p10bmc:~# busctl introspect xyz.openbmc_project.Software.BMC.Updater /xyz/openbmc_project/software
...
xyz.openbmc_project.Control.FieldMode       interface -          -
.FieldModeEnabled                           property  b          true

- Set the fieldmode env variable to "false" (fw_setenv fieldmode false)
  and also clear the variable (fw_setenv fieldmode) and verified
  FieldModeEnabled was set to false with no error messages in the
  journal:
root@p10bmc:~# fw_setenv fieldmode
root@p10bmc:~# systemctl restart xyz.openbmc_project.Software.BMC.Updater.service
root@p10bmc:~# busctl introspect xyz.openbmc_project.Software.BMC.Updater /xyz/openbmc_project/software
...
xyz.openbmc_project.Control.FieldMode       interface -          -
.FieldModeEnabled                           property  b          false

Change-Id: Ib1b54d83f058015ff5967c445a40318a02baae92
Signed-off-by: Isaac Kurth <blisaac91@gmail.com>
Signed-off-by: Adriana Kobylak <anoo@linux.ibm.com>
