blob: 46617fbbfe17957167d6a82aceb248f9344d9769 [file] [log] [blame]
Prashanth Kattif59a73e2021-09-22 03:03:58 -05001*** Settings ***
2
3Documentation Protocol settings utilities keywords.
4
5Resource ../lib/resource.robot
6Resource ../lib/utils.robot
7
8
9*** Keywords ***
10
11Enable SSH Protocol
12 [Documentation] Enable or disable SSH protocol.
13 [Arguments] ${enable_value}=${True}
14
15 # Description of argument(s}:
16 # enable_value Enable or disable SSH, e.g. (true, false).
17
18 ${ssh_state}= Create Dictionary ProtocolEnabled=${enable_value}
19 ${data}= Create Dictionary SSH=${ssh_state}
20
21 Redfish.Patch ${REDFISH_NW_PROTOCOL_URI} body=&{data}
22 ... valid_status_codes=[${HTTP_NO_CONTENT}]
23
24 # Wait for timeout for new values to take effect.
25 Sleep ${NETWORK_TIMEOUT}s
26
27
28Verify SSH Login And Commands Work
29 [Documentation] Verify if SSH connection works and able to run command on SSH session.
30 [Teardown] Close All Connections
31
32 # Check if we can open SSH connection and login.
33 Open Connection And Login
34
35 # Check if we can run command successfully on SSH session.
36 BMC Execute Command /sbin/ip addr
37
38
39Verify SSH Protocol State
40 [Documentation] verify SSH protocol state.
41 [Arguments] ${state}=${True}
42
43 # Description of argument(s}:
44 # state Enable or disable SSH, e.g. (true, false)
45
46 # Sample output:
47 # {
48 # "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol",
49 # "@odata.type": "#ManagerNetworkProtocol.v1_5_0.ManagerNetworkProtocol",
50 # "Description": "Manager Network Service",
51 # "FQDN": "bmc",
52 # "HTTP": {
53 # "Port": 0,
54 # "ProtocolEnabled": false
55 # },
56 # "HTTPS": {
57 # "Certificates": {
58 # "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates"
59 # },
60 # "Port": xxx,
61 # "ProtocolEnabled": true
62 # },
63 # "HostName": "xxxxbmc",
64 # "IPMI": {
65 # "Port": xxx,
66 # "ProtocolEnabled": true
67 # },
68 # "Id": "NetworkProtocol",
69 # "NTP": {
70 # "NTPServers": [
71 # "xx.xx.xx.xx",
72 # "xx.xx.xx.xx",
73 # "xx.xx.xx.xx"
74 # ],
75 # "ProtocolEnabled": true
76 # },
77 # "Name": "Manager Network Protocol",
78 # "SSH": {
79 # "Port": xx,
80 # "ProtocolEnabled": true
81 # },
82 # "Status": {
83 # "Health": "OK",
84 # "HealthRollup": "OK",
85 # "State": "Enabled"
86 # }
87
88 ${resp}= Redfish.Get ${REDFISH_NW_PROTOCOL_URI}
89 Should Be Equal As Strings ${resp.dict['SSH']['ProtocolEnabled']} ${state}
90 ... msg=Protocol states are not matching.
91
92
93Enable IPMI Protocol
94 [Documentation] Enable or disable IPMI protocol.
95 [Arguments] ${enable_value}=${True}
96
97 # Description of argument(s}:
98 # enable_value Enable or disable IPMI, e.g. (true, false).
99
100 ${ipmi_state}= Create Dictionary ProtocolEnabled=${enable_value}
101 ${data}= Create Dictionary IPMI=${ipmi_state}
102
103 Redfish.Patch ${REDFISH_NW_PROTOCOL_URI} body=&{data}
104 ... valid_status_codes=[${HTTP_NO_CONTENT}]
105
106 # Wait for timeout for new values to take effect.
107 Sleep ${NETWORK_TIMEOUT}s
108
109
110Verify IPMI Works
111 [Documentation] Run IPMI command and return status.
112 [Arguments] ${sub_cmd} ${host}=${OPENBMC_HOST}
113
114 # Description of argument(s):
115 # host BMC host name or IP address.
116 # sub_cmd The IPMI command string to be executed.
117
118 ${rc}= Run And Return Rc ${cmd_prefix} -H ${host} ${sub_cmd}
119 Should Be Equal As Strings ${rc} 0
120 ... msg=IPMI is not enabled and commands are failing.
121
122
123Verify IPMI Protocol State
124 [Documentation] Verify IPMI protocol state.
125 [Arguments] ${state}=${True}
126
127 # Description of argument(s}:
128 # state Enable or disable IPMI, e.g. (true, false)
129
130 ${resp}= Redfish.Get ${REDFISH_NW_PROTOCOL_URI}
131 Should Be Equal As Strings ${resp.dict['IPMI']['ProtocolEnabled']} ${state}
132 ... msg=Protocol states are not matching.