Add IPMI support to set power restore policy

Change-Id: I768965c5d7a979cd191d70d839da57409c4707a4
Signed-off-by: George Keishing <gkeishin@in.ibm.com>
diff --git a/lib/utils.robot b/lib/utils.robot
index 818ab3b..8c08885 100755
--- a/lib/utils.robot
+++ b/lib/utils.robot
@@ -8,6 +8,7 @@
 Resource                ../lib/boot_utils.robot
 Resource                ../lib/common_utils.robot
 Resource                ../lib/bmc_redfish_utils.robot
+Resource                ../lib/ipmi_client.robot
 Library                 String
 Library                 DateTime
 Library                 Process
@@ -375,7 +376,6 @@
     ${power_restore_policy}=  Redfish.Get Attribute  /redfish/v1/Systems/system  PowerRestorePolicy
     [Return]  ${power_restore_policy}
 
-
 Get Auto Reboot
     [Documentation]  Returns auto reboot setting.
     ${setting}=  Read Attribute  ${CONTROL_HOST_URI}/auto_reboot  AutoReboot
@@ -694,6 +694,21 @@
     ...  valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}]
 
 
+IPMI Set Power Restore Policy
+    [Documentation]   Set the BMC power restore policy using IPMI.
+    [Arguments]   ${power_restore_policy}=always-off
+
+    # Description of argument(s):
+    # power_restore_policy    Power restore policies
+    #                         always-on   : turn on when power is restored
+    #                         previous    : return to previous state when power is restored
+    #                         always-off  : stay off after power is restored
+
+    ${resp}=  Run IPMI Standard Command  chassis policy ${power_restore_policy}
+    # Example:  Set chassis power restore policy to always-off
+    Should Contain  ${resp}  ${power_restore_policy}
+
+
 Set Auto Reboot Setting
     [Documentation]  Set the given auto reboot setting (REST or Redfish).
     [Arguments]  ${value}