Use openstack CLI for router delete
[integration/test.git] / csit / suites / netvirt / vpnservice / vpn_basic.robot
index 053f805b03fd3679bede06602e0ea9875a4e3277..3bd138f109ff0fc3c6d1869298c7f6cd682b6d1f 100644 (file)
@@ -154,35 +154,53 @@ Delete Router Failure When Associated With L3VPN
     BuiltIn.Should Contain    ${resp}    ${router_id}
     Verify GWMAC Flow Entry On Flow Table On All Compute Nodes
 
-Remove Router Interfaces
+Verify Remove Interface From Router When Associated With L3VPN
+    OpenStackOperations.Remove Interface    ${ROUTER}    @{SUBNETS}[0]
+    OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ${NET_1_VM_IPS}
+    OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ${NET_2_VM_IPS}    ping_should_succeed=False
+
+Verify L3VPN Datapath With Router Dissociation When Interfaces are Added To Router
+    OpenStackOperations.Add Router Interface    ${ROUTER}    @{SUBNETS}[0]
+    ${vm_ips} =    BuiltIn.Create List    @{NET_1_VM_IPS}    @{NET_2_VM_IPS}
+    ${router_id} =    OpenStackOperations.Get Router Id    ${ROUTER}
+    VpnOperations.Dissociate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
+    BuiltIn.Should Not Contain    ${resp}    ${router_id}
+    Verify Flows Are Present For L3VPN On All Compute Nodes    ${vm_ips}
+    ${dst_ip_list} =    BuiltIn.Create List    @{NET_1_VM_IPS}[1]    @{NET_2_VM_IPS}
+    OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ${dst_ip_list}
+    BuiltIn.Log    Check datapath from network2 to network1
+    ${dst_ip_list} =    BuiltIn.Create List    @{NET_2_VM_IPS}[1]    @{NET_1_VM_IPS}
+    BuiltIn.Wait Until Keyword Succeeds    60s    10s    OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[1]    @{NET_2_VM_IPS}[0]    ${dst_ip_list}
+
+Remove Router Interfaces And Check L3_Datapath Traffic Across Networks
     ${router_id} =    OpenStackOperations.Get Router Id    ${ROUTER}
     : FOR    ${INTERFACE}    IN    @{SUBNETS}
     \    OpenStackOperations.Remove Interface    ${ROUTER}    ${INTERFACE}
+    \    OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ${NET_1_VM_IPS}
+    \    OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ${NET_2_VM_IPS}    ping_should_succeed=False
     ${interface_output} =    OpenStackOperations.Show Router Interface    ${ROUTER}
     : FOR    ${INTERFACE}    IN    @{SUBNETS}
     \    ${subnet_id} =    OpenStackOperations.Get Subnet Id    ${INTERFACE}
     \    BuiltIn.Should Not Contain    ${interface_output}    ${subnet_id}
 
-Disassociate L3VPN From Router
-    ${router_id} =    OpenStackOperations.Get Router Id    ${ROUTER}
-    VpnOperations.Dissociate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
-    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
-    BuiltIn.Should Not Contain    ${resp}    ${router_id}
-
 Delete Router
     Delete Router    ${ROUTER}
     ${router_output} =    OpenStackOperations.List Routers
     BuiltIn.Should Not Contain    ${router_output}    ${ROUTER}
     @{router_list} =    BuiltIn.Create List    ${ROUTER}
-    BuiltIn.Wait Until Keyword Succeeds    3s    1s    Utils.Check For Elements Not At URI    ${ROUTER_URL}    ${router_list}
+    BuiltIn.Wait Until Keyword Succeeds    3s    1s    Utils.Check For Elements Not At URI    ${ROUTER_URL}    ${router_list}    check_for_null=True
     ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Not Contain    ${resp}    ${ROUTER}
     Verify GWMAC Flow Entry Removed From Flow Table On All Compute Nodes
 
 Delete Router With NonExistentRouter Name
     [Documentation]    Delete router with nonExistentRouter name
-    ${rc}    ${output} =    Run And Return Rc And Output    neutron router-delete nonExistentRouter
-    BuiltIn.Should Match Regexp    ${output}    Unable Not At URIto find router with name or id 'nonExistentRouter'|Unable to find router\\(s\\) with id\\(s\\) 'nonExistentRouter'
+    ${result} =    Process.Run Process    openstack router delete nonExistentRouter    shell=True
+    BuiltIn.Log    ${result.stdout}
+    BuiltIn.Log    ${result.stderr}
+    BuiltIn.Should Be True    '${result.rc}' == '1'
+    BuiltIn.Should Match Regexp    ${result.stderr}    Failed to delete router with name or ID 'nonExistentRouter': No Router found for nonExistentRouter
 
 Associate Networks To L3VPN
     [Documentation]    Associates L3VPN to networks and verify