phosphor-state-manager: simplify systemd-links

Specify the target links as a variable with iteration rather than
manual entries for each symlink.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: If40bf59dc00beb2c004c5da9953c3c5e64cbffba
diff --git a/meta-phosphor/recipes-phosphor/state/phosphor-state-manager-systemd-links.inc b/meta-phosphor/recipes-phosphor/state/phosphor-state-manager-systemd-links.inc
index e716c72..6b0bda0 100644
--- a/meta-phosphor/recipes-phosphor/state/phosphor-state-manager-systemd-links.inc
+++ b/meta-phosphor/recipes-phosphor/state/phosphor-state-manager-systemd-links.inc
@@ -1,3 +1,24 @@
+DEFAULT_TARGETS = " \
+    multi-user.target.requires/xyz.openbmc_project.State.Host@{}.service \
+    multi-user.target.requires/obmc-host-reset@{}.target \
+    multi-user.target.requires/phosphor-discover-system-state@{}.service \
+    obmc-chassis-poweron@{}.target.wants/phosphor-reset-host-recovery@{}.service \
+    obmc-host-start@{}.target.requires/obmc-host-startmin@{}.target \
+    obmc-host-start@{}.target.requires/phosphor-reset-host-reboot-attempts@{}.service \
+    obmc-host-startmin@{}.target.wants/phosphor-set-host-transition-to-running@{}.service \
+    obmc-host-stop@{}.target.wants/phosphor-set-host-transition-to-off@{}.service \
+    obmc-host-reset@{}.target.requires/phosphor-reset-host-running@{}.service \
+    obmc-host-stop@{}.target.wants/phosphor-reset-sensor-states@{}.service \
+    obmc-host-quiesce@{}.target.wants/phosphor-reset-sensor-states@{}.service \
+    obmc-host-shutdown@{}.target.requires/obmc-chassis-poweroff@{}.target \
+    obmc-host-reboot@{}.target.requires/obmc-host-shutdown@{}.target \
+    obmc-host-reboot@{}.target.requires/phosphor-reboot-host@{}.service \
+    obmc-host-warm-reboot@{}.target.requires/xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service \
+    obmc-host-force-warm-reboot@{}.target.requires/obmc-host-stop@{}.target \
+    obmc-host-force-warm-reboot@{}.target.requires/phosphor-reboot-host@{}.service \
+    obmc-host-warm-reboot@{}.target.requires/obmc-host-force-warm-reboot@{}.target \
+    obmc-chassis-poweroff@{}.target.wants/phosphor-clear-one-time@{}.service \
+"
 
 # TODO: There are some targets that are chassis oriented, but there is no
 #       obvious way to map HOST<->CHASSIS relationships.  Making an assumption
@@ -7,94 +28,14 @@
 
     for i in ${OBMC_HOST_INSTANCES};
     do
-        mkdir -p $D$systemd_system_unitdir/multi-user.target.requires
-        LINK="$D$systemd_system_unitdir/multi-user.target.requires/xyz.openbmc_project.State.Host@${i}.service"
-        TARGET="../xyz.openbmc_project.State.Host@.service"
-        ln -s $TARGET $LINK
-
-        LINK="$D$systemd_system_unitdir/multi-user.target.requires/obmc-host-reset@${i}.target"
-        TARGET="../obmc-host-reset@.target"
-        ln -s $TARGET $LINK
-
-        LINK="$D$systemd_system_unitdir/multi-user.target.requires/phosphor-discover-system-state@${i}.service"
-        TARGET="../phosphor-discover-system-state@.service"
-        ln -s $TARGET $LINK
-
-        mkdir -p $D$systemd_system_unitdir/obmc-chassis-poweron@${i}.target.wants
-        LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@${i}.target.wants/phosphor-reset-host-recovery@${i}.service"
-        TARGET="../phosphor-reset-host-recovery@.service"
-        ln -s $TARGET $LINK
-
-        mkdir -p $D$systemd_system_unitdir/obmc-host-start@${i}.target.requires
-        LINK="$D$systemd_system_unitdir/obmc-host-start@${i}.target.requires/obmc-host-startmin@${i}.target"
-        TARGET="../obmc-host-startmin@.target"
-        ln -s $TARGET $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-start@${i}.target.requires/phosphor-reset-host-reboot-attempts@${i}.service"
-        TARGET="../phosphor-reset-host-reboot-attempts@.service"
-        ln -s $TARGET $LINK
-
-        mkdir -p $D$systemd_system_unitdir/obmc-host-startmin@${i}.target.wants
-        LINK="$D$systemd_system_unitdir/obmc-host-startmin@${i}.target.wants/phosphor-set-host-transition-to-running@${i}.service"
-        TARGET="../phosphor-set-host-transition-to-running@.service"
-        ln -s $TARGET $LINK
-
-        mkdir -p $D$systemd_system_unitdir/obmc-host-stop@${i}.target.wants
-        LINK="$D$systemd_system_unitdir/obmc-host-stop@${i}.target.wants/phosphor-set-host-transition-to-off@${i}.service"
-        TARGET="../phosphor-set-host-transition-to-off@.service"
-        ln -s $TARGET $LINK
-
-        mkdir -p $D$systemd_system_unitdir/obmc-host-reset@${i}.target.requires
-        LINK="$D$systemd_system_unitdir/obmc-host-reset@${i}.target.requires/phosphor-reset-host-running@${i}.service"
-        TARGET="../phosphor-reset-host-running@.service"
-        ln -s $TARGET $LINK
-
-        mkdir -p $D$systemd_system_unitdir/obmc-host-stop@${i}.target.wants
-        LINK="$D$systemd_system_unitdir/obmc-host-stop@${i}.target.wants/phosphor-reset-sensor-states@${i}.service"
-        TARGET="../phosphor-reset-sensor-states@.service"
-        ln -s $TARGET $LINK
-
-        mkdir -p $D$systemd_system_unitdir/obmc-host-quiesce@${i}.target.wants
-        LINK="$D$systemd_system_unitdir/obmc-host-quiesce@${i}.target.wants/phosphor-reset-sensor-states@${i}.service"
-        TARGET="../phosphor-reset-sensor-states@.service"
-        ln -s $TARGET $LINK
-
-        mkdir -p $D$systemd_system_unitdir/obmc-host-shutdown@${i}.target.requires
-        LINK="$D$systemd_system_unitdir/obmc-host-shutdown@${i}.target.requires/obmc-chassis-poweroff@${i}.target"
-        TARGET="../obmc-chassis-poweroff@.target"
-        ln -s $TARGET $LINK
-
-        mkdir -p $D$systemd_system_unitdir/obmc-host-reboot@${i}.target.requires
-        LINK="$D$systemd_system_unitdir/obmc-host-reboot@${i}.target.requires/obmc-host-shutdown@${i}.target"
-        TARGET="../obmc-host-shutdown@.target"
-        ln -s $TARGET $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-reboot@${i}.target.requires/phosphor-reboot-host@${i}.service"
-        TARGET="../phosphor-reboot-host@.service"
-        ln -s $TARGET $LINK
-
-        mkdir -p $D$systemd_system_unitdir/obmc-host-warm-reboot@${i}.target.requires
-        LINK="$D$systemd_system_unitdir/obmc-host-warm-reboot@${i}.target.requires/xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service"
-        TARGET="../xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service"
-        ln -s $TARGET $LINK
-
-        mkdir -p $D$systemd_system_unitdir/obmc-host-force-warm-reboot@${i}.target.requires
-        LINK="$D$systemd_system_unitdir/obmc-host-force-warm-reboot@${i}.target.requires/obmc-host-stop@${i}.target"
-        TARGET="../obmc-host-stop@.target"
-        ln -s $TARGET $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-force-warm-reboot@${i}.target.requires/phosphor-reboot-host@${i}.service"
-        TARGET="../phosphor-reboot-host@.service"
-        ln -s $TARGET $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-warm-reboot@${i}.target.requires/obmc-host-force-warm-reboot@${i}.target"
-        TARGET="../obmc-host-force-warm-reboot@.target"
-        ln -s $TARGET $LINK
-
-        mkdir -p $D$systemd_system_unitdir/obmc-chassis-poweroff@${i}.target.wants
-        LINK="$D$systemd_system_unitdir/obmc-chassis-poweroff@${i}.target.wants/phosphor-clear-one-time@${i}.service"
-        TARGET="../phosphor-clear-one-time@.service"
-        ln -s $TARGET $LINK
+        for j in ${DEFAULT_TARGETS};
+        do
+            LINK="$D$systemd_system_unitdir/${j}"
+            LINK="$(echo ${LINK} | sed s/{}/${i}/g )"
+            TARGET="../$(basename ${j} | sed s/{}//g )"
+            mkdir -p "$(dirname ${LINK})"
+            ln -s "${TARGET}" "${LINK}"
+        done
     done
 }
 
@@ -125,67 +66,12 @@
 
     for i in ${OBMC_HOST_INSTANCES};
     do
-
-        LINK="$D$systemd_system_unitdir/multi-user.target.requires/xyz.openbmc_project.State.Host@${i}.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/multi-user.target.requires/xyz.openbmc_project.State.Chassis@${i}.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/multi-user.target.requires/obmc-host-reset@${i}.target"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/multi-user.target.requires/phosphor-discover-system-state@${i}.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@${i}.target.wants/phosphor-reset-host-recovery@${i}.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-start@${i}.target.requires/obmc-host-startmin@${i}.target"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-start@${i}.target.requires/phosphor-reset-host-reboot-attempts@${i}.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-startmin@${i}.target.wants/phosphor-set-host-transition-to-running@${i}.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-stop@${i}.target.wants/phosphor-set-host-transition-to-off@${i}.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-stop@${i}.target.wants/phosphor-reset-sensor-states@${i}.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-quiesce@${i}.target.wants/phosphor-reset-sensor-states@${i}.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-reset@${i}.target.requires/phosphor-reset-host-running@${i}.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-shutdown@${i}.target.requires/obmc-chassis-poweroff@${i}.target"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-reboot@${i}.target.requires/obmc-host-shutdown@${i}.target"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-reboot@${i}.target.requires/phosphor-reboot-host@${i}.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-warm-reboot@${i}.target.requires/xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-force-warm-reboot@${i}.target.requires/obmc-host-stop@${i}.target"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-force-warm-reboot@${i}.target.requires/phosphor-reboot-host@${i}.service"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-host-warm-reboot@${i}.target.requires/obmc-host-force-warm-reboot@${i}.target"
-        rm $LINK
-
-        LINK="$D$systemd_system_unitdir/obmc-chassis-poweroff@${i}.target.wants/phosphor-clear-one-time@${i}.service"
-        rm $LINK
-
+        for j in ${DEFAULT_TARGETS};
+        do
+            LINK="$D$systemd_system_unitdir/${j}"
+            LINK="$(echo ${LINK} | sed s/{}/${i}/g )"
+            rm "${LINK}"
+        done
     done
 }