1*** Settings *** 2 3Resource ../xcat/resource.txt 4Resource ../../lib/resource.txt 5 6Library SSHLibrary 7Library OperatingSystem 8Library String 9 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} 37 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} 96 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 140