Code enhancement on creating an session and verifying
the session information
Change-Id: I3af9f71f34f7d837a8777d0a5e5b667a9eecd203
Signed-off-by: Sushil Singh <susilsi7@in.ibm.com>
diff --git a/lib/external_intf/management_console_utils.robot b/lib/external_intf/management_console_utils.robot
index 0539dad..6f3f4cc 100644
--- a/lib/external_intf/management_console_utils.robot
+++ b/lib/external_intf/management_console_utils.robot
@@ -1,6 +1,7 @@
*** Settings ***
Documentation Management console utilities keywords.
+Resource ../../lib/bmc_redfish_utils.robot
Library ../../lib/gen_robot_valid.py
Library Collections
Library ../../lib/bmc_ssh_utils.py
@@ -40,6 +41,79 @@
Should Contain ${resp} ${service_message}
+Create Session With ClientID
+ [Documentation] Create redifish session with client id.
+ [Arguments] ${client_id}
+
+ # Description of argument(s):
+ # client_id This client id can contain string value
+ # (e.g. 12345, "EXTERNAL-CLIENT").
+
+ ${session_info}= Create Dictionary
+ ${session_resp}= Redfish Login kwargs= "Oem":{"OpenBMC" : {"ClientID":"${client_id}"}}
+
+ Set To Dictionary ${session_info} SessionIDs ${session_resp['Id']}
+ Set To Dictionary ${session_info} ClientID ${session_resp["Oem"]["OpenBMC"]["ClientID"]}
+ Set To Dictionary ${session_info} SessionToken ${XAUTH_TOKEN}
+ Set To Dictionary ${session_info} SessionResp ${session_resp}
+
+ [Return] ${session_info}
+
+
+Create Session With List Of ClientID
+ [Documentation] Create redifish session with client id.
+ [Arguments] ${client_id}
+
+ # Description of argument(s):
+ # client_id This client id can contain string value
+ # (e.g. 12345, "EXTERNAL-CLIENT").
+
+ @{session_dict_list}= Create List
+ &{session_dict}= Create Dictionary
+
+ FOR ${client} IN @{client_id}
+ ${session_dict}= Create Session With ClientID ${client}
+ Append To List ${session_dict_list} ${session_dict}
+ END
+
+ [Return] ${session_dict_list}
+
+
+Verify A Session Created With ClientID
+ [Arguments] ${client_id} ${session_ids}
+
+ # Description of argument(s):
+ # client_id External client name.
+ # session_id This value is a session id.
+
+ # {
+ # "@odata.id": "/redfish/v1/SessionService/Sessions/H8q2ZKucSJ",
+ # "@odata.type": "#Session.v1_0_2.Session",
+ # "Description": "Manager User Session",
+ # "Id": "H8q2ZKucSJ",
+ # "Name": "User Session",
+ # "Oem": {
+ # "OpenBMC": {
+ # "@odata.type": "#OemSession.v1_0_0.Session",
+ # "ClientID": "",
+ # "ClientOriginIP": "::ffff:x.x.x.x"
+ # }
+ # },
+ # "UserName": "root"
+ # }
+
+ FOR ${client} ${session} IN ZIP ${client_id} ${session_ids}
+ ${session_resp}= Redfish.Get Properties /redfish/v1/SessionService/Sessions/${session["SessionIDs"]}
+ Rprint Vars session_resp
+ @{words} = Split String ${session_resp["ClientOriginIPAddress"]} :
+ ${ip_address}= Get Running System IP
+ Set Test Variable ${temp_ipaddr} ${words}[-1]
+ Valid Value client ['${session_resp["Oem"]["OpenBMC"]["ClientID"]}']
+ Valid Value session["SessionIDs"] ['${session_resp["Id"]}']
+ Valid Value temp_ipaddr ${ip_address}
+ END
+
+
Get Lock Resource Information
[Documentation] Get lock resource information.