Update remaining tests for combos
[integration/test.git] / csit / suites / openstack / connectivity / live_migration.robot
1 *** Settings ***
2 Documentation     Test suite to verify live Migaration of VM instance also verify the connectivity
3 ...               of VM instance while Migrating the instance,
4 Suite Setup       LiveMigration.Live Migration Suite Setup
5 Suite Teardown    LiveMigration.Live Migration Suite Teardown
6 Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
7 Test Teardown     OpenStackOperations.Get Test Teardown Debugs
8 Library           OperatingSystem
9 Library           RequestsLibrary
10 Library           SSHLibrary
11 Resource          ../../../libraries/DevstackUtils.robot
12 Resource          ../../../libraries/KarafKeywords.robot
13 Resource          ../../../libraries/LiveMigration.robot
14 Resource          ../../../libraries/OpenStackOperations.robot
15 Resource          ../../../libraries/RemoteBash.robot
16 Resource          ../../../libraries/SetupUtils.robot
17 Resource          ../../../libraries/Utils.robot
18
19 *** Variables ***
20 ${SECURITY_GROUP}    migration_sg
21 @{NETWORKS}       migration_net_1
22 @{SUBNETS}        migration_sub_1
23 @{NET_1_VMS}      migration_net_1_vm_1    migration_net_1_vm_2
24 @{SUBNETS_RANGE}    130.0.0.0/24
25
26 *** Test Cases ***
27 Create VXLAN Network migration_net_1
28     [Documentation]    Create Network with neutron request.
29     OpenstackOperations.Create Network    @{NETWORKS}[0]
30
31 Create Subnets For migration_net_1
32     [Documentation]    Create Sub Nets for the Networks with neutron request.
33     OpenStackOperations.Create SubNet    @{NETWORKS}[0]    @{SUBNETS}[0]    @{SUBNETS_RANGE}[0]
34
35 Add Ssh Allow Rule
36     [Documentation]    Allow all TCP/UDP/ICMP packets for this suite
37     OpenStackOperations.Create Allow All SecurityGroup    ${SECURITY_GROUP}
38
39 Create Vm Instances For migration_net_1
40     [Documentation]    Create Four Vm instances using flavor and image names for a network.
41     OpenStackOperations.Create Vm Instance On Compute Node    @{NETWORKS}[0]    @{NET_1_VMS}[0]    ${OS_CMP1_HOSTNAME}    sg=${SECURITY_GROUP}
42     OpenStackOperations.Create Vm Instance On Compute Node    @{NETWORKS}[0]    @{NET_1_VMS}[1]    ${OS_CMP2_HOSTNAME}    sg=${SECURITY_GROUP}
43
44 Check Vm Instances Have Ip Address
45     @{NET_1_VM_IPS}    ${NET_1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_1_VMS}
46     BuiltIn.Set Suite Variable    @{NET_1_VM_IPS}
47     BuiltIn.Should Not Contain    ${NET_1_VM_IPS}    None
48     BuiltIn.Should Not Contain    ${NET_1_DHCP_IP}    None
49     [Teardown]    BuiltIn.Run Keywords    OpenStackOperations.Show Debugs    @{NET_1_VMS}
50     ...    AND    OpenStackOperations.Get Test Teardown Debugs
51
52 Migrate Instance And Verify Connectivity While Migration And After
53     [Documentation]    migrate the server to different host.
54     ...    and check the connectivity during Migration
55     ...    with a ping test from DHCP NS.
56     ${net_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[0]
57     ${devstack_conn_id} =    OpenStackOperations.Get ControlNode Connection
58     SSHLibrary.Switch Connection    ${devstack_conn_id}
59     ${output} =    SSHLibrary.Write    sudo ip netns exec qdhcp-${net_id} ping @{NET1_VM_IPS}[0]
60     ${vm_host_before_migration} =    OpenStackOperations.Get Hypervisor Host Of Vm    @{NET_1_VMS}[0]
61     OpenStackOperations.Server Live Migrate    @{NET_1_VMS}[0]
62     ${vm_list} =    BuiltIn.Create List    @{NET_1_VMS}[0]
63     : FOR    ${vm}    IN    @{vm_list}
64     \    BuiltIn.Wait Until Keyword Succeeds    6x    20s    OpenStackOperations.Check If Migration Is Complete    ${vm}
65     ${vm_host_after_migration} =    OpenStackOperations.Get Hypervisor Host Of Vm    @{NET_1_VMS}[0]
66     BuiltIn.Run Keyword If    "${OS_DEPLOY}" == "1cmb-0ctl-0cmp"    BuiltIn.Should Match    ${vm_host_after_migration}    ${vm_host_before_migration}
67     ...    ELSE    BuiltIn.Should Not Match    ${vm_host_after_migration}    ${vm_host_before_migration}
68     SSHLibrary.Switch Connection    ${devstack_conn_id}
69     RemoteBash.Write_Bare_Ctrl_C
70     ${output} =    SSHLibrary.Read Until    packet loss
71     BuiltIn.Should Contain    ${output}    64 bytes
72     ${output} =    DevstackUtils.Write Commands Until Prompt    sudo ip netns exec qdhcp-${net_id} ping -c 10 @{NET1_VM_IPS}[0]
73     BuiltIn.Should Contain    ${output}    64 bytes
74
75 Delete Vm Instances In migration_net_1
76     [Documentation]    Delete Vm instances using instance names in network_1.
77     : FOR    ${vm}    IN    @{NET_1_VMS}
78     \    OpenStackOperations.Delete Vm Instance    ${vm}
79
80 Delete Sub Networks In migration_net_1
81     [Documentation]    Delete Sub Nets for the Networks with neutron request.
82     OpenStackOperations.Delete SubNet    @{SUBNETS}[0]
83
84 Delete Networks
85     [Documentation]    Delete Networks with neutron request.
86     : FOR    ${NetworkElement}    IN    @{NETWORKS}
87     \    OpenStackOperations.Delete Network    ${NetworkElement}
88
89 Delete SecurityGroup
90     [Documentation]    Delete SecurityGroup with neutron request.
91     OpenStackOperations.Delete SecurityGroup    ${SECURITY_GROUP}