Add new test for multiple switch connection
[integration/test.git] / csit / suites / openflowplugin / Bug_Validation / 7350.robot
1 *** Settings ***
2 Documentation     Test suite for Telstra Bug validation.
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
14 *** Variables ***
15 ${ODL_OF_PORT1}    6653
16 ${SH_CNTL_CMD}    ovs-vsctl list Controller
17 ${lprompt}        mininet>
18
19 *** Test Cases ***
20 Create Two Active Switch Connections To Controller And Check OVS Connections
21     [Documentation]    Make a second connection from switch s1 to a controller
22     ${controller_opt} =    BuiltIn.Set Variable
23     ${controller_opt} =    BuiltIn.Catenate    ${controller_opt}    ${SPACE}tcp:${ODL_SYSTEM_IP}:${ODL_OF_PORT}${SPACE}tcp:${ODL_SYSTEM_IP}:${ODL_OF_PORT1}
24     OVSDB.Set Controller In OVS Bridge    ${TOOLS_SYSTEM_IP}    s1    ${controller_opt}
25     BuiltIn.Wait Until Keyword Succeeds    10s    1s    OVSDB.Check OVS OpenFlow Connections    ${TOOLS_SYSTEM_IP}    2
26     BuiltIn.Wait Until Keyword Succeeds    30s    3s    Execute OvsVsctl List Controllers Command
27
28 Restore original Connection To Controller And Check OVS Connection
29     [Documentation]    Restore original Connection To Controller And Check OVS Connection
30     ${controller_opt} =    BuiltIn.Set Variable
31     ${controller_opt} =    BuiltIn.Catenate    ${controller_opt}    ${SPACE}tcp:${ODL_SYSTEM_IP}:${ODL_OF_PORT}
32     OVSDB.Set Controller In OVS Bridge    ${TOOLS_SYSTEM_IP}    s1    ${controller_opt}
33     BuiltIn.Wait Until Keyword Succeeds    10s    1s    OVSDB.Check OVS OpenFlow Connections    ${TOOLS_SYSTEM_IP}    1
34     BuiltIn.Wait Until Keyword Succeeds    30s    3s    Execute OvsVsctl List Controllers Command
35
36 *** Keywords ***
37 Initialization Phase
38     [Documentation]    Starts mininet and verify if topology is in operational datastore.
39     ${mininet_conn_id}=    MininetKeywords.Start Mininet Single Controller
40     BuiltIn.Set Suite Variable    ${mininet_conn_id}
41     RequestsLibrary.Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
42     BuiltIn.Wait Until Keyword Succeeds    10s    1s    FlowLib.Check Switches In Topology    1
43
44 Final Phase
45     [Documentation]    Stops mininet.
46     BuiltIn.Run Keyword And Ignore Error    RequestsLibrary.Delete Request    session    ${CONFIG_NODES_API}
47     MininetKeywords.Stop Mininet And Exit    ${mininet_conn_id}
48     RequestsLibrary.Delete All Sessions
49
50 Execute OvsVsctl List Controllers Command
51     [Documentation]    List the configured controller connections.
52     ${output} =    Utils.Run Command On Mininet    ${TOOLS_SYSTEM_IP}    sudo ovs-vsctl list CONTROLLER
53     BuiltIn.Set Suite Variable    ${output}
54     Should Contain    ${output}    master
55     Log    ${output}
56     BuiltIn.Return From Keyword    ${output}