L2Gw Test Cases Suite1
[integration/test.git] / csit / suites / l2gw / Configure_verify_l2gateway.robot
1 *** Settings ***
2 Documentation     Test Suite for verification of HWVTEP usecases
3 Suite Setup       BuiltIn.Run Keywords    Basic Suite Setup
4 Suite Teardown    Basic Suite Teardown
5 Test Teardown     Get L2gw Debug Info
6 Resource          ../../libraries/L2GatewayOperations.robot
7
8 *** Test Cases ***
9 TC01 Configure Hwvtep Manager OVS Manager Controller And Verify
10     L2GatewayOperations.Add Vtep Manager And Verify    ${ODL_IP}
11     L2GatewayOperations.Add Ovs Bridge Manager Controller And Verify
12
13 TC02 Create First Set Of Network Subnet And Ports
14     OpenStackOperations.Create Network    ${NET_1}    ${NET_ADDT_ARG}${NET_1_SEGID}
15     ${output}=    OpenStackOperations.List Networks
16     Should Contain    ${output}    ${NET_1}
17     OpenStackOperations.Create SubNet    ${NET_1}    ${SUBNET_1}    ${SUBNET_RANGE1}    ${SUBNET_ADDT_ARG}
18     ${output}=    OpenStackOperations.List Subnets
19     Should Contain    ${output}    ${SUBNET_1}
20     OpenStackOperations.Create And Configure Security Group    ${SECURITY_GROUP_L2GW}
21     OpenStackOperations.Create Port    ${NET_1}    ${OVS_PORT_1}    sg=${SECURITY_GROUP_L2GW}
22     OpenStackOperations.Create Port    ${NET_1}    ${HWVTEP_PORT_1}    sg=${SECURITY_GROUP_L2GW}
23     ${port_mac}=    Get Port Mac    ${OVS_PORT_1}    #port_mac[0]
24     ${port_ip}=    Get Port Ip    ${OVS_PORT_1}    #port_ip[0]
25     Append To List    ${port_mac_list}    ${port_mac}
26     Append To List    ${port_ip_list}    ${port_ip}
27     ${port_mac}=    Get Port Mac    ${HWVTEP_PORT_1}    #port_mac[1]
28     ${port_ip}=    Get Port Ip    ${HWVTEP_PORT_1}    #port_ip[1]
29     Append To List    ${port_mac_list}    ${port_mac}
30     Append To List    ${port_ip_list}    ${port_ip}
31
32 TC03 Update Port For Hwvtep And Attach Port To Namespace
33     L2GatewayOperations.Update Port For Hwvtep    ${HWVTEP_PORT_1}
34     Wait Until Keyword Succeeds    30s    2s    L2GatewayOperations.Attach Port To Hwvtep Namespace    ${port_mac_list[1]}    ${HWVTEP_NS1}    ${NS_TAP1}
35
36 TC04 Create Vms On Compute Node
37     OpenStackOperations.Create Vm Instance With Port On Compute Node    ${OVS_PORT_1}    ${OVS_VM1_NAME}    ${OVS_IP}
38     ${vm_ip}=    Wait Until Keyword Succeeds    30s    2s    L2GatewayOperations.Verify Nova VM IP    ${OVS_VM1_NAME}
39     Log    ${vm_ip}
40     Should Contain    ${vm_ip[0]}    ${port_ip_list[0]}
41
42 TC05 Create L2Gateway And Connection And Verify
43     ${output}=    L2GatewayOperations.Create Verify L2Gateway    ${HWVTEP_BRIDGE}    ${NS_PORT1}    ${L2GW_NAME1}
44     Log    ${output}
45     ${output}=    L2GatewayOperations.Create Verify L2Gateway Connection    ${L2GW_NAME1}    ${NET_1}
46     Log    ${output}
47     L2GatewayOperations.Verify Ovs Tunnel    ${HWVTEP_IP}    ${OVS_IP}
48     ${output}=    ITM Get Tunnels
49     Log    ${output}
50     Should Contain    ${output}    physicalswitch/${HWVTEP_BRIDGE}
51     Wait Until Keyword Succeeds    30s    1s    L2GatewayOperations.Verify Vtep List    ${TUNNEL_TABLE}    enable="true"
52     ${phy_port_out}=    Get Vtep List    ${PHYSICAL_PORT_TABLE}
53     Validate Regexp In String    ${phy_port_out}    ${VLAN_BINDING_REGEX}    1
54     ${list}=    Create List    ${OVS_IP}    ${HWVTEP_IP}
55     Wait Until Keyword Succeeds    30s    1s    L2GatewayOperations.Verify Vtep List    ${PHYSICAL_LOCATOR_TABLE}    @{list}
56     Wait Until Keyword Succeeds    30s    1s    L2GatewayOperations.Verify Vtep List    ${UCAST_MACS_REMOTE_TABLE}    ${port_mac_list[0]}
57
58 TC06 Dhcp Ip Allocation For Hwvtep Tap Port
59     Wait Until Keyword Succeeds    30s    10s    L2GatewayOperations.Namespace Dhclient Verify    ${HWVTEP_NS1}    ${NS_TAP1}    ${port_ip_list[1]}
60
61 TC07 Verify Ping From Compute Node Vm To Hwvtep
62     ${output}=    Wait Until Keyword Succeeds    60s    10s    Execute Command on VM Instance    ${NET_1}    ${port_ip_list[0]}
63     ...    ping -c 3 ${port_ip_list[1]}
64     Log    ${output}
65     Should Not Contain    ${output}    ${PACKET_LOSS}
66     ${src_mac_list}=    Create List    ${port_mac_list[0]}
67     ${dst_mac_list}=    Create List    ${port_mac_list[1]}
68     Wait Until Keyword Succeeds    30s    5s    L2GatewayOperations.Verify Elan Flow Entries    ${OVS_IP}    ${src_mac_list}    ${dst_mac_list}
69
70 TC08 Ping Verification From Namespace Tap To Ovs Vm
71     Wait Until Keyword Succeeds    30s    5s    L2GatewayOperations.Verify Ping In Namespace Extra Timeout    ${HWVTEP_NS1}    ${port_mac_list[1]}    ${port_ip_list[0]}
72
73 TC99 Cleanup L2Gateway Connection Itm Tunnel Port Subnet And Network
74     L2GatewayOperations.Delete L2Gateway Connection    ${L2GW_NAME1}
75     L2GatewayOperations.Delete L2Gateway    ${L2GW_NAME1}
76     OpenStackOperations.Delete Vm Instance    ${OVS_VM1_NAME}
77     OpenStackOperations.Delete Port    ${OVS_PORT_1}
78     OpenStackOperations.Delete Port    ${HWVTEP_PORT_1}
79     OpenStackOperations.Delete SubNet    ${SUBNET_1}
80     OpenStackOperations.Delete Network    ${NET_1}
81
82 *** Keywords ***
83 Basic Suite Setup
84     [Documentation]    Basic Suite Setup required for the HWVTEP Test Suite
85     RequestsLibrary.Create Session    alias=session    url=http://${ODL_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
86     ${devstack_conn_id}=    SSHLibrary.Open Connection    ${OS_IP}    prompt=${DEFAULT_LINUX_PROMPT}
87     Log    ${devstack_conn_id}
88     Set Suite Variable    ${devstack_conn_id}
89     Log    ${OS_IP}
90     Log    ${OS_USER}
91     Log    ${OS_PASSWORD}
92     Wait Until Keyword Succeeds    30s    5s    Flexible SSH Login    ${OS_USER}    ${OS_PASSWORD}
93     Write Commands Until Prompt    cd ${DEVSTACK_DEPLOY_PATH}; source openrc admin admin    30s
94     ${hwvtep_conn_id}=    SSHLibrary.Open Connection    ${HWVTEP_IP}    prompt=${DEFAULT_LINUX_PROMPT}
95     Log    ${hwvtep_conn_id}
96     Set Suite Variable    ${hwvtep_conn_id}
97     Log    ${DEFAULT_USER}
98     Log    ${DEFAULT_PASSWORD}
99     Wait Until Keyword Succeeds    30s    5s    Flexible SSH Login    ${DEFAULT_USER}    ${DEFAULT_PASSWORD}
100     ${ovs_conn_id}=    SSHLibrary.Open Connection    ${OVS_IP}    prompt=${DEFAULT_LINUX_PROMPT}
101     Log    ${ovs_conn_id}
102     Set Suite Variable    ${ovs_conn_id}
103     Wait Until Keyword Succeeds    30s    5s    Flexible SSH Login    ${DEFAULT_USER}    ${DEFAULT_PASSWORD}
104     ${port_mac_list}=    Create List
105     Set Suite Variable    ${port_mac_list}
106     ${port_ip_list}=    Create List
107     Set Suite Variable    ${port_ip_list}
108
109 Basic Suite Teardown
110     Switch Connection    ${devstack_conn_id}
111     close connection
112     Switch Connection    ${hwvtep_conn_id}
113     close connection
114     Switch Connection    ${ovs_conn_id}
115     close connection