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