Fixing mininet reads so that we always clear mininet
[integration/test.git] / test / csit / suites / vtn-of10 / 020__VTN / 010__vtn_manager.txt
1 *** Settings ***
2 Documentation     Test suite for VTN Manager
3 Suite Setup       Create Session    session    http://${CONTROLLER}:${RESTPORT}    auth=${AUTH}    headers=${HEADERS}
4 Suite Teardown    Delete All Sessions
5 Library           SSHLibrary
6 Library           Collections
7 Library           ../../../libraries/RequestsLibrary.py
8 Library           ../../../libraries/Common.py
9 Library           ../../../libraries/Topology.py
10 Variables         ../../../variables/Variables.py
11
12 *** Variables ***
13 ${REST_CONTEXT_VTNS}    controller/nb/v2/vtn/default/vtns
14
15 *** Test Cases ***
16 Add a vtn Tenant1
17     [Documentation]    Add a vtn Tenant1
18     [Tags]    add
19     Add a vtn    Tenant1    {"description": "Virtual Tenant 1 for Hackfest network"}
20
21 Add a vBridge vBridge1
22     [Documentation]    Add a vBridge vBridge1 in vtn Tenant1
23     [Tags]    add
24     Add a vBridge    Tenant1    vBridge1    {}
25
26 Add a interface If1
27     [Documentation]    Add a interface if1 into vBrdige vBrdige1
28     [Tags]    add
29     Add a interface    Tenant1    vBridge1    if1    {}
30
31 Add a interface if2
32     [Documentation]    Add a interface if2 into vBrdige vBrdige1
33     [Tags]    add
34     Add a interface    Tenant1    vBridge1    if2    {}
35
36 Add a portmap for interface if1
37     [Documentation]    Create a portmap on Interface if1 of vBridge1
38     [Tags]    add
39     ${node}    Create Dictionary    type    OF    id    00:00:00:00:00:00:00:02
40     ${port}    Create Dictionary    name    s2-eth1
41     ${portmap_data}    Create Dictionary    node    ${node}    port    ${port}
42     Add a portmap    Tenant1    vBridge1    if1    ${portmap_data}
43
44 Add a portmap for interface if2
45     [Documentation]    Create a portmap on Interface if2 of vBridge1
46     ${node}    Create Dictionary    type    OF    id    00:00:00:00:00:00:00:03
47     ${port}    Create Dictionary    name    s3-eth1
48     ${portmap_data}    Create Dictionary    node    ${node}    port    ${port}
49     Add a portmap    Tenant1    vBridge1    if2    ${portmap_data} 
50
51 Add a vBridge vBridge2
52     [Documentation]    Add a vBridge vBridge2 in vtn Tenant1
53     [Tags]    add
54     Add a vBridge    Tenant1    vBridge2    {}
55
56 Add a interface If3
57     [Documentation]    Add a interface if3 into vBrdige vBrdige2
58     [Tags]    add
59     Add a interface    Tenant1    vBridge2    if3    {}
60
61 Add a interface if4
62     [Documentation]    Add a interface if4 into vBrdige vBrdige2
63     [Tags]    add
64     Add a interface    Tenant1    vBridge2    if4    {}
65
66 Add a portmap for interface if3
67     [Documentation]    Create a portmap on Interface if3 of vBridge2
68     [Tags]    add
69     ${node}    Create Dictionary    type    OF    id    00:00:00:00:00:00:00:02
70     ${port}    Create Dictionary    name    s2-eth2
71     ${portmap_data}    Create Dictionary    node    ${node}    port    ${port}
72     Add a portmap    Tenant1    vBridge2    if3    ${portmap_data}
73
74 Add a portmap for interface if4
75     [Documentation]    Create a portmap on Interface if4 of vBridge2
76     ${node}    Create Dictionary    type    OF    id    00:00:00:00:00:00:00:03
77     ${port}    Create Dictionary    name    s3-eth2
78     ${portmap_data}    Create Dictionary    node    ${node}    port    ${port}
79     Add a portmap    Tenant1    vBridge2    if4    ${portmap_data}
80
81 Ping h1 to h3
82     [Documentation]    Ping h1 to h3, verify no packet loss
83     Sleep    5
84     Write    h1 ping -w 10 h3
85     Sleep    10
86     ${result}    Read
87     Should Contain    ${result}    64 bytes
88
89 Ping h2 to h4
90     [Documentation]    Ping h2 to h4, verify no packet loss
91     Sleep    5
92     Write    h2 ping -w 10 h4
93     Sleep    10
94     ${result}    Read
95     Should Contain    ${result}    64 bytes
96
97 Delete a vtn Tenant1
98     [Documentation]    Delete a vtn Tenant1
99     [Tags]    delete
100     Delete a vtn    Tenant1
101
102 *** Keywords ***
103 Add a vtn
104     [Arguments]    ${vtn_name}    ${vtn_data}
105     [Documentation]    Create a vtn with specified parameters.
106     ${resp}    Post    session    ${REST_CONTEXT_VTNS}/${vtn_name}    data=${vtn_data}
107     Should Be Equal As Strings    ${resp.status_code}    201
108
109 Delete a vtn
110     [Arguments]    ${vtn_name}
111     [Documentation]    Create a vtn with specified parameters.
112     ${resp}    Delete    session    ${REST_CONTEXT_VTNS}/${vtn_name}
113     Should Be Equal As Strings    ${resp.status_code}    200
114
115 Add a vBridge
116     [Arguments]    ${vtn_name}    ${vBridge_name}    ${vBridge_data}
117     [Documentation]    Create a vBridge in a VTN
118     ${resp}    Post    session    ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}    data=${vBridge_data}
119     Should Be Equal As Strings    ${resp.status_code}    201
120
121 Add a interface
122     [Arguments]    ${vtn_name}    ${vBridge_name}    ${interface_name}    ${interface_data}
123     [Documentation]    Create a interface into a vBridge of a VTN
124     ${resp}    Post    session    ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}/interfaces/${interface_name}    data=${interface_data}
125     Should Be Equal As Strings    ${resp.status_code}    201
126
127 Add a portmap
128     [Arguments]    ${vtn_name}    ${vBridge_name}    ${interface_name}    ${portmap_data}
129     [Documentation]    Create a portmap for a interface of a vbridge
130     ${resp}    Put    session    ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}/interfaces/${interface_name}/portmap    data=${portmap_data}
131     Should Be Equal As Strings    ${resp.status_code}    200