Upgrade RF syntax for v3.2 compatibility
[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       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 Migrate Instance And Verify Connectivity While Migration And After
28     [Documentation]    migrate the server to different host.
29     ...    and check the connectivity during Migration
30     ...    with a ping test from DHCP NS.
31     ${net_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[0]
32     ${devstack_conn_id} =    OpenStackOperations.Get ControlNode Connection
33     SSHLibrary.Switch Connection    ${devstack_conn_id}
34     ${output} =    SSHLibrary.Write    sudo ip netns exec qdhcp-${net_id} ping @{NET1_VM_IPS}[0]
35     ${vm_host_before_migration} =    OpenStackOperations.Get Hypervisor Host Of Vm    @{NET_1_VMS}[0]
36     OpenStackOperations.Server Live Migrate    @{NET_1_VMS}[0]
37     ${vm_list} =    BuiltIn.Create List    @{NET_1_VMS}[0]
38     FOR    ${vm}    IN    @{vm_list}
39         BuiltIn.Wait Until Keyword Succeeds    6x    20s    OpenStackOperations.Check If Migration Is Complete    ${vm}
40     END
41     ${vm_host_after_migration} =    OpenStackOperations.Get Hypervisor Host Of Vm    @{NET_1_VMS}[0]
42     BuiltIn.Run Keyword If    "${OPENSTACK_TOPO}" == "1cmb-0ctl-0cmp"    BuiltIn.Should Match    ${vm_host_after_migration}    ${vm_host_before_migration}
43     ...    ELSE    BuiltIn.Should Not Match    ${vm_host_after_migration}    ${vm_host_before_migration}
44     SSHLibrary.Switch Connection    ${devstack_conn_id}
45     RemoteBash.Write_Bare_Ctrl_C
46     ${output} =    SSHLibrary.Read Until    packet loss
47     BuiltIn.Should Contain    ${output}    64 bytes
48     ${output} =    DevstackUtils.Write Commands Until Prompt    sudo ip netns exec qdhcp-${net_id} ping -c 10 @{NET1_VM_IPS}[0]
49     BuiltIn.Should Contain    ${output}    64 bytes
50
51 *** Keywords ***
52 Suite Setup
53     LiveMigration.Live Migration Suite Setup
54     OpenstackOperations.Create Network    @{NETWORKS}[0]
55     OpenStackOperations.Create SubNet    @{NETWORKS}[0]    @{SUBNETS}[0]    @{SUBNETS_RANGE}[0]
56     OpenStackOperations.Create Allow All SecurityGroup    ${SECURITY_GROUP}
57     OpenStackOperations.Create Vm Instance On Compute Node    @{NETWORKS}[0]    @{NET_1_VMS}[0]    ${OS_CMP1_HOSTNAME}    sg=${SECURITY_GROUP}
58     OpenStackOperations.Create Vm Instance On Compute Node    @{NETWORKS}[0]    @{NET_1_VMS}[1]    ${OS_CMP2_HOSTNAME}    sg=${SECURITY_GROUP}
59     @{NET_1_VM_IPS}    ${NET_1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_1_VMS}
60     BuiltIn.Set Suite Variable    @{NET_1_VM_IPS}
61     BuiltIn.Should Not Contain    ${NET_1_VM_IPS}    None
62     BuiltIn.Should Not Contain    ${NET_1_DHCP_IP}    None
63     OpenStackOperations.Show Debugs    @{NET_1_VMS}
64     OpenStackOperations.Get Suite Debugs