tree fefccc23a78b298a04aa7d8bc9ea287067f6160c
parent 66aacdc48c4a99884850e627261f26197e2e9445
author Andrew Geissler <geissonator@yahoo.com> 1652285463 -0400
committer Andrew Geissler <andrew@geissonator.com> 1652836000 +0000

call auto power restart when chassis power recovers

When the power status transitions from bad to good, call the Auto
Power-on Restart (APR) functionality to see if the system should be
automatically powered back on.

In most cases, a power issue to the system will result in the BMC
losing power as well. The APR functionality already runs as a part of
the BMC boot. However there are a few situations where the chassis power
may need to be turned off but the BMC will continue to operate on
standby power. This commit addresses that scenario, where once the
chassis power can be turned back on, the BMC runs the APR logic.

This allows systems to get up and running automatically after brownout
and UPS battery low issues.

Note that a change to phosphor-state-manager-systemd-links.inc is
required here to make the APR service a WantedBy vs. RequiredBy
relationship. Restarting a service that is required by multi-user.target
restarts all the other oneshot service in multi-user.target which is not
wanted here. This change will be included with the bump of this
function.

Tested:
- Verified system called APR when CurrentPowerStatus went from
  UninterruptiblePowerSupply to Good
- Verified system did not power on when APR was not set to AlwaysOn
- Verified system did power on when APR was set to AlwaysOn

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: If9a5e1a91eb8da6e39e021900ad07848eebbdd02
