meta-facebook: yosemitev2 : Add support to take actions if
Fan/NIC sensor values crossed thresholds

Added support to trigger hard shutdown alarms and power off the
slots of the platform if the Fan/NIC sensors values getting low
compared to threshold values.

Added platform specific service file and script to take
platorm specific actions.

TESTED : Verified all the slots getting powered Off when fan/nic
sensor
values crossed threshold values.

Signed-off-by: Kumar Thangavel <thangavel.k@hcl.com>
Change-Id: I6deb6707e574a375fac8f2379f47661a5a0ed332
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/bletchley/host-poweroff b/meta-facebook/recipes-phosphor/fans/phosphor-fan/bletchley/host-poweroff
new file mode 100644
index 0000000..893facb
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/bletchley/host-poweroff
@@ -0,0 +1,5 @@
+#!/bin/bash
+# Power off the hosts when fan sensors crossed thresholds.
+
+echo "This feature is not implemented in bletchley and it will be implemented in future."
+
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-hard-poweroff@.target b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-hard-poweroff@.target
new file mode 100644
index 0000000..0512fa4
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-hard-poweroff@.target
@@ -0,0 +1,4 @@
+[Unit]
+Description=Chassis%i (Hard Power Off)
+After=multi-user.target
+Requires=obmc-poweroff.service
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-poweroff@0.target b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-poweroff@0.target
new file mode 100644
index 0000000..0389cf7
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-chassis-poweroff@0.target
@@ -0,0 +1,3 @@
+[Unit]
+Description=Chassis%i (Power Off)
+After=multi-user.target
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-poweroff.service b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-poweroff.service
new file mode 100644
index 0000000..5f7ff4c
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/obmc-poweroff.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=power off host
+
+[Service]
+RemainAfterExit=no
+Type=oneshot
+ExecStart=/usr/libexec/phosphor-fan-sensor-monitor/host-poweroff
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/tiogapass/host-poweroff b/meta-facebook/recipes-phosphor/fans/phosphor-fan/tiogapass/host-poweroff
new file mode 100644
index 0000000..3d1212b
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/tiogapass/host-poweroff
@@ -0,0 +1,5 @@
+#!/bin/bash
+# Power off the hosts when fan sensors crossed thresholds.
+
+echo "This feature is not implemented in Tiogapass and it will be implemented in future."
+
diff --git a/meta-facebook/recipes-phosphor/fans/phosphor-fan/yosemitev2/host-poweroff b/meta-facebook/recipes-phosphor/fans/phosphor-fan/yosemitev2/host-poweroff
new file mode 100644
index 0000000..782f085
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/fans/phosphor-fan/yosemitev2/host-poweroff
@@ -0,0 +1,28 @@
+#!/bin/bash
+# Power off the hosts when fan sensors crossed thresholds.
+
+echo "Power off the hosts if fansensors threshold crossed ::"
+
+HOST_INSTANCES="HOST_INSTANCES_SED_REPLACEMENT_VALUE"
+
+DBUS_SERVICE="xyz.openbmc_project.State.Chassis"
+DBUS_OBJECT="/xyz/openbmc_project/state/chassis"
+DBUS_INTERFACE="xyz.openbmc_project.State.Chassis"
+DBUS_PROPERTY="RequestedPowerTransition"
+PROPERTY_VALUE="xyz.openbmc_project.State.Chassis.Transition.Off"
+
+# Power off the hosts.
+power-off-all-hosts()
+{
+    for host_id in $HOST_INSTANCES
+    do
+        echo "chosen host id :::$host_id"
+
+        # host power off
+        output=$(busctl set-property $DBUS_SERVICE$host_id $DBUS_OBJECT$host_id $DBUS_INTERFACE $DBUS_PROPERTY s $PROPERTY_VALUE)
+        echo "$output"
+
+    done
+}
+
+power-off-all-hosts