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
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
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
27 Create VXLAN Network migration_net_1
28 [Documentation] Create Network with neutron request.
29 OpenstackOperations.Create Network @{NETWORKS}[0]
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]
36 [Documentation] Allow all TCP/UDP/ICMP packets for this suite
37 OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
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}
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
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.Should Not Match ${vm_host_after_migration} ${vm_host_before_migration}
67 SSHLibrary.Switch Connection ${devstack_conn_id}
68 RemoteBash.Write_Bare_Ctrl_C
69 ${output} = SSHLibrary.Read Until packet loss
70 BuiltIn.Should Contain ${output} 64 bytes
71 ${output} = DevstackUtils.Write Commands Until Prompt sudo ip netns exec qdhcp-${net_id} ping -c 10 @{NET1_VM_IPS}[0]
72 BuiltIn.Should Contain ${output} 64 bytes
74 Delete Vm Instances In migration_net_1
75 [Documentation] Delete Vm instances using instance names in network_1.
76 : FOR ${vm} IN @{NET_1_VMS}
77 \ OpenStackOperations.Delete Vm Instance ${vm}
79 Delete Sub Networks In migration_net_1
80 [Documentation] Delete Sub Nets for the Networks with neutron request.
81 OpenStackOperations.Delete SubNet @{SUBNETS}[0]
84 [Documentation] Delete Networks with neutron request.
85 : FOR ${NetworkElement} IN @{NETWORKS}
86 \ OpenStackOperations.Delete Network ${NetworkElement}
89 [Documentation] Delete SecurityGroup with neutron request.
90 OpenStackOperations.Delete SecurityGroup ${SECURITY_GROUP}