blob: 19802a1d1c944c49bef2501147f03e7476b247d6 [file] [log] [blame]
Prashanth Katti1dcd5392017-05-12 04:35:53 -05001*** Settings ***
2
3Resource ../xcat/resource.txt
Prashanth Katti477debc2017-05-19 03:01:04 -05004Resource ../../lib/resource.txt
Prashanth Katti1dcd5392017-05-12 04:35:53 -05005
6Library SSHLibrary
7Library OperatingSystem
Prashanth Katti477debc2017-05-19 03:01:04 -05008Library String
Prashanth Katti1dcd5392017-05-12 04:35:53 -05009
10*** Keywords ***
11
12Open Connection And Login To XCAT
13 [Documentation] Open connection and login to xCAT server.
14 [Arguments] ${xcat_host}=${XCAT_HOST} ${xcat_port}=${XCAT_PORT}
15
16 # Description of argument(s):
17 # xcat_host IP address of the XCAT server.
18 # xcat_port Network port on which XCAT server accepts ssh session.
19
20 Open Connection ${xcat_host} port=${xcat_port}
21 Login ${XCAT_USERNAME} ${XCAT_PASSWORD}
22
23Get List Of BMC Nodes
24 [Documentation] Get list of BMC nodes.
25 [Arguments] ${node_cfg_file_path}=${NODE_CFG_FILE_PATH}
26
27 # Get the list of BMC nodes to be added.
28 # This keyword expects file having list of BMC nodes
29 # as an input.
30 # File should have IP addresses of BMC nodes.
31
32 OperatingSystem.File Should Exist ${node_cfg_file_path} msg=cfg file missing.
33 File Should Not Be Empty ${node_cfg_file_path} msg=Empty config file.
34
35 ${bmc_list} = OperatingSystem.Get File ${node_cfg_file_path}
36 [Return] ${bmc_list}
Prashanth Katti477debc2017-05-19 03:01:04 -050037
38Add Nodes To XCAT
39 [Documentation] Add nodes to XCAT configuration.
40 [Arguments] ${node} ${username}=${OPENBMC_USERNAME}
41 ... ${password}=${OPENBMC_PASSWORD}
42
43 # Description of the argument(s):
44 # node Name of the node to be added.
45
46 ${cmd_buf}= Catenate ${XCAT_DIR_PATH}/mkdef ${node} bmc=${node}
47 ... bmcusername=${username} bmcpassword=${password} mgt=openbmc groups=all
48 Execute Command ${cmd_buf}
49
50Validate Added Node
51 [Documentation] Validate added node.
52 [Arguments] ${node}
53
54 # Description of the argument(s):
55 # node Name of the node.
56
57 ${stdout} ${stderr}= Execute Command ${XCAT_DIR_PATH}/nodels
58 ... return_stderr=True
59 Should Be Empty ${stderr}
60 Should Contain ${std_out} ${node} msg=Node is not added.
61
62Power On Via XCAT
63 [Documentation] Power on via XCAT.
64 [Arguments] ${node}
65
66 # Description of the argument(s):
67 # node Name of the node.
68
69 ${stdout} ${stderr}= Execute Command ${XCAT_DIR_PATH}/rpower ${node} on
70 ... return_stderr=True
71 Should Be Empty ${stderr}
72
73Power Off Via XCAT
74 [Documentation] Power off via XCAT.
75 [Arguments] ${node}
76
77 # Description of the argument(s):
78 # node Name of the node.
79
80 ${stdout} ${stderr}= Execute Command ${XCAT_DIR_PATH}/rpower ${node} off
81 ... return_stderr=True
82 Should Be Empty ${stderr}
83
84Get Power Status
85 [Documentation] Get power status via XCAT.
86 [Arguments] ${node}
87
88 # Description of the argument(s):
89 # node Name of the node.
90
91 ${stdout} ${stderr}= Execute Command
92 ... ${XCAT_DIR_PATH}/rpower ${node} state return_stderr=True
93 Should Be Empty ${stderr}
94
95 [Return] ${stdout}
Prashanth Kattib974a742017-05-25 06:52:29 -050096
97Add Nodes To Group
98 [Documentation] Add BMC nodes to group.
99 [Arguments] ${node} ${group}=${GROUP}
100
101 # Description of argument(s):
102 # node Name of the node (e.g. "node1").
103 # group Name of the group (e.g. "openbmc").
104
105 ${stdout} ${stderr}= Execute Command
106 ... ${XCAT_DIR_PATH}/chdef ${node} groups=${group} return_stderr=True
107 Should Be Empty ${stderr}
108
109Get List Of Nodes In Group
110 [Documentation] Get list of nodes in BMC.
111 [Arguments] ${group}=${GROUP}
112
113 # Description of argument(s):
114 # group Name of the group (e.g. "openbmc").
115
116 # Sample output of this keyword:
117 # XXX.XXX.XXX.XXX
118 # YYY.YYY.YYY.YYY
119 # ZZZ.ZZZ.ZZZ.ZZZ
120
121 ${stdout} ${stderr}= Execute Command
122 ... ${XCAT_DIR_PATH}/nodels ${group} return_stderr=True
123 Should Be Empty ${stderr}
124
125 [Return] ${stdout}
126
127Validate Node Added In Group
128 [Documentation] Validate whether node is added in group.
129 [Arguments] ${node} ${group}
130
131 # Description of argument(s):
132 # node Name of the node (e.g. "node1").
133 # group Name of the group (e.g. "openbmc").
134
135 ${nodes_in_group}= Get List Of Nodes In Group ${group}
136 Should Contain ${nodes_in_group} ${node}
137 ... msg=BMC node is not added in a group.
138
139# TBD openbmc/openbmc-test-automation/issues/647