7 Library RequestsLibrary
8 Variables ../variables/Variables.py
12 ${REST_CONTEXT_VTNS} controller/nb/v2/vtn/default/vtns
13 ${VERSION_VTN} controller/nb/v2/vtn/version
14 ${VTN_INVENTORY} restconf/operational/vtn-inventory:vtn-nodes
15 ${DUMPFLOWS} dpctl dump-flows -O OpenFlow13
19 [Documentation] Start VTN Manager Init Test Suite
20 Create Session session http://${CONTROLLER}:${RESTPORT} auth=${AUTH} headers=${HEADERS}
21 BuiltIn.Wait_Until_Keyword_Succeeds 30 3 Fetch vtn list
25 [Documentation] Stop VTN Manager Test Suite
30 [Documentation] Start VTN Manager Test Suite
31 Create Session session http://${CONTROLLER}:${RESTPORT} auth=${AUTH} headers=${HEADERS}
34 [Documentation] Stop VTN Manager Test Suite
38 [Documentation] Check if VTN Manager is up.
39 ${resp}= RequestsLibrary.Get session ${REST_CONTEXT_VTNS}
40 Should Be Equal As Strings ${resp.status_code} 200
42 Fetch vtn switch inventory
43 [Arguments] ${sw_name}
44 [Documentation] Check if Switch is detected.
45 ${resp}= RequestsLibrary.Get session ${VTN_INVENTORY}/vtn-inventory:vtn-node/${sw_name}
46 Should Be Equal As Strings ${resp.status_code} 200
49 [Arguments] ${vtn_name} ${vtn_data}
50 [Documentation] Create a vtn with specified parameters.
51 ${resp}= RequestsLibrary.Post session ${REST_CONTEXT_VTNS}/${vtn_name} data=${vtn_data}
52 Should Be Equal As Strings ${resp.status_code} 201
55 [Arguments] ${vtn_name}
56 [Documentation] Create a vtn with specified parameters.
57 ${resp}= RequestsLibrary.Delete session ${REST_CONTEXT_VTNS}/${vtn_name}
58 Should Be Equal As Strings ${resp.status_code} 200
61 [Arguments] ${vtn_name} ${vBridge_name} ${vBridge_data}
62 [Documentation] Create a vBridge in a VTN
63 ${resp}= RequestsLibrary.Post session ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name} data=${vBridge_data}
64 Should Be Equal As Strings ${resp.status_code} 201
67 [Arguments] ${vtn_name} ${vBridge_name} ${interface_name} ${interface_data}
68 [Documentation] Create a interface into a vBridge of a VTN
69 ${resp}= RequestsLibrary.Post session ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}/interfaces/${interface_name} data=${interface_data}
70 Should Be Equal As Strings ${resp.status_code} 201
73 [Arguments] ${vtn_name} ${vBridge_name} ${interface_name} ${portmap_data}
74 [Documentation] Create a portmap for a interface of a vbridge
75 ${json_data}= json.dumps ${portmap_data}
76 ${resp}= RequestsLibrary.Put session ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}/interfaces/${interface_name}/portmap data=${json_data} headers=${HEADERS}
77 Should Be Equal As Strings ${resp.status_code} 200
79 Mininet Ping Should Succeed
80 [Arguments] ${host1} ${host2}
81 Write ${host1} ping -c 10 ${host2}
82 ${result} Read Until mininet>
83 Should Contain ${result} 64 bytes
85 Mininet Ping Should Not Succeed
86 [Arguments] ${host1} ${host2}
87 Write ${host1} ping -c 10 ${host2}
88 ${result} Read Until mininet>
89 Should Not Contain ${result} 64 bytes
92 [Arguments] ${vtn_name} ${vBridge_name} ${interface_name}
93 [Documentation] Delete a interface with specified parameters.
94 ${resp}= RequestsLibrary.Delete session ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}/interfaces/${interface_name}
95 Should Be Equal As Strings ${resp.status_code} 200
99 [Arguments] ${vtn_name}
100 [Documentation] Get data flow.
101 ${resp}= RequestsLibrary.Get session ${REST_CONTEXT_VTNS}/${vtn_name}/flows/detail
102 Should Be Equal As Strings ${resp.status_code} 200
105 [Arguments] ${vtn_name} ${vBridge_name} ${interface_name} ${portmap_data}
106 [Documentation] Remove a portmap for a interface of a vbridge
107 ${json_data}= json.dumps ${portmap_data}
108 ${resp}= RequestsLibrary.Delete session ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}/interfaces/${interface_name}/portmap data=${json_data} headers=${HEADERS}
109 Should Be Equal As Strings ${resp.status_code} 200
111 Verify FlowMacAddress
112 [Arguments] ${host1} ${host2}
113 ${booleanValue}= Run Keyword And Return Status Verify macaddress ${host1} ${host2}
114 Should Be Equal As Strings ${booleanValue} True
116 Verify RemovedFlowMacAddress
117 [Arguments] ${host1} ${host2}
118 ${booleanValue}= Run Keyword And Return Status Verify macaddress ${host1} ${host2}
119 Should Not Be Equal As Strings ${booleanValue} True
122 [Arguments] ${host1} ${host2}
123 write ${host1} ifconfig -a | grep HWaddr
124 ${sourcemacaddr} Read Until mininet>
126 ${macaddress}= Split String ${sourcemacaddr} ${SPACE}
128 ${sourcemacaddr}= Get from List ${macaddress} ${index}
129 ${sourcemacaddress}= Convert To Lowercase ${sourcemacaddr}
131 write ${host2} ifconfig -a | grep HWaddr
132 ${destmacaddr} Read Until mininet>
134 ${macaddress}= Split String ${destmacaddr} ${SPACE}
135 ${destmacaddr}= Get from List ${macaddress} ${index}
137 ${destmacaddress}= Convert To Lowercase ${destmacaddr}
140 ${result} Read Until mininet>
141 Should Contain ${result} ${sourcemacaddress}
142 Should Contain ${result} ${destmacaddress}