LEDS: Add systemd unit to call led-set-all-groups-asserted.sh

led-set-all-groups-asserted.sh needs to be called with "false"
as part of below transitions to turn off all indicator LEDs
- BMC booting to standby and staying at standby
- BMC starting to power on

Change-Id: I62bf5aa96173df267d60023fab2190c559610157
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
diff --git a/recipes-phosphor/leds/phosphor-led-manager/obmc-led-set-all-groups-asserted@.service b/recipes-phosphor/leds/phosphor-led-manager/obmc-led-set-all-groups-asserted@.service
new file mode 100644
index 0000000..82763ea
--- /dev/null
+++ b/recipes-phosphor/leds/phosphor-led-manager/obmc-led-set-all-groups-asserted@.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Set the Asserted property of all the LED groups to %i
+Wants=xyz.openbmc_project.LED.GroupManager
+After=xyz.openbmc_project.LED.GroupManager
+After=op-reset-chassis-running@0.service
+ConditionPathExists=!/run/openbmc/chassis@0-on
+
+[Service]
+Type=oneshot
+Restart=no
+EnvironmentFile={envfiledir}/obmc/led/set-all/groups/config
+ExecStart=/bin/bash -c "led-set-all-groups-asserted.sh %i ${{EXCLUDED_GROUPS}}"
+SyslogIdentifier=obmc-led-set-all-groups-asserted
diff --git a/recipes-phosphor/leds/phosphor-led-manager/obmc/led/set-all/groups/config b/recipes-phosphor/leds/phosphor-led-manager/obmc/led/set-all/groups/config
new file mode 100644
index 0000000..664200d
--- /dev/null
+++ b/recipes-phosphor/leds/phosphor-led-manager/obmc/led/set-all/groups/config
@@ -0,0 +1 @@
+EXCLUDED_GROUPS=bmc_booted power_on
diff --git a/recipes-phosphor/leds/phosphor-led-manager_%.bbappend b/recipes-phosphor/leds/phosphor-led-manager_%.bbappend
new file mode 100644
index 0000000..6121395
--- /dev/null
+++ b/recipes-phosphor/leds/phosphor-led-manager_%.bbappend
@@ -0,0 +1,30 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SYSTEMD_SERVICE_${PN}-ledmanager_append_rainier += "obmc-led-set-all-groups-asserted@.service"
+
+# Copies config file having arguments for led-set-all-groups-asserted.sh
+SYSTEMD_ENVIRONMENT_FILE_${PN}-ledmanager_append_rainier +="obmc/led/set-all/groups/config"
+
+pkg_postinst_${PN}-ledmanager_rainier () {
+
+    # Needed this to run as part of BMC boot
+    mkdir -p $D$systemd_system_unitdir/multi-user.target.wants
+    LINK="$D$systemd_system_unitdir/multi-user.target.wants/obmc-led-set-all-groups-asserted@false.service"
+    TARGET="../obmc-led-set-all-groups-asserted@.service"
+    ln -s $TARGET $LINK
+
+    # Needed this to run as part of Power On
+    mkdir -p $D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants
+    LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants/obmc-led-set-all-groups-asserted@false.service"
+    TARGET="../obmc-led-set-all-groups-asserted@.service"
+    ln -s $TARGET $LINK
+}
+
+pkg_prerm_${PN}-ledmanager_rainier () {
+
+    LINK="$D$systemd_system_unitdir/multi-user.target.wants/obmc-led-set-all-groups-asserted@false.service"
+    rm $LINK
+
+    LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.wants/obmc-led-set-all-groups-asserted@false.service"
+    rm $LINK
+}