8dd96ef2f844445b5796d558c391cf0e4d61d824
[integration/test.git] / csit / suites / openflowplugin / Bug_Validation / 8723.robot
1 *** Settings ***
2 Documentation     Test suite for Split connection bug.
3 Suite Setup       Initialization Phase
4 Suite Teardown    Final Phase
5 Library           XML
6 Library           SSHLibrary
7 Library           RequestsLibrary
8 Library           Collections
9 Resource          ../../../libraries/MininetKeywords.robot
10 Resource          ../../../libraries/FlowLib.robot
11 Resource          ../../../libraries/OVSDB.robot
12 Resource          ../../../variables/Variables.robot
13 Resource          ../../../variables/openflowplugin/Variables.robot
14
15 *** Variables ***
16 ${ODL_OF_PORT1}    6653
17 ${SH_CNTL_CMD}    ovs-vsctl list Controller
18 ${lprompt}        mininet>
19
20 *** Test Cases ***
21 Create Two Active Switch Connections To Controller And Check OVS Connections
22     [Documentation]    Make a second connection from switch s1 to a controller
23     ${controller_opt} =    BuiltIn.Set Variable
24     ${controller_opt} =    BuiltIn.Catenate    ${controller_opt}    ${SPACE}tcp:${ODL_SYSTEM_IP}:${ODL_OF_PORT}${SPACE}tcp:${ODL_SYSTEM_IP}:${ODL_OF_PORT1}
25     OVSDB.Set Controller In OVS Bridge    ${TOOLS_SYSTEM_IP}    s1    ${controller_opt}
26     BuiltIn.Wait Until Keyword Succeeds    20s    1s    OVSDB.Check OVS OpenFlow Connections    ${TOOLS_SYSTEM_IP}    1
27     Check Master Connection    30
28     [Teardown]    Report_Failure_Due_To_Bug    8723
29
30 Restore original Connection To Controller And Check OVS Connection
31     [Documentation]    Restore original Connection To Controller And Check OVS Connection
32     ${controller_opt} =    BuiltIn.Set Variable
33     ${controller_opt} =    BuiltIn.Catenate    ${controller_opt}    ${SPACE}tcp:${ODL_SYSTEM_IP}:${ODL_OF_PORT}
34     OVSDB.Set Controller In OVS Bridge    ${TOOLS_SYSTEM_IP}    s1    ${controller_opt}
35     BuiltIn.Wait Until Keyword Succeeds    20s    1s    OVSDB.Check OVS OpenFlow Connections    ${TOOLS_SYSTEM_IP}    1
36     Check Master Connection    20
37     FlowLib.Check Number Of Flows    1
38     [Teardown]    Report_Failure_Due_To_Bug    8723
39
40 *** Keywords ***
41 Initialization Phase
42     [Documentation]    Starts mininet and verify if topology is in operational datastore.
43     ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller
44     BuiltIn.Set Suite Variable    ${mininet_conn_id}
45     RequestsLibrary.Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
46     BuiltIn.Wait Until Keyword Succeeds    10s    1s    FlowLib.Check Switches In Topology    1
47
48 Final Phase
49     [Documentation]    Stops mininet.
50     BuiltIn.Run Keyword And Ignore Error    RequestsLibrary.Delete Request    session    ${RFC8040_NODES_API}
51     MininetKeywords.Stop Mininet And Exit    ${mininet_conn_id}
52     RequestsLibrary.Delete All Sessions
53
54 Check Master Connection
55     [Arguments]    ${timeout}=20
56     [Documentation]    Execute OvsVsctl List Controllers Command and check for master connection.
57     ${output} =    Utils.Run Command On Mininet    ${TOOLS_SYSTEM_IP}    sudo timeout --signal=KILL ${timeout} ovsdb-client monitor Controller target,role
58     BuiltIn.Set Suite Variable    ${output}
59     Should Contain    ${output}    master
60     Log    ${output}
61     BuiltIn.Return From Keyword    ${output}