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}