Fix the tcpdump collection
[integration/test.git] / csit / libraries / DevstackUtils.robot
index 6a9c3fc74b8ad6af14eb423553f08b84f3d8a587..08168c0ae734cac1296cc0ec91e79910245d8c3a 100644 (file)
@@ -33,6 +33,11 @@ ${TEMPEST_TIMEOUT}    420s
 ${OS_CNTL_CONN_ID}    None
 ${OS_CMP1_CONN_ID}    None
 ${OS_CMP2_CONN_ID}    None
+${OS_CNTL_IP}     ${EMPTY}
+${OS_CMP1_IP}     ${EMPTY}
+${OS_CMP2_IP}     ${EMPTY}
+@{OS_ALL_IPS}     @{EMPTY}
+@{OS_CMP_IPS}     @{EMPTY}
 
 *** Keywords ***
 Run Tempest Tests
@@ -158,6 +163,7 @@ Open Connection
 Devstack Suite Setup
     [Arguments]    ${odl_ip}=${ODL_SYSTEM_IP}
     [Documentation]    Open connections to the nodes
+    Get DevStack Nodes Data
     Create Session    session    http://${odl_ip}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
     SSHLibrary.Set Default Configuration    timeout=${default_devstack_prompt_timeout}
     Run Keyword If    0 < ${NUM_OS_SYSTEM}    Open Connection    OS_CNTL_CONN_ID    ${OS_CONTROL_NODE_IP}
@@ -167,7 +173,6 @@ Devstack Suite Setup
 Write Commands Until Prompt
     [Arguments]    ${cmd}    ${timeout}=${default_devstack_prompt_timeout}
     [Documentation]    quick wrapper for Write and Read Until Prompt Keywords to make test cases more readable
-    Log    ${cmd}
     SSHLibrary.Set Client Configuration    timeout=${timeout}
     SSHLibrary.Read
     SSHLibrary.Write    ${cmd};echo Command Returns $?
@@ -180,3 +185,44 @@ Write Commands Until Prompt And Log
     ${output} =    Write Commands Until Prompt    ${cmd}    ${timeout}
     Log    ${output}
     [Return]    ${output}
+
+Log Devstack Nodes Data
+    ${output} =    BuiltIn.Catenate    SEPARATOR=\n    OS_CNTL_HOSTNAME: ${OS_CNTL_HOSTNAME} - OS_CNTL_IP: ${OS_CNTL_IP} - OS_CONTROL_NODE_IP: ${OS_CONTROL_NODE_IP}    OS_CMP1_HOSTNAME: ${OS_CMP1_HOSTNAME} - OS_CMP1_IP: ${OS_CMP1_IP} - OS_COMPUTE_1_IP: ${OS_COMPUTE_1_IP}    OS_CMP2_HOSTNAME: ${OS_CMP2_HOSTNAME} - OS_CMP2_IP: ${OS_CMP2_IP} - OS_COMPUTE_2_IP: ${OS_COMPUTE_2_IP}    OS_ALL_IPS: @{OS_ALL_IPS}
+    ...    OS_CMP_IPS: @{OS_CMP_IPS}
+    BuiltIn.Log    DevStack Nodes Data:\n${output}
+
+Get DevStack Hostnames
+    [Documentation]    Assign hostname global variables for DevStack nodes
+    ${OS_CNTL_HOSTNAME} =    OpenStackOperations.Get Hypervisor Hostname From IP    ${OS_CNTL_IP}
+    ${OS_CMP1_HOSTNAME} =    OpenStackOperations.Get Hypervisor Hostname From IP    ${OS_CMP1_IP}
+    ${OS_CMP2_HOSTNAME} =    OpenStackOperations.Get Hypervisor Hostname From IP    ${OS_CMP2_IP}
+    BuiltIn.Set Suite Variable    ${OS_CNTL_HOSTNAME}
+    BuiltIn.Set Suite Variable    ${OS_CMP1_HOSTNAME}
+    BuiltIn.Set Suite Variable    ${OS_CMP2_HOSTNAME}
+
+Set Node Data For AllinOne Setup
+    [Documentation]    Assign global variables for DevStack nodes where the Control Node enables Compute service also.
+    BuiltIn.Set Suite Variable    @{OS_ALL_IPS}    ${OS_CNTL_IP}
+
+Set Node Data For Control And Compute Node Setup
+    [Documentation]    Assign global variables for DevStack nodes where the control node is also the compute
+    BuiltIn.Set Suite Variable    ${OS_CMP1_IP}    ${OS_CNTL_IP}
+    BuiltIn.Set Suite Variable    ${OS_CMP2_IP}    ${OS_COMPUTE_1_IP}
+    BuiltIn.Set Suite Variable    @{OS_ALL_IPS}    ${OS_CNTL_IP}    ${OS_CMP2_IP}
+    BuiltIn.Set Suite Variable    @{OS_CMP_IPS}    ${OS_CMP1_IP}    ${OS_CMP2_IP}
+
+Set Node Data For Control Only Node Setup
+    [Documentation]    Assign global variables for DevStack nodes where the control node is different than the compute
+    BuiltIn.Set Suite Variable    ${OS_CMP1_IP}    ${OS_COMPUTE_1_IP}
+    BuiltIn.Set Suite Variable    ${OS_CMP2_IP}    ${OS_COMPUTE_2_IP}
+    BuiltIn.Set Suite Variable    @{OS_ALL_IPS}    ${OS_CNTL_IP}    ${OS_CMP1_IP}    ${OS_CMP2_IP}
+    BuiltIn.Set Suite Variable    @{OS_CMP_IPS}    ${OS_CMP1_IP}    ${OS_CMP2_IP}
+
+Get DevStack Nodes Data
+    [Documentation]    Assign global variables for DevStack nodes
+    BuiltIn.Set Suite Variable    ${OS_CNTL_IP}    ${OS_CONTROL_NODE_IP}
+    Run Keyword If    ${NUM_OS_SYSTEM} == 1    Set Node Data For AllinOne Setup
+    ...    ELSE IF    ${NUM_OS_SYSTEM} == 2    Set Node Data For Control And Compute Node Setup
+    ...    ELSE IF    ${NUM_OS_SYSTEM} == 3    Set Node Data For Control Only Node Setup
+    Get DevStack Hostnames
+    Log Devstack Nodes Data