Move Redfish BMC reboot function to common library

Resolves:
    https://github.com/openbmc/openbmc-test-automation/issues/2137

Tested:
    Enable_SSH_Protocol_And_Verify

Signed-off-by: Prashanth Katti <prkatti1@in.ibm.com>
Change-Id: I996860491c9498da22323782ae2a292f4c274482
diff --git a/lib/bmc_redfish_utils.robot b/lib/bmc_redfish_utils.robot
index 9fceae1..c3408ea 100644
--- a/lib/bmc_redfish_utils.robot
+++ b/lib/bmc_redfish_utils.robot
@@ -331,3 +331,34 @@
     ${resp}=  Redfish.Get  /redfish/v1/AccountService/Accounts/${username}
     Should Be Equal  ${resp.dict["PasswordChangeRequired"]}  ${expected_result}
 
+
+Is BMC LastResetTime Changed
+    [Documentation]  Return fail if BMC last reset time is not changed.
+    [Arguments]  ${reset_time}
+
+    # Description of argument(s):
+    # reset_time  Last BMC reset time.
+
+    ${last_reset_time}=  Get BMC Last Reset Time
+    Should Not Be Equal  ${last_reset_time}  ${reset_time}
+
+
+Redfish BMC Reboot
+    [Documentation]  Use Redfish API reboot BMC and wait for BMC ready.
+
+    #  Get BMC last reset time for compare
+    ${last_reset_time}=  Get BMC Last Reset Time
+
+    # Reboot BMC by Redfish API
+    Redfish BMC Reset Operation
+
+    # Wait for BMC real reboot and Redfish API ready
+    Wait Until Keyword Succeeds  3 min  10 sec  Is BMC LastResetTime Changed  ${last_reset_time}
+
+
+Get BMC Last Reset Time
+    [Documentation]  Return BMC LastResetTime.
+
+    ${last_reset_time}=  Redfish.Get Attribute  /redfish/v1/Managers/bmc  LastResetTime
+
+    [Return]  ${last_reset_time}