Update Robot Framework format - step 13
[integration/test.git] / csit / suites / openstack / connectivity / l2.robot
1 *** Settings ***
2 Documentation       Test suite to verify packet flows between vm instances.
3
4 Library             SSHLibrary
5 Library             OperatingSystem
6 Library             RequestsLibrary
7 Resource            ../../../libraries/DevstackUtils.robot
8 Resource            ../../../libraries/DataModels.robot
9 Resource            ../../../libraries/OpenStackOperations.robot
10 Resource            ../../../libraries/SetupUtils.robot
11 Resource            ../../../libraries/Utils.robot
12 Resource            ../../../libraries/KarafKeywords.robot
13 Resource            ../../../variables/netvirt/Variables.robot
14
15 Suite Setup         Suite Setup
16 Suite Teardown      OpenStackOperations.OpenStack Suite Teardown
17 Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
18 Test Teardown       OpenStackOperations.Get Test Teardown Debugs
19
20
21 *** Variables ***
22 ${SECURITY_GROUP}       l2_sg
23 @{NETWORKS}             l2_net_1    l2_net_2
24 @{SUBNETS}              l2_sub_1    l2_sub_2
25 @{NET_1_VMS}            l2_net_1_vm_1    l2_net_1_vm_2    l2_net_1_vm_3
26 @{NET_2_VMS}            l2_net_2_vm_1    l2_net_2_vm_2    l2_net_2_vm_3
27 @{SUBNET_CIDRS}         21.0.0.0/24    22.0.0.0/24
28 ${NET_1_VLAN_ID}        1121
29
30
31 *** Test Cases ***
32 Ping Vm Instances In net_1
33     [Documentation]    Check reachability of vm instances by pinging to them.
34     OpenStackOperations.Ping Vm From DHCP Namespace    ${NETWORKS}[0]    ${NET_1_VM_IPS}[0]
35     OpenStackOperations.Ping Vm From DHCP Namespace    ${NETWORKS}[0]    ${NET_1_VM_IPS}[1]
36     OpenStackOperations.Ping Vm From DHCP Namespace    ${NETWORKS}[0]    ${NET_1_VM_IPS}[2]
37
38 Ping Vm Instances In net_2
39     [Documentation]    Check reachability of vm instances by pinging to them.
40     OpenStackOperations.Ping Vm From DHCP Namespace    ${NETWORKS}[1]    ${NET_2_VM_IPS}[0]
41     OpenStackOperations.Ping Vm From DHCP Namespace    ${NETWORKS}[1]    ${NET_2_VM_IPS}[1]
42     OpenStackOperations.Ping Vm From DHCP Namespace    ${NETWORKS}[1]    ${NET_2_VM_IPS}[2]
43
44 Connectivity Tests From Vm Instances In net_1
45     [Documentation]    Login to the vm instance and test some operations
46     OpenStackOperations.Test Operations From Vm Instance    ${NETWORKS}[0]    ${NET_1_VM_IPS}[0]    ${NET_1_VM_IPS}
47     OpenStackOperations.Test Operations From Vm Instance    ${NETWORKS}[0]    ${NET_1_VM_IPS}[1]    ${NET_1_VM_IPS}
48     OpenStackOperations.Test Operations From Vm Instance    ${NETWORKS}[0]    ${NET_1_VM_IPS}[2]    ${NET_1_VM_IPS}
49
50 Connectivity Tests From Vm Instances In net_2
51     [Documentation]    Login to the vm instance and test operations
52     OpenStackOperations.Test Operations From Vm Instance    ${NETWORKS}[1]    ${NET_2_VM_IPS}[0]    ${NET_2_VM_IPS}
53     OpenStackOperations.Test Operations From Vm Instance    ${NETWORKS}[1]    ${NET_2_VM_IPS}[1]    ${NET_2_VM_IPS}
54     OpenStackOperations.Test Operations From Vm Instance    ${NETWORKS}[1]    ${NET_2_VM_IPS}[2]    ${NET_2_VM_IPS}
55
56 Delete A Vm Instance
57     [Documentation]    Delete Vm instances using instance names.
58     [Tags]    non_gate
59     OpenStackOperations.Delete Vm Instance    ${NET_1_VMS}[0]
60
61 No Ping For Deleted Vm
62     [Documentation]    Check non reachability of deleted vm instances by pinging to them.
63     [Tags]    non_gate
64     OpenStackOperations.Ping From DHCP Should Not Succeed    ${NETWORKS}[0]    ${NET_1_VM_IPS}[0]
65
66 Recreate The Deleted Vm Instance and check ping & connectivity.
67     [Documentation]    Check reachability of recreated vm instances by pinging to them.
68     [Tags]    non_gate
69     OpenStackOperations.Create Vm Instance On Compute Node
70     ...    ${NETWORKS}[0]
71     ...    ${NET_1_VMS}[0]
72     ...    ${OS_CMP1_HOSTNAME}
73     ...    sg=${SECURITY_GROUP}
74     @{NET_1_VM_IPS}    ${NET_1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_1_VMS}
75     OpenStackOperations.Ping Vm From DHCP Namespace    ${NETWORKS}[0]    ${NET_1_VM_IPS}[0]
76     OpenStackOperations.Test Operations From Vm Instance    ${NETWORKS}[0]    ${NET_1_VM_IPS}[0]    ${NET_1_VM_IPS}
77
78
79 *** Keywords ***
80 Suite Setup
81     OpenStackOperations.OpenStack Suite Setup
82     OpenStackOperations.Create Network
83     ...    ${NETWORKS}[0]
84     ...    --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment ${NET_1_VLAN_ID}
85     OpenStackOperations.Create SubNet    ${NETWORKS}[0]    ${SUBNETS}[0]    ${SUBNET_CIDRS}[0]
86     OpenStackOperations.Create Network    ${NETWORKS}[1]
87     OpenStackOperations.Create SubNet    ${NETWORKS}[1]    ${SUBNETS}[1]    ${SUBNET_CIDRS}[1]
88     OpenStackOperations.Create Allow All SecurityGroup    ${SECURITY_GROUP}
89     OpenStackOperations.Create Vm Instance On Compute Node
90     ...    ${NETWORKS}[0]
91     ...    ${NET_1_VMS}[0]
92     ...    ${OS_CMP1_HOSTNAME}
93     ...    sg=${SECURITY_GROUP}
94     OpenStackOperations.Create Vm Instance On Compute Node
95     ...    ${NETWORKS}[0]
96     ...    ${NET_1_VMS}[1]
97     ...    ${OS_CMP1_HOSTNAME}
98     ...    sg=${SECURITY_GROUP}
99     OpenStackOperations.Create Vm Instance On Compute Node
100     ...    ${NETWORKS}[0]
101     ...    ${NET_1_VMS}[2]
102     ...    ${OS_CMP2_HOSTNAME}
103     ...    sg=${SECURITY_GROUP}
104     OpenStackOperations.Create Vm Instance On Compute Node
105     ...    ${NETWORKS}[1]
106     ...    ${NET_2_VMS}[0]
107     ...    ${OS_CMP1_HOSTNAME}
108     ...    sg=${SECURITY_GROUP}
109     OpenStackOperations.Create Vm Instance On Compute Node
110     ...    ${NETWORKS}[1]
111     ...    ${NET_2_VMS}[1]
112     ...    ${OS_CMP2_HOSTNAME}
113     ...    sg=${SECURITY_GROUP}
114     OpenStackOperations.Create Vm Instance On Compute Node
115     ...    ${NETWORKS}[1]
116     ...    ${NET_2_VMS}[2]
117     ...    ${OS_CMP2_HOSTNAME}
118     ...    sg=${SECURITY_GROUP}
119     @{NET_1_VM_IPS}    ${NET_1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_1_VMS}
120     @{NET_2_VM_IPS}    ${NET_2_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_2_VMS}
121     BuiltIn.Set Suite Variable    @{NET_1_VM_IPS}
122     BuiltIn.Set Suite Variable    @{NET_2_VM_IPS}
123     BuiltIn.Should Not Contain    ${NET_1_VM_IPS}    None
124     BuiltIn.Should Not Contain    ${NET_2_VM_IPS}    None
125     BuiltIn.Should Not Contain    ${NET_1_DHCP_IP}    None
126     BuiltIn.Should Not Contain    ${NET_2_DHCP_IP}    None
127     OpenStackOperations.Show Debugs    @{NET_1_VMS}    @{NET_2_VMS}
128     OpenStackOperations.Get Suite Debugs