Update Robot Framework format - step 13
[integration/test.git] / csit / suites / openstack / securitygroup / security_group_l3bcast.robot
index 1be1169b2bd0d87b74fecfbbca3a6d307fab41c2..54b57b1a7176b02d6191ee6e8c50d12561e2290e 100644 (file)
 *** Settings ***
-Documentation     Test Suite for Network and Subnet Broadcast with security group
-Suite Setup       Start Suite
-Suite Teardown    OpenStackOperations.OpenStack Suite Teardown
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown     OpenStackOperations.Get Test Teardown Debugs
-Library           String
-Library           RequestsLibrary
-Library           SSHLibrary
-Library           Collections
-Library           json
-Library           OperatingSystem
-Resource          ../../../libraries/DevstackUtils.robot
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/OpenStackOperations.robot
-Resource          ../../../libraries/OVSDB.robot
-Resource          ../../../libraries/OvsManager.robot
-Resource          ../../../libraries/SetupUtils.robot
-Resource          ../../../libraries/Utils.robot
-Resource          ../../../variables/Variables.robot
-Resource          ../../../variables/netvirt/Variables.robot
+Documentation       Test Suite for Network and Subnet Broadcast with security group
+
+Library             String
+Library             RequestsLibrary
+Library             SSHLibrary
+Library             Collections
+Library             json
+Library             OperatingSystem
+Resource            ../../../libraries/DevstackUtils.robot
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/OpenStackOperations.robot
+Resource            ../../../libraries/OVSDB.robot
+Resource            ../../../libraries/OvsManager.robot
+Resource            ../../../libraries/SetupUtils.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../variables/Variables.robot
+Resource            ../../../variables/netvirt/Variables.robot
+
+Suite Setup         Start Suite
+Suite Teardown      OpenStackOperations.OpenStack Suite Teardown
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown       OpenStackOperations.Get Test Teardown Debugs
+
 
 *** Variables ***
-@{SECURITY_GROUP}    sgbcast1    sgbcast2
-@{NETWORKS}       sgbcast_net_1    sgbcast_net_2
-@{SUBNETS}        sgbcast_sub_1    sgbcast_sub_2
-@{SUBNET_CIDRS}    55.0.0.0/24    56.0.0.0/24
-${ROUTER}         sgbcast_router
-@{NET_1_PORTS}    sgbcast_net_1_port_1    sgbcast_net_1_port_2    sgbcast_net_1_port_3
-@{NET_2_PORTS}    sgbcast_net_2_port_1    sgbcast_net_2_port_2
-@{NET_1_VMS}      sgbcast_net_1_vm_1    sgbcast_net_1_vm_2    sgbcast_net_1_vm_3
-@{NET_2_VMS}      sgbcast_net_2_vm_1    sgbcast_net_2_vm_2
-${DUMP_FLOW}      sudo ovs-ofctl dump-flows br-int -OOpenflow13
-${DUMP_PORT_DESC}    sudo ovs-ofctl dump-ports-desc br-int -OOpenflow13
-${PACKET_COUNT}    5
-${BCAST_IP}       255.255.255.255
-${SUBNET1_BCAST_IP}    55.0.0.255
-${SUBNET2_BCAST_IP}    56.0.0.255
-${ENABLE_BCAST}    echo 0 | sudo tee /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
-
-*** Test Case ***
+@{SECURITY_GROUP}       sgbcast1    sgbcast2
+@{NETWORKS}             sgbcast_net_1    sgbcast_net_2
+@{SUBNETS}              sgbcast_sub_1    sgbcast_sub_2
+@{SUBNET_CIDRS}         55.0.0.0/24    56.0.0.0/24
+${ROUTER}               sgbcast_router
+@{NET_1_PORTS}          sgbcast_net_1_port_1    sgbcast_net_1_port_2    sgbcast_net_1_port_3
+@{NET_2_PORTS}          sgbcast_net_2_port_1    sgbcast_net_2_port_2
+@{NET_1_VMS}            sgbcast_net_1_vm_1    sgbcast_net_1_vm_2    sgbcast_net_1_vm_3
+@{NET_2_VMS}            sgbcast_net_2_vm_1    sgbcast_net_2_vm_2
+${DUMP_FLOW}            sudo ovs-ofctl dump-flows br-int -OOpenflow13
+${DUMP_PORT_DESC}       sudo ovs-ofctl dump-ports-desc br-int -OOpenflow13
+${PACKET_COUNT}         5
+${BCAST_IP}             255.255.255.255
+${SUBNET1_BCAST_IP}     55.0.0.255
+${SUBNET2_BCAST_IP}     56.0.0.255
+${ENABLE_BCAST}         echo 0 | sudo tee /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
+
+
+*** Test Cases ***
 Verify Network Broadcast traffic between the VMs hosted in Single Network
     [Documentation]    This TC is to verify Network Broadcast traffic between the VMs hosted in Same Network on same/different compute node
     ${pkt_check} =    BuiltIn.Set Variable If    "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp"    10    5
-    Wait Until Keyword Succeeds    30s    5s    Verify L3Broadcast With Antispoofing Table    ${OS_CMP1_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}
-    ...    ${VM_IPS}[0]    same    pingsuccess    pkt_check=${pkt_check}
+    Wait Until Keyword Succeeds
+    ...    30s
+    ...    5s
+    ...    Verify L3Broadcast With Antispoofing Table
+    ...    ${OS_CMP1_IP}
+    ...    ${EGRESS_ACL_TABLE}
+    ...    ${BCAST_IP}
+    ...    ${VM_IPS}[0]
+    ...    same
+    ...    pingsuccess
+    ...    pkt_check=${pkt_check}
 
 Verify Network Broadcast traffic between the VMs hosted in Multi Network
     [Documentation]    This TC is to verify Network Broadcast traffic between the VMs hosted in Different Network on same/different compute node.
     ${pkt_check} =    BuiltIn.Set Variable If    "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp"    5    0
-    Wait Until Keyword Succeeds    30s    5s    Verify L3Broadcast With Antispoofing Table    ${OS_CMP1_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}
-    ...    ${VM_IPS}[3]    different    pingsuccess    pkt_check=${pkt_check}
+    Wait Until Keyword Succeeds
+    ...    30s
+    ...    5s
+    ...    Verify L3Broadcast With Antispoofing Table
+    ...    ${OS_CMP1_IP}
+    ...    ${EGRESS_ACL_TABLE}
+    ...    ${BCAST_IP}
+    ...    ${VM_IPS}[3]
+    ...    different
+    ...    pingsuccess
+    ...    pkt_check=${pkt_check}
 
 Verify Subnet Broadcast traffic between the VMs hosted on same compute node in Single Network
     [Documentation]    Verify L3-Subnet Broadcast traffic between the VMs hosted on same compute node in Single Network
-    Wait Until Keyword Succeeds    30s    5s    Verify L3Broadcast With Antispoofing Table    ${OS_CMP1_IP}    ${EGRESS_ACL_TABLE}    ${SUBNET1_BCAST_IP}
-    ...    ${VM_IPS}[0]    same    pingsuccess    ${VM2_SUBMETA}    pkt_check=5    additional_args=| grep ${VM2_SUBMETA}
+    Wait Until Keyword Succeeds
+    ...    30s
+    ...    5s
+    ...    Verify L3Broadcast With Antispoofing Table
+    ...    ${OS_CMP1_IP}
+    ...    ${EGRESS_ACL_TABLE}
+    ...    ${SUBNET1_BCAST_IP}
+    ...    ${VM_IPS}[0]
+    ...    same
+    ...    pingsuccess
+    ...    ${VM2_SUBMETA}
+    ...    pkt_check=5
+    ...    additional_args=| grep ${VM2_SUBMETA}
 
 Verify Subnet Broadcast traffic between the VMs hosted on Different compute node in Single Network
     [Documentation]    Verify L3-Subnet Broadcast traffic between the VMs hosted on same compute node in Single Network
-    Wait Until Keyword Succeeds    30s    5s    Verify L3Broadcast With Antispoofing Table    ${OS_CMP2_IP}    ${EGRESS_ACL_TABLE}    ${SUBNET1_BCAST_IP}
-    ...    ${VM_IPS}[0]    same    pingsuccess    ${VM3_SUBMETA}    pkt_check=5    additional_args=| grep ${VM3_SUBMETA}
+    Wait Until Keyword Succeeds
+    ...    30s
+    ...    5s
+    ...    Verify L3Broadcast With Antispoofing Table
+    ...    ${OS_CMP2_IP}
+    ...    ${EGRESS_ACL_TABLE}
+    ...    ${SUBNET1_BCAST_IP}
+    ...    ${VM_IPS}[0]
+    ...    same
+    ...    pingsuccess
+    ...    ${VM3_SUBMETA}
+    ...    pkt_check=5
+    ...    additional_args=| grep ${VM3_SUBMETA}
 
 Verify Subnet Broadcast traffic between the VMs hosted on same compute node in Multi Network
     [Documentation]    Verify L3-Subnet Broadcast traffic between the VMs hosted on same compute node in Multi Network
-    Wait Until Keyword Succeeds    30s    5s    Verify L3Broadcast With Antispoofing Table    ${OS_CMP1_IP}    ${EGRESS_ACL_TABLE}    ${SUBNET2_BCAST_IP}
-    ...    ${VM_IPS}[0]    different    nosuccess    ${VM4_SUBMETA}    pkt_check=0    additional_args=| grep ${VM4_SUBMETA}
+    Wait Until Keyword Succeeds
+    ...    30s
+    ...    5s
+    ...    Verify L3Broadcast With Antispoofing Table
+    ...    ${OS_CMP1_IP}
+    ...    ${EGRESS_ACL_TABLE}
+    ...    ${SUBNET2_BCAST_IP}
+    ...    ${VM_IPS}[0]
+    ...    different
+    ...    nosuccess
+    ...    ${VM4_SUBMETA}
+    ...    pkt_check=0
+    ...    additional_args=| grep ${VM4_SUBMETA}
 
 Verify Subnet Broadcast traffic between the VMs hosted on Different compute node in Multi Network
     [Documentation]    Verify L3-Subnet Broadcast traffic between the VMs hosted on Different compute node in Multi Network
-    Wait Until Keyword Succeeds    30s    5s    Verify L3Broadcast With Antispoofing Table    ${OS_CMP2_IP}    ${EGRESS_ACL_TABLE}    ${SUBNET2_BCAST_IP}
-    ...    ${VM_IPS}[0]    different    nosuccess    ${VM5_SUBMETA}    pkt_check=0    additional_args=| grep ${VM5_SUBMETA}
+    Wait Until Keyword Succeeds
+    ...    30s
+    ...    5s
+    ...    Verify L3Broadcast With Antispoofing Table
+    ...    ${OS_CMP2_IP}
+    ...    ${EGRESS_ACL_TABLE}
+    ...    ${SUBNET2_BCAST_IP}
+    ...    ${VM_IPS}[0]
+    ...    different
+    ...    nosuccess
+    ...    ${VM5_SUBMETA}
+    ...    pkt_check=0
+    ...    additional_args=| grep ${VM5_SUBMETA}
+
 
 *** Keywords ***
 Start Suite
@@ -97,12 +164,31 @@ Create Setup
     FOR    ${port_net2}    IN    @{NET_2_PORTS}
         OpenStackOperations.Create Port    ${NETWORKS}[1]    ${port_net2}    sg=${SECURITY_GROUP}[0]
     END
-    ${ports} =    BuiltIn.Create List    ${NET_1_PORTS}[0]    ${NET_1_PORTS}[1]    ${NET_1_PORTS}[2]    ${NET_2_PORTS}[0]    ${NET_2_PORTS}[1]
-    ${vms} =    BuiltIn.Create List    ${NET_1_VMS}[0]    ${NET_1_VMS}[1]    ${NET_1_VMS}[2]    ${NET_2_VMS}[0]    ${NET_2_VMS}[1]
-    @{nodes} =    BuiltIn.Create List    ${OS_CMP1_HOSTNAME}    ${OS_CMP1_HOSTNAME}    ${OS_CMP2_HOSTNAME}    ${OS_CMP1_HOSTNAME}    ${OS_CMP2_HOSTNAME}
+    ${ports} =    BuiltIn.Create List
+    ...    ${NET_1_PORTS}[0]
+    ...    ${NET_1_PORTS}[1]
+    ...    ${NET_1_PORTS}[2]
+    ...    ${NET_2_PORTS}[0]
+    ...    ${NET_2_PORTS}[1]
+    ${vms} =    BuiltIn.Create List
+    ...    ${NET_1_VMS}[0]
+    ...    ${NET_1_VMS}[1]
+    ...    ${NET_1_VMS}[2]
+    ...    ${NET_2_VMS}[0]
+    ...    ${NET_2_VMS}[1]
+    @{nodes} =    BuiltIn.Create List
+    ...    ${OS_CMP1_HOSTNAME}
+    ...    ${OS_CMP1_HOSTNAME}
+    ...    ${OS_CMP2_HOSTNAME}
+    ...    ${OS_CMP1_HOSTNAME}
+    ...    ${OS_CMP2_HOSTNAME}
     FOR    ${port}    ${vm}    ${node}    IN ZIP    ${ports}    ${vms}
     ...    ${nodes}
-        OpenStackOperations.Create Vm Instance With Port On Compute Node    ${port}    ${vm}    ${node}    sg=${SECURITY_GROUP}[0]
+        OpenStackOperations.Create Vm Instance With Port On Compute Node
+        ...    ${port}
+        ...    ${vm}
+        ...    ${node}
+        ...    sg=${SECURITY_GROUP}[0]
     END
     @{vms} =    Collections.Combine Lists    ${NET_1_VMS}    ${NET_2_VMS}
     @{VM_IPS} =    OpenStackOperations.Get VM IPs    @{vms}
@@ -110,15 +196,35 @@ Create Setup
     BuiltIn.Set Suite Variable    @{VM_IPS}
     OpenStackOperations.Execute Command on VM Instance    ${NETWORKS[0]}    ${VM_IPS}[0]    ${ENABLE_BCAST}
     OpenStackOperations.Execute Command on VM Instance    ${NETWORKS[1]}    ${VM_IPS}[3]    ${ENABLE_BCAST}
-    ${vm1_in_port}    ${vm1_meta} =    BuiltIn.Wait Until Keyword Succeeds    60s    10s    Get VMs Metadata and In Port    ${NET_1_PORTS}[0]
+    ${vm1_in_port}    ${vm1_meta} =    BuiltIn.Wait Until Keyword Succeeds
+    ...    60s
+    ...    10s
+    ...    Get VMs Metadata and In Port
+    ...    ${NET_1_PORTS}[0]
     ...    ${OS_CMP1_IP}
-    ${vm2_in_port}    ${vm2_meta} =    BuiltIn.Wait Until Keyword Succeeds    60s    10s    Get VMs Metadata and In Port    ${NET_1_PORTS}[1]
+    ${vm2_in_port}    ${vm2_meta} =    BuiltIn.Wait Until Keyword Succeeds
+    ...    60s
+    ...    10s
+    ...    Get VMs Metadata and In Port
+    ...    ${NET_1_PORTS}[1]
     ...    ${OS_CMP1_IP}
-    ${vm3_in_port}    ${vm3_meta} =    BuiltIn.Wait Until Keyword Succeeds    60s    10s    Get VMs Metadata and In Port    ${NET_1_PORTS}[2]
+    ${vm3_in_port}    ${vm3_meta} =    BuiltIn.Wait Until Keyword Succeeds
+    ...    60s
+    ...    10s
+    ...    Get VMs Metadata and In Port
+    ...    ${NET_1_PORTS}[2]
     ...    ${OS_CMP2_IP}
-    ${vm4_in_port}    ${vm4_meta} =    BuiltIn.Wait Until Keyword Succeeds    60s    10s    Get VMs Metadata and In Port    ${NET_2_PORTS}[0]
+    ${vm4_in_port}    ${vm4_meta} =    BuiltIn.Wait Until Keyword Succeeds
+    ...    60s
+    ...    10s
+    ...    Get VMs Metadata and In Port
+    ...    ${NET_2_PORTS}[0]
     ...    ${OS_CMP1_IP}
-    ${vm5_in_port}    ${vm5_meta} =    BuiltIn.Wait Until Keyword Succeeds    60s    10s    Get VMs Metadata and In Port    ${NET_2_PORTS}[1]
+    ${vm5_in_port}    ${vm5_meta} =    BuiltIn.Wait Until Keyword Succeeds
+    ...    60s
+    ...    10s
+    ...    Get VMs Metadata and In Port
+    ...    ${NET_2_PORTS}[1]
     ...    ${OS_CMP2_IP}
     ${VM1_SUBMETA} =    Get Submetadata    ${vm1_meta}
     ${VM2_SUBMETA} =    Get Submetadata    ${vm2_meta}
@@ -132,42 +238,66 @@ Create Setup
     BuiltIn.Set Suite Variable    ${VM5_SUBMETA}
 
 Get VMs Metadata and In Port
-    [Arguments]    ${portname}    ${OS_COMPUTE_IP}
     [Documentation]    This keyword is to get the VM metadata and the in_port Id of the VM
+    [Arguments]    ${portname}    ${OS_COMPUTE_IP}
     ${subport} =    OpenStackOperations.Get Sub Port Id    ${portname}
-    ${get_vm_in_port} =    Utils.Run Command On Remote System And Log    ${OS_COMPUTE_IP}    ${DUMP_PORT_DESC} | grep ${subport} | awk '{print$1}'
+    ${get_vm_in_port} =    Utils.Run Command On Remote System And Log
+    ...    ${OS_COMPUTE_IP}
+    ...    ${DUMP_PORT_DESC} | grep ${subport} | awk '{print$1}'
     ${vms_in_port} =    BuiltIn.Should Match Regexp    ${get_vm_in_port}    [0-9]+
-    ${grep_metadata} =    Utils.Run Command On Remote System And Log    ${OS_COMPUTE_IP}    ${DUMP_FLOW} | grep table=${VLAN_INTERFACE_INGRESS_TABLE} | grep in_port=${vms_in_port} | awk '{print$7}'
+    ${grep_metadata} =    Utils.Run Command On Remote System And Log
+    ...    ${OS_COMPUTE_IP}
+    ...    ${DUMP_FLOW} | grep table=${VLAN_INTERFACE_INGRESS_TABLE} | grep in_port=${vms_in_port} | awk '{print$7}'
     @{metadata} =    String.Split string    ${grep_metadata}    ,
     ${get_write_metadata} =    Collections.get from list    ${metadata}    0
     @{complete_metadata} =    String.Split string    ${get_write_metadata}    :
     ${extract_metadata} =    Collections.get from list    ${complete_metadata}    1
     @{split_metadata} =    String.Split string    ${extract_metadata}    /
     ${vm_metadata} =    Collections.Get From List    ${split_metadata}    0
-    [Return]    ${vms_in_port}    ${vm_metadata}
+    RETURN    ${vms_in_port}    ${vm_metadata}
 
 Get Submetadata
-    [Arguments]    ${vm_metadata}
     [Documentation]    Get the submetadata of the VM
-    ${cmd1} =    Utils.Run Command On Remote System And Log    ${OS_CMP1_IP}    ${DUMP_FLOW} | grep ${EGRESS_LPORT_DISPATCHER_TABLE} | grep write_metadata:
+    [Arguments]    ${vm_metadata}
+    ${cmd1} =    Utils.Run Command On Remote System And Log
+    ...    ${OS_CMP1_IP}
+    ...    ${DUMP_FLOW} | grep ${EGRESS_LPORT_DISPATCHER_TABLE} | grep write_metadata:
     ${output1} =    String.Get Regexp Matches    ${cmd1}    reg6=(\\w+)    1
-    ${cmd2} =    Utils.Run Command On Remote System And Log    ${OS_CMP2_IP}    ${DUMP_FLOW} | grep ${EGRESS_LPORT_DISPATCHER_TABLE} | grep write_metadata:
+    ${cmd2} =    Utils.Run Command On Remote System And Log
+    ...    ${OS_CMP2_IP}
+    ...    ${DUMP_FLOW} | grep ${EGRESS_LPORT_DISPATCHER_TABLE} | grep write_metadata:
     ${output2} =    String.Get Regexp Matches    ${cmd2}    reg6=(\\w+)    1
     ${metalist} =    Collections.Combine Lists    ${output1}    ${output2}
     FOR    ${meta}    IN    @{metalist}
         ${metadata_check_status} =    Run Keyword And Return Status    should contain    ${vm_metadata}    ${meta}
-        Return From Keyword if    ${metadata_check_status} == True    ${meta}
+        IF    ${metadata_check_status} == True    RETURN    ${meta}
     END
 
 Verify L3Broadcast With Antispoofing Table
+    [Documentation]    Verify the l3 broadcast requests are hitting to antispoofing table in same subnet
     [Arguments]    ${OS_COMPUTE_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}    ${vm_ip}    ${subnet_var}    ${ping_response}='pingsuccess'
     ...    ${vm_submeta}=''    ${pkt_check}=0    ${additional_args}=${EMPTY}
-    [Documentation]    Verify the l3 broadcast requests are hitting to antispoofing table in same subnet
-    ${get_pkt_count_before_bcast} =    OvsManager.Get Packet Count In Table For IP    ${OS_COMPUTE_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}    additional_args=| grep ${vm_submeta}
-    ${output} =    OpenStackOperations.Execute Command on VM Instance    ${NETWORKS}[0]    ${vm_ip}    ping -c ${PACKET_COUNT} ${BCAST_IP}
-    BuiltIn.Run Keyword If    '${ping_response}'=='pingsuccess'    BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
-    ...    ELSE    BuiltIn.Should Contain    ${output}    ${NO_PING_REGEXP}
-    ${bcast_egress} =    Utils.Run Command On Remote System And Log    ${OS_COMPUTE_IP}    ${DUMP_FLOW} | grep table=${EGRESS_ACL_TABLE} | grep ${BCAST_IP} ${additional_args}
-    ${get_pkt_count_after_bcast} =    OvsManager.Get Packet Count In Table For IP    ${OS_COMPUTE_IP}    ${EGRESS_ACL_TABLE}    ${BCAST_IP}    additional_args=| grep ${vm_submeta}
+    ${get_pkt_count_before_bcast} =    OvsManager.Get Packet Count In Table For IP
+    ...    ${OS_COMPUTE_IP}
+    ...    ${EGRESS_ACL_TABLE}
+    ...    ${BCAST_IP}
+    ...    additional_args=| grep ${vm_submeta}
+    ${output} =    OpenStackOperations.Execute Command on VM Instance
+    ...    ${NETWORKS}[0]
+    ...    ${vm_ip}
+    ...    ping -c ${PACKET_COUNT} ${BCAST_IP}
+    IF    '${ping_response}'=='pingsuccess'
+        BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
+    ELSE
+        BuiltIn.Should Contain    ${output}    ${NO_PING_REGEXP}
+    END
+    ${bcast_egress} =    Utils.Run Command On Remote System And Log
+    ...    ${OS_COMPUTE_IP}
+    ...    ${DUMP_FLOW} | grep table=${EGRESS_ACL_TABLE} | grep ${BCAST_IP} ${additional_args}
+    ${get_pkt_count_after_bcast} =    OvsManager.Get Packet Count In Table For IP
+    ...    ${OS_COMPUTE_IP}
+    ...    ${EGRESS_ACL_TABLE}
+    ...    ${BCAST_IP}
+    ...    additional_args=| grep ${vm_submeta}
     ${pkt_diff} =    Evaluate    int(${get_pkt_count_after_bcast})-int(${get_pkt_count_before_bcast})
     BuiltIn.Should Be Equal As Numbers    ${pkt_diff}    ${pkt_check}