1*** Settings ***
2Documentation    Module to test IPMI disable functionality.
3
4Resource         ../lib/ipmi_client.robot
5Resource         ../lib/openbmc_ffdc.robot
6Library          ../lib/ipmi_utils.py
7
8*** Test Cases ***
9
10Verify Disabling And Enabling IPMI Via Host
11    [Documentation]  Verify disabling and enabling IPMI via host.
12    [Tags]  Verify_Disabling_And_Enabling_IPMI_Via_Host
13    [Teardown]  Run Keywords  FFDC On Test Case Fail
14    ...  AND  Run Inband IPMI Standard Command  lan set ${CHANNEL_NUMBER} access on
15
16    # Disable IPMI and verify
17    Run Inband IPMI Standard Command  lan set ${CHANNEL_NUMBER} access off
18    Run Keyword and Expect Error  *Unable to establish IPMI*
19    ...  Run External IPMI Standard Command  lan print ${CHANNEL_NUMBER}
20
21    # Enable IPMI and verify
22    Run Inband IPMI Standard Command  lan set ${CHANNEL_NUMBER} access on
23    ${lan_print_info}=  Get Lan Print Dict  ${CHANNEL_NUMBER}
24
25    ${openbmc_host_name}  ${openbmc_ip}=  Get Host Name IP  host=${OPENBMC_HOST}
26    Rprint Vars  lan_print_info  openbmc_ip
27    Valid Value  lan_print_info['IP Address']  ['${openbmc_ip}']
28
29
30Verify Disabling IPMI Via OOB IPMI
31    [Documentation]  Verify disabling IPMI via out of band IPMI.
32    [Tags]  Verify_Disabling_IPMI_Via_OOB_IPMI
33    [Teardown]  Run Keywords  FFDC On Test Case Fail
34    ...  AND  Run Inband IPMI Standard Command  lan set ${CHANNEL_NUMBER} access on
35
36    # Disable IPMI via OOB IPMI and verify
37    Run Keyword and Expect Error  *IPMI response is NULL*
38    ...  Run IPMI Standard Command  lan set ${CHANNEL_NUMBER} access off
39    Run Keyword and Expect Error  *Unable to establish IPMI*
40    ...  Run External IPMI Standard Command  lan print ${CHANNEL_NUMBER}
41
42    # Enable IPMI via Host and verify
43    Run Inband IPMI Standard Command  lan set ${CHANNEL_NUMBER} access on
44    ${lan_print_info}=  Get Lan Print Dict  ${CHANNEL_NUMBER}
45
46    ${openbmc_host_name}  ${openbmc_ip}=  Get Host Name IP  host=${OPENBMC_HOST}
47    Rprint Vars  lan_print_info  openbmc_ip
48    Valid Value  lan_print_info['IP Address']  ['${openbmc_ip}']
49
50
51Verify IPMI Disable Persistency After BMC Reboot
52    [Documentation]  Verify IPMI disable persistency after BMC reboot.
53    [Tags]  Verify_IPMI_Disable_Persistency_After_BMC_Reboot
54    [Teardown]  Run Keywords  FFDC On Test Case Fail
55    ...  AND  Run Inband IPMI Standard Command  lan set ${CHANNEL_NUMBER} access on
56
57    # Disable IPMI and reboot BMC.
58    Run Inband IPMI Standard Command  lan set ${CHANNEL_NUMBER} access off
59    OBMC Reboot (run)
60
61    # Verify that IPMI remains disabled after reboot.
62    Run Keyword and Expect Error  *Unable to establish IPMI*
63    ...  Run External IPMI Standard Command  lan print ${CHANNEL_NUMBER}
64
65