Add Tests to check the FlowEntry installed by VTN.
[integration.git] / test / csit / libraries / VtnMaKeywords.robot
index 3308dc2ee22992554d7251773ed4184959233212..929517230105850fb32d47105b503814487152a2 100644 (file)
@@ -12,7 +12,8 @@ Resource          ./Utils.robot
 ${REST_CONTEXT_VTNS}    controller/nb/v2/vtn/default/vtns
 ${VERSION_VTN}          controller/nb/v2/vtn/version
 ${VTN_INVENTORY}        restconf/operational/vtn-inventory:vtn-nodes
-
+${DUMPFLOWS}    dpctl dump-flows -O OpenFlow13
+${index}    7
 *** Keywords ***
 Start SuiteVtnMa
     [Documentation]  Start VTN Manager Init Test Suite
@@ -75,8 +76,67 @@ Add a portmap
     ${resp}=    RequestsLibrary.Put    session    ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}/interfaces/${interface_name}/portmap    data=${json_data}    headers=${HEADERS}
     Should Be Equal As Strings    ${resp.status_code}    200
 
-mininet ping
+Mininet Ping Should Succeed
     [Arguments]     ${host1}     ${host2}
     Write    ${host1} ping -c 10 ${host2}
     ${result}    Read Until    mininet>
     Should Contain    ${result}    64 bytes
+
+Mininet Ping Should Not Succeed
+    [Arguments]    ${host1}    ${host2}
+    Write    ${host1} ping -c 10 ${host2}
+    ${result}    Read Until    mininet>
+    Should Not Contain    ${result}    64 bytes
+
+Delete a interface
+    [Arguments]    ${vtn_name}    ${vBridge_name}    ${interface_name}
+    [Documentation]    Delete a interface with specified parameters.
+    ${resp}=    RequestsLibrary.Delete    session    ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}/interfaces/${interface_name}
+    Should Be Equal As Strings    ${resp.status_code}    200
+
+
+Get flow
+    [Arguments]    ${vtn_name}
+    [Documentation]    Get data flow.
+    ${resp}=    RequestsLibrary.Get   session    ${REST_CONTEXT_VTNS}/${vtn_name}/flows/detail
+    Should Be Equal As Strings    ${resp.status_code}    200
+
+Remove a portmap
+    [Arguments]    ${vtn_name}    ${vBridge_name}    ${interface_name}    ${portmap_data}
+    [Documentation]    Remove a portmap for a interface of a vbridge
+    ${json_data}=   json.dumps    ${portmap_data}
+    ${resp}=    RequestsLibrary.Delete    session    ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}/interfaces/${interface_name}/portmap    data=${json_data}    headers=${HEADERS}
+    Should Be Equal As Strings    ${resp.status_code}    200
+
+Verify FlowMacAddress
+    [Arguments]    ${host1}    ${host2}
+    ${booleanValue}=    Run Keyword And Return Status    Verify macaddress    ${host1}    ${host2}
+    Should Be Equal As Strings    ${booleanValue}    True
+
+Verify RemovedFlowMacAddress
+    [Arguments]    ${host1}    ${host2}
+    ${booleanValue}=    Run Keyword And Return Status    Verify macaddress    ${host1}    ${host2}
+    Should Not Be Equal As Strings    ${booleanValue}    True
+
+Verify macaddress
+    [Arguments]    ${host1}    ${host2}
+    write    ${host1} ifconfig -a | grep HWaddr
+    ${sourcemacaddr}    Read Until    mininet>
+
+    ${macaddress}=    Split String    ${sourcemacaddr}    ${SPACE}
+
+    ${sourcemacaddr}=    Get from List    ${macaddress}    ${index}
+    ${sourcemacaddress}=    Convert To Lowercase    ${sourcemacaddr}
+
+    write    ${host2} ifconfig -a | grep HWaddr
+    ${destmacaddr}    Read Until    mininet>
+
+    ${macaddress}=    Split String    ${destmacaddr}    ${SPACE}
+    ${destmacaddr}=    Get from List    ${macaddress}    ${index}
+
+    ${destmacaddress}=    Convert To Lowercase    ${destmacaddr}
+
+    write    ${DUMPFLOWS}
+    ${result}    Read Until    mininet>
+    Should Contain    ${result}    ${sourcemacaddress}
+    Should Contain    ${result}    ${destmacaddress}