|  | *** Settings *** | 
|  | Documentation   BMC and host redfish utility keywords. | 
|  |  | 
|  | Resource        resource.robot | 
|  | Resource        bmc_redfish_resource.robot | 
|  |  | 
|  |  | 
|  | *** Keywords *** | 
|  |  | 
|  | Redfish Power Operation | 
|  | [Documentation]  Do Redfish host power operation. | 
|  | [Arguments]      ${reset_type} | 
|  | # Description of arguments: | 
|  | # reset_type     Type of power operation. | 
|  | #                (e.g. On/ForceOff/GracefulRestart/GracefulShutdown) | 
|  |  | 
|  | # Example: | 
|  | # "Actions": { | 
|  | # "#ComputerSystem.Reset": { | 
|  | #  "ResetType@Redfish.AllowableValues": [ | 
|  | #    "On", | 
|  | #    "ForceOff", | 
|  | #    "GracefulRestart", | 
|  | #    "GracefulShutdown" | 
|  | #  ], | 
|  | #  "target": "/redfish/v1/Systems/system/Actions/ComputerSystem.Reset" | 
|  | #  } | 
|  | # } | 
|  |  | 
|  | Redfish.Login | 
|  | ${target}=  redfish_utils.Get Target Actions  /redfish/v1/Systems/system/  ComputerSystem.Reset | 
|  | ${payload}=  Create Dictionary  ResetType=${reset_type} | 
|  | ${resp}=  Redfish.Post  ${target}  body=&{payload} | 
|  | Redfish.Logout | 
|  |  | 
|  |  | 
|  | Redfish BMC Reset Operation | 
|  | [Documentation]  Do Redfish BMC reset operation. | 
|  |  | 
|  | # Example: | 
|  | # "Actions": { | 
|  | # "#Manager.Reset": { | 
|  | #  "ResetType@Redfish.AllowableValues": [ | 
|  | #    "GracefulRestart" | 
|  | #  ], | 
|  | #  "target": "/redfish/v1/Managers/bmc/Actions/Manager.Reset" | 
|  | # } | 
|  |  | 
|  | Redfish.Login | 
|  | ${target}=  redfish_utils.Get Target Actions  /redfish/v1/Managers/bmc/  Manager.Reset | 
|  | ${payload}=  Create Dictionary  ResetType=GracefulRestart | 
|  | ${resp}=  Redfish.Post  ${target}  body=&{payload} | 
|  | # The logout may very well fail because the system was just asked to | 
|  | # reset itself. | 
|  | Run Keyword And Ignore Error  Redfish.Logout | 
|  |  | 
|  |  | 
|  | Delete All Redfish Sessions | 
|  | [Documentation]  Delete all active redfish sessions. | 
|  |  | 
|  | Redfish.Login | 
|  | ${saved_session_info}=  Get Redfish Session Info | 
|  |  | 
|  | ${resp_list}=  Redfish_Utils.Get Member List | 
|  | ...  /redfish/v1/SessionService/Sessions | 
|  |  | 
|  | # Remove the current login session from the list. | 
|  | Remove Values From List  ${resp_list}  ${saved_session_info["location"]} | 
|  |  | 
|  | :FOR  ${session}  IN  @{resp_list} | 
|  | \  Redfish.Delete  ${session} | 
|  |  | 
|  | Redfish.Logout |