blob: 9af6c701a33cfa1b0059fb68e4c096ebd530768a [file] [log] [blame]
*** 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
Library SSHLibrary
*** Variables ***
&{daemon_command} start=systemctl start avahi-daemon
... stop=systemctl stop avahi-daemon
... status=systemctl status avahi-daemon -l
&{daemon_message} start=Active: active (running)
... stop=Active: inactive (dead)
*** Keywords ***
Set AvahiDaemon Service
[Documentation] To enable or disable avahi service.
[Arguments] ${command}
# Description of argument(s):
# command Get command from dictionary.
${service_command}= Get From Dictionary ${daemon_command} ${command}
${resp} ${stderr} ${rc}= BMC Execute Command ${service_command} print_out=1
Should Be Equal As Integers ${rc} 0
Verify AvahiDaemon Service Status
[Documentation] To check for avahi service.
[Arguments] ${message}
# Description of argument(s):
# message Get status message from dictionary.
${service_command}= Get From Dictionary ${daemon_command} status
${service_message}= Get From Dictionary ${daemon_message} ${message}
${resp} ${stderr} ${rc}= BMC Execute Command ${service_command} print_out=1
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
[Documentation] Verify the session is created.
[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.
${code_base_dir_path}= Get Code Base Dir Path
${resource_lock_json}= Evaluate
... json.load(open('${code_base_dir_path}data/resource_lock_table.json')) modules=json
Rprint Vars resource_lock_json
[Return] ${resource_lock_json}
Redfish BMC Match States
[Documentation] Verify the BMC match state.
[Arguments] ${match_state}
# Description of argument(s):
# match_state Match the state of BMC.
${bmc_state}= Redfish Get BMC State
Should Be Equal As Strings ${match_state} ${bmc_state}