ed9b5feb8fc42a4b71771e4b7b99329882b21a3d
[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
5 Library             OperatingSystem
6 Library             RequestsLibrary
7 Library             SSHLibrary
8 Resource            ../../../libraries/DevstackUtils.robot
9 Resource            ../../../libraries/KarafKeywords.robot
10 Resource            ../../../libraries/LiveMigration.robot
11 Resource            ../../../libraries/OpenStackOperations.robot
12 Resource            ../../../libraries/RemoteBash.robot
13 Resource            ../../../libraries/SetupUtils.robot
14 Resource            ../../../libraries/Utils.robot
15
16 Suite Setup         Suite Setup
17 Suite Teardown      LiveMigration.Live Migration Suite Teardown
18 Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
19 Test Teardown       OpenStackOperations.Get Test Teardown Debugs
20
21
22 *** Variables ***
23 ${SECURITY_GROUP}       migration_sg
24 @{NETWORKS}             migration_net_1
25 @{SUBNETS}              migration_sub_1
26 @{NET_1_VMS}            migration_net_1_vm_1    migration_net_1_vm_2
27 @{SUBNETS_RANGE}        130.0.0.0/24
28
29
30 *** Test Cases ***
31 Migrate Instance And Verify Connectivity While Migration And After
32     [Documentation]    migrate the server to different host.
33     ...    and check the connectivity during Migration
34     ...    with a ping test from DHCP NS.
35     ${net_id} =    OpenStackOperations.Get Net Id    ${NETWORKS}[0]
36     ${devstack_conn_id} =    OpenStackOperations.Get ControlNode Connection
37     SSHLibrary.Switch Connection    ${devstack_conn_id}
38     ${output} =    SSHLibrary.Write    sudo ip netns exec qdhcp-${net_id} ping ${NET1_VM_IPS}[0]
39     ${vm_host_before_migration} =    OpenStackOperations.Get Hypervisor Host Of Vm    ${NET_1_VMS}[0]
40     OpenStackOperations.Server Live Migrate    ${NET_1_VMS}[0]
41     ${vm_list} =    BuiltIn.Create List    ${NET_1_VMS}[0]
42     FOR    ${vm}    IN    @{vm_list}
43         BuiltIn.Wait Until Keyword Succeeds    6x    20s    OpenStackOperations.Check If Migration Is Complete    ${vm}
44     END
45     ${vm_host_after_migration} =    OpenStackOperations.Get Hypervisor Host Of Vm    ${NET_1_VMS}[0]
46     IF    "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp"
47         BuiltIn.Should Match    ${vm_host_after_migration}    ${vm_host_before_migration}
48     ELSE
49         BuiltIn.Should Not Match    ${vm_host_after_migration}    ${vm_host_before_migration}
50     END
51     SSHLibrary.Switch Connection    ${devstack_conn_id}
52     RemoteBash.Write_Bare_Ctrl_C
53     ${output} =    SSHLibrary.Read Until    packet loss
54     BuiltIn.Should Contain    ${output}    64 bytes
55     ${output} =    DevstackUtils.Write Commands Until Prompt
56     ...    sudo ip netns exec qdhcp-${net_id} ping -c 10 ${NET1_VM_IPS}[0]
57     BuiltIn.Should Contain    ${output}    64 bytes
58
59
60 *** Keywords ***
61 Suite Setup
62     LiveMigration.Live Migration Suite Setup
63     OpenstackOperations.Create Network    ${NETWORKS}[0]
64     OpenStackOperations.Create SubNet    ${NETWORKS}[0]    ${SUBNETS}[0]    ${SUBNETS_RANGE}[0]
65     OpenStackOperations.Create Allow All SecurityGroup    ${SECURITY_GROUP}
66     OpenStackOperations.Create Vm Instance On Compute Node
67     ...    ${NETWORKS}[0]
68     ...    ${NET_1_VMS}[0]
69     ...    ${OS_CMP1_HOSTNAME}
70     ...    sg=${SECURITY_GROUP}
71     OpenStackOperations.Create Vm Instance On Compute Node
72     ...    ${NETWORKS}[0]
73     ...    ${NET_1_VMS}[1]
74     ...    ${OS_CMP2_HOSTNAME}
75     ...    sg=${SECURITY_GROUP}
76     @{NET_1_VM_IPS}    ${NET_1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_1_VMS}
77     BuiltIn.Set Suite Variable    @{NET_1_VM_IPS}
78     BuiltIn.Should Not Contain    ${NET_1_VM_IPS}    None
79     BuiltIn.Should Not Contain    ${NET_1_DHCP_IP}    None
80     OpenStackOperations.Show Debugs    @{NET_1_VMS}
81     OpenStackOperations.Get Suite Debugs