Added code for login and storing the session using request library
changes:
- Added keyword "Redfish Generic Login Request"
- Added keyword "Redfish Generic Session Request"
Change-Id: Ib2bba59688612b1b9c8a0330d4ff80517b55bed5
Signed-off-by: Sushil Singh <susilsi7@in.ibm.com>
diff --git a/lib/redfish_request.robot b/lib/redfish_request.robot
new file mode 100644
index 0000000..834feef
--- /dev/null
+++ b/lib/redfish_request.robot
@@ -0,0 +1,57 @@
+*** Settings ***
+
+Documentation Redfish request library which provide keywords for creating session,
+... sending POST, PUT, DELETE, PATCH, GET etc. request using redfish_request.py
+... library file. It also contain other keywords which uses redfish_request.py
+... libarary infrastructure.
+
+Resource openbmc_ffdc.robot
+Resource bmc_redfish_resource.robot
+Resource rest_response_code.robot
+Library redfish_request.py
+
+*** Keywords ***
+
+Redfish Generic Login Request
+ [Documentation] Do Redfish login request.
+ [Arguments] ${user_name} ${password}
+
+ # Description of argument(s):
+ # user_name User name of BMC.
+ # password Password of BMC.
+
+ ${client_id}= Create Dictionary ClientID=None
+ ${oem_data}= Create Dictionary OpenBMC=${client_id}
+ ${data}= Create Dictionary UserName=${user_name} Password=${password} Oem=${oem_data}
+
+ Set Test Variable ${uri} /redfish/v1/SessionService/Sessions
+ ${resp}= Request_Login headers=None url=${uri} credential=${data}
+ Should Be Equal As Strings ${resp.status_code} ${HTTP_CREATED}
+
+ [Return] ${resp}
+
+
+Redfish Generic Session Request
+ [Documentation] Do Redfish login request and store the session details.
+ [Arguments] ${user_name} ${password}
+
+ # Description of argument(s):
+ # user_name User name of BMC.
+ # password Password of BMC.
+
+ ${session_dict}= Create Dictionary
+ ${session_resp}= Redfish Generic Login Request ${user_name} ${password}
+
+ ${auth_token}= Create Dictionary X-Auth-Token ${session_resp.headers['X-Auth-Token']}
+
+ Set To Dictionary ${session_dict} headers ${auth_token}
+ Set To Dictionary ${session_dict} Location ${session_resp.headers['Location']}
+
+ ${content}= To JSON ${session_resp.content}
+
+ Set To Dictionary ${session_dict} Content ${content}
+
+ Set Global Variable ${active_session_info} ${session_dict}
+ Append To List ${session_dict_list} ${session_dict}
+
+ [Return] ${session_dict}