1*** Settings ***
2
3Documentation          Keywords for KCS and Lanplus interface command.
4
5Resource               ../lib/ipmi_client.robot
6Resource               ../lib/state_manager.robot
7Resource               ../lib/common_utils.robot
8Variables              ../data/ipmi_raw_cmd_table.py
9Library                ../lib/ipmi_utils.py
10
11
12*** Keywords ***
13
14Verify KCS Interface Commands
15    [Documentation]  Execute set of IPMI raw KCS interface commands and verify it is
16    ...  executable from os host. Set of IPMI raw commands includes system interface
17    ...  command.
18
19    #### raw cmd for get device ID.
20    Run Inband IPMI Raw Command  ${IPMI_RAW_CMD['Device ID']['Get'][0]}
21
22    #### Raw cmd for cold reset.
23    Run Inband IPMI Raw Command  ${IPMI_RAW_CMD['Cold Reset']['reset'][0]}
24
25    Wait Until Keyword Succeeds  2 min  10 sec  Is BMC Unpingable
26    Wait Until Keyword Succeeds  3 min  10 sec  Is BMC Operational
27    ## Waiting time to get KCS interface enabled.
28    Wait Until Keyword Succeeds  3 min  10 sec
29    ...  Run Inband IPMI Raw Command  ${IPMI_RAW_CMD['Device ID']['Get'][0]}
30
31    #### raw cmd for get device GUID.
32    Run Inband IPMI Raw Command  ${IPMI_RAW_CMD['Device GUID']['Get'][0]}
33
34    #### raw cmd for get IP addr.
35    Run Inband IPMI Raw Command  ${IPMI_RAW_CMD['lan_parameters']['get_ip'][0]}
36
37    #### raw cmd for get IP addr src.
38    Run Inband IPMI Raw Command  ${IPMI_RAW_CMD['lan_parameters']['get_ip_src'][0]}
39
40    #### raw cmd for get Dot1Q details.
41    Run Inband IPMI Raw Command  ${IPMI_RAW_CMD['lan_parameters']['get_dot1q'][0]}
42
43    #### raw cmd for get SDR Info.
44    Run Inband IPMI Raw Command  ${IPMI_RAW_CMD['SDR_Info']['get'][0]}
45
46    #### raw cmd for get Chassis status.
47    Run Inband IPMI Raw Command  ${IPMI_RAW_CMD['Chassis_status']['get'][0]}
48
49    #### raw cmd for get SEL INFO.
50    Run Inband IPMI Raw Command  ${IPMI_RAW_CMD['SEL_Info']['get'][0]}
51
52Verify Lanplus Interface Commands
53    [Documentation]  Execute set of IPMI raw Command via lanplus interface and
54    ...  verify it is executable from remote server. Set of IPMI raw commands
55    ...  includes system interface command which should not execute via lanplus
56    ...  interface.
57
58    #### raw cmd for get device ID.
59    Run External IPMI Raw Command  ${IPMI_RAW_CMD['Device ID']['Get'][0]}
60
61    #### Raw cmd for cold reset.
62    Run External IPMI Raw Command  ${IPMI_RAW_CMD['Cold Reset']['reset'][0]}
63
64    Wait Until Keyword Succeeds  2 min  10 sec  Is BMC Unpingable
65    Wait Until Keyword Succeeds  3 min  10 sec  Is BMC Operational
66    ## Waiting time to get Lanplus interface enabled.
67    Wait Until Keyword Succeeds  3 min  10 sec
68    ...  Run External IPMI Raw Command  ${IPMI_RAW_CMD['Device ID']['Get'][0]}
69
70    #### raw cmd for get device GUID.
71    Run External IPMI Raw Command  ${IPMI_RAW_CMD['Device GUID']['Get'][0]}
72
73    #### raw cmd for get IP addr.
74    Run External IPMI Raw Command  ${IPMI_RAW_CMD['lan_parameters']['get_ip'][0]}
75
76    #### raw cmd for get IP addr src.
77    Run External IPMI Raw Command  ${IPMI_RAW_CMD['lan_parameters']['get_ip_src'][0]}
78
79    #### raw cmd for get Dot1Q details.
80    Run External IPMI Raw Command  ${IPMI_RAW_CMD['lan_parameters']['get_dot1q'][0]}
81
82    ## Executing system interface command on lanplus interface.
83    #### raw cmd for get SDR Info.
84    Run Keyword and Expect Error  *Insufficient privilege level*
85    ...  Run External IPMI Raw Command  ${IPMI_RAW_CMD['SDR_Info']['get'][0]}
86
87    #### raw cmd for get Chassis status.
88    Run External IPMI Raw Command  ${IPMI_RAW_CMD['Chassis_status']['get'][0]}
89
90    #### raw cmd for get SEL INFO.
91    Run External IPMI Raw Command  ${IPMI_RAW_CMD['SEL_Info']['get'][0]}
92