Add target files that gpio monitor can call into

When GPIO monitor sees that a particular line is asserted,
it calls into one of the configured systemd targets and this
is one such. For now, the target just has host-quiesce and
will be enhanced to contain a service that logs an error.

Change-Id: I09afea5fcab3efce7bbfa5124af9b8cb2e0594bf
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
diff --git a/common/recipes-core/systemd/obmc-targets.bb b/common/recipes-core/systemd/obmc-targets.bb
index ae530ac..5f2a1c0 100644
--- a/common/recipes-core/systemd/obmc-targets.bb
+++ b/common/recipes-core/systemd/obmc-targets.bb
@@ -35,7 +35,10 @@
 # - quiesce:  Target to enter on host boot failure
 # - shutdown: Tell host to shutdown, then stop system
 # - reset:   Services to check if host is running and update host "start" target
-HOST_ACTION_TARGETS = "start stop quiesce reset shutdown"
+# - crash:   Target to run when host crashes. it is very much similar to
+#            quiesce target but the only delta is that this target contains
+#            multiple services and one of them is the quiesce target.
+HOST_ACTION_TARGETS = "start stop quiesce reset shutdown crash"
 
 CHASSIS_SYNCH_FMT = "obmc-power-{0}@.target"
 CHASSIS_ACTION_FMT = "obmc-chassis-power{0}@.target"
@@ -48,6 +51,11 @@
 HOST_LINK_ACTION_FMT = "${HOST_ACTION_FMT}:obmc-host-{0}@{1}.target"
 FAN_LINK_FMT = "obmc-fan-control-ready@.target:obmc-fan-control-ready@{0}.target"
 
+QUIESCE_TMPL = "obmc-host-quiesce@.target"
+CRASH_TGTFMT = "obmc-host-crash@{0}.target"
+QUIESCE_INSTFMT = "obmc-host-quiesce@{0}.target"
+CRASH_QUIESCE_FMT = "../${QUIESCE_TMPL}:${CRASH_TGTFMT}.wants/${QUIESCE_INSTFMT}"
+
 SYSTEMD_SERVICE_${PN} += " \
         obmc-mapper.target \
         obmc-webserver-pre.target \
@@ -67,3 +75,4 @@
 SYSTEMD_LINK_${PN} += "${@compose_list(d, 'HOST_LINK_SYNCH_FMT', 'HOST_SYNCH_TARGETS', 'OBMC_HOST_INSTANCES')}"
 SYSTEMD_LINK_${PN} += "${@compose_list(d, 'HOST_LINK_ACTION_FMT', 'HOST_ACTION_TARGETS', 'OBMC_HOST_INSTANCES')}"
 SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FAN_LINK_FMT', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'CRASH_QUIESCE_FMT', 'OBMC_HOST_INSTANCES')}"
diff --git a/common/recipes-core/systemd/obmc-targets/obmc-host-crash@.target b/common/recipes-core/systemd/obmc-targets/obmc-host-crash@.target
new file mode 100644
index 0000000..ea3798b
--- /dev/null
+++ b/common/recipes-core/systemd/obmc-targets/obmc-host-crash@.target
@@ -0,0 +1,4 @@
+[Unit]
+Description=Host instance %i crashed
+Conflicts=obmc-chassis-poweroff@%i.target
+RefuseManualStop=yes