transition: ensure only run once per power on/off

Some situations have arisen where a user requests a power off or on when
the system is already in that state. That results in these services
re-running and setting the state to transition even though the system is
actually off or on already.

The solution is to ensure these services only run once and do not stop
until a Conflicts occurs to stop it.

Tested:
- Verified service only runs once now even if started multiple times
- Verified when conflicting target runs that you can start service again

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I2aa866057fca9c1743385f0d5f3beff5899e4c15
diff --git a/service_files/phosphor-set-host-transition-to-off@.service b/service_files/phosphor-set-host-transition-to-off@.service
index 0e0a594..a1bb01f 100644
--- a/service_files/phosphor-set-host-transition-to-off@.service
+++ b/service_files/phosphor-set-host-transition-to-off@.service
@@ -4,10 +4,12 @@
 After=mapper-wait@-xyz-openbmc_project-state-host%i.service
 Wants=obmc-host-stop-pre@%i.target
 Before=obmc-host-stop-pre@%i.target
+Conflicts=obmc-host-startmin@%i.target
 
 [Service]
 Restart=no
 Type=oneshot
+RemainAfterExit=yes
 ExecStart=/bin/sh -c "busctl set-property `mapper get-service /xyz/openbmc_project/state/host%i` /xyz/openbmc_project/state/host%i xyz.openbmc_project.State.Host CurrentHostState s xyz.openbmc_project.State.Host.HostState.TransitioningToOff"
 
 [Install]
diff --git a/service_files/phosphor-set-host-transition-to-running@.service b/service_files/phosphor-set-host-transition-to-running@.service
index 69565a3..1c9fa21 100644
--- a/service_files/phosphor-set-host-transition-to-running@.service
+++ b/service_files/phosphor-set-host-transition-to-running@.service
@@ -4,11 +4,13 @@
 After=mapper-wait@-xyz-openbmc_project-state-host%i.service
 Wants=obmc-host-start-pre@%i.target
 Before=obmc-host-start-pre@%i.target
+Conflicts=obmc-host-stop@%i.target
 ConditionPathExists=!/run/openbmc/host@%i-on
 
 [Service]
 Restart=no
 Type=oneshot
+RemainAfterExit=yes
 ExecStart=/bin/sh -c "busctl set-property `mapper get-service /xyz/openbmc_project/state/host%i` /xyz/openbmc_project/state/host%i xyz.openbmc_project.State.Host CurrentHostState s xyz.openbmc_project.State.Host.HostState.TransitioningToRunning"
 
 [Install]