2 Documentation Test suite to verify packet flows between vm instances.
5 Library OperatingSystem
6 Library RequestsLibrary
7 Resource ../libraries/OpenStackInstallUtils.robot
8 Resource ../libraries/OpenStackOperations.robot
9 Resource ../libraries/SystemUtils.robot
10 Resource ../libraries/Utils.robot
12 Suite Setup OpenStackInstallUtils.Get All Ssh Connections
13 Suite Teardown Close All Connections
18 Create And Configure Nova Db ${OS_CONTROL_1_IP} root mysql ${OS_CONTROL_1_HOSTNAME}
19 IF 2 < ${NUM_CONTROL_NODES}
20 Create And Configure Nova Db Other Nodes ${OS_CONTROL_2_IP} root mysql ${OS_CONTROL_2_HOSTNAME}
22 IF 2 < ${NUM_CONTROL_NODES}
23 Create And Configure Nova Db Other Nodes ${OS_CONTROL_3_IP} root mysql ${OS_CONTROL_3_HOSTNAME}
25 IF 3 < ${NUM_CONTROL_NODES}
26 Create And Configure Nova Db Other Nodes ${OS_CONTROL_4_IP} root mysql ${OS_CONTROL_4_HOSTNAME}
28 IF 4 < ${NUM_CONTROL_NODES}
29 Create And Configure Nova Db Other Nodes ${OS_CONTROL_5_IP} root mysql ${OS_CONTROL_5_HOSTNAME}
31 IF 2 > ${NUM_CONTROL_NODES}
32 Create Openstack Elements ${OS_CONTROL_1_HOSTNAME}
34 IF 2 < ${NUM_CONTROL_NODES}
35 Create Openstack Elements ${HAPROXY_HOSTNAME}
37 IF 2 > ${NUM_CONTROL_NODES}
38 Install Configure Nova API ${OS_CONTROL_1_IP} ${OS_CONTROL_1_IP} ${OS_CONTROL_1_HOSTNAME}
40 IF 2 < ${NUM_CONTROL_NODES}
41 Install Configure Nova API ${OS_CONTROL_1_IP} ${OS_CONTROL_1_IP} ${HAPROXY_HOSTNAME}
43 IF 2 < ${NUM_CONTROL_NODES}
44 Install Configure Nova API ${OS_CONTROL_2_IP} ${OS_CONTROL_2_IP} ${HAPROXY_HOSTNAME}
46 IF 2 < ${NUM_CONTROL_NODES}
47 Install Configure Nova API ${OS_CONTROL_3_IP} ${OS_CONTROL_3_IP} ${HAPROXY_HOSTNAME}
49 IF 3 < ${NUM_CONTROL_NODES}
50 Install Configure Nova API ${OS_CONTROL_4_IP} ${OS_CONTROL_4_IP} ${HAPROXY_HOSTNAME}
52 IF 4 < ${NUM_CONTROL_NODES}
53 Install Configure Nova API ${OS_CONTROL_5_IP} ${OS_CONTROL_5_IP} ${HAPROXY_HOSTNAME}
55 Sync Db ${OS_CONTROL_1_IP}
56 Start Nova Services ${OS_CONTROL_1_IP}
57 IF 2 < ${NUM_CONTROL_NODES} Start Nova Services ${OS_CONTROL_2_IP}
58 IF 2 < ${NUM_CONTROL_NODES} Start Nova Services ${OS_CONTROL_3_IP}
59 IF 2 < ${NUM_CONTROL_NODES}
60 Generic HAProxy Entry ${HAPROXY_IP} ${HAPROXY_IP} 8774 nova_compute_api_cluster
62 IF 2 < ${NUM_CONTROL_NODES}
63 Generic HAProxy Entry ${HAPROXY_IP} ${HAPROXY_IP} 8775 nova_metadata_api_cluster
65 IF 2 < ${NUM_CONTROL_NODES}
66 Generic HAProxy Entry ${HAPROXY_IP} ${HAPROXY_IP} 8778 nova_placement_service
68 IF 1 > ${NUM_COMPUTE_NODES}
69 Install Configure Nova Compute ${OS_CONTROL_1_IP} ${OS_CONTROL_1_IP}
71 IF 0 < ${NUM_COMPUTE_NODES}
72 Install Configure Nova Compute ${OS_COMPUTE_1_IP} ${OS_COMPUTE_1_IP}
74 IF 1 < ${NUM_COMPUTE_NODES}
75 Install Configure Nova Compute ${OS_COMPUTE_2_IP} ${OS_COMPUTE_2_IP}
80 Create And Configure Nova Db
81 [Arguments] ${os_node_cxn} ${mysql_user} ${mysql_pass} ${host_name}
82 Create Database for Mysql ${os_node_cxn} ${mysql_user} ${mysql_pass} nova
83 Grant Privileges To Mysql Database
91 Grant Privileges To Mysql Database
99 IF 2 < ${NUM_CONTROL_NODES}
100 Grant Privileges To Mysql Database
106 ... ${HAPROXY_HOSTNAME}
109 Create Database for Mysql ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_api
110 Grant Privileges To Mysql Database
118 Grant Privileges To Mysql Database
126 IF 2 < ${NUM_CONTROL_NODES}
127 Grant Privileges To Mysql Database
133 ... ${HAPROXY_HOSTNAME}
136 Create Database for Mysql ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_cell0
137 Grant Privileges To Mysql Database
145 Grant Privileges To Mysql Database
153 IF 2 < ${NUM_CONTROL_NODES}
154 Grant Privileges To Mysql Database
160 ... ${HAPROXY_HOSTNAME}
164 Workaround Packaging Problem
165 [Arguments] ${os_node_cxn}
166 Switch Connection ${os_node_cxn}
167 Put File ${CURDIR}/nova_workaround.xml /tmp/
169 Create And Configure Nova Db Other Nodes
170 [Arguments] ${os_node_cxn} ${mysql_user} ${mysql_pass} ${host_name}
171 Grant Privileges To Mysql Database
179 Grant Privileges To Mysql Database
187 IF 2 < ${NUM_CONTROL_NODES}
188 Grant Privileges To Mysql Database
194 ... ${HAPROXY_HOSTNAME}
197 Grant Privileges To Mysql Database
205 Grant Privileges To Mysql Database
213 IF 2 < ${NUM_CONTROL_NODES}
214 Grant Privileges To Mysql Database
220 ... ${HAPROXY_HOSTNAME}
223 Grant Privileges To Mysql Database
231 Grant Privileges To Mysql Database
239 IF 2 < ${NUM_CONTROL_NODES}
240 Grant Privileges To Mysql Database
246 ... ${HAPROXY_HOSTNAME}
250 Create Openstack Elements
251 [Arguments] ${host_name}
252 Create User nova default nova rc_file=/tmp/stackrc
253 Role Add service nova admin rc_file=/tmp/stackrc
254 Create Service nova "Compute service" compute rc_file=/tmp/stackrc
255 Create Endpoint RegionOne ${host_name} compute public 8774/v2.1 rc_file=/tmp/stackrc
256 Create Endpoint RegionOne ${host_name} compute internal 8774/v2.1 rc_file=/tmp/stackrc
257 Create Endpoint RegionOne ${host_name} compute admin 8774/v2.1 rc_file=/tmp/stackrc
258 Create User placement default placement rc_file=/tmp/stackrc
259 Role Add service placement admin rc_file=/tmp/stackrc
260 Create Service placement "Plaement API" placement rc_file=/tmp/stackrc
261 Create Endpoint RegionOne ${host_name} placement public 8778 rc_file=/tmp/stackrc
262 Create Endpoint RegionOne ${host_name} placement internal 8778 rc_file=/tmp/stackrc
263 Create Endpoint RegionOne ${host_name} placement admin 8778 rc_file=/tmp/stackrc
265 Install Configure Nova API
266 [Arguments] ${os_node_cxn} ${host_ip} ${host_name}
267 IF '${OS_APPS_PRE_INSTALLED}' == 'no'
270 ... openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api
272 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT enabled_apis "osapi_compute,metadata"
273 IF 2 < ${NUM_CONTROL_NODES}
276 ... /etc/nova/nova.conf
279 ... "rabbit://openstack:rabbit@${OS_CONTROL_1_HOSTNAME},openstack:rabbit@${OS_CONTROL_2_HOSTNAME},openstack:rabbit@${OS_CONTROL_3_HOSTNAME}"
281 IF 2 > ${NUM_CONTROL_NODES}
284 ... /etc/nova/nova.conf
287 ... "rabbit://openstack:rabbit@${host_name}"
289 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT my_ip ${host_ip}
290 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT use_neutron True
293 ... /etc/nova/nova.conf
296 ... nova.virt.firewall.NoopFirewallDriver
299 ... /etc/nova/nova.conf
302 ... "mysql+pymysql://nova:nova@${host_name}/nova_api"
305 ... /etc/nova/nova.conf
308 ... "mysql+pymysql://nova:nova@${host_name}/nova"
309 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf api auth_strategy keystone
310 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken auth_uri http://${host_name}:5000
313 ... /etc/nova/nova.conf
314 ... keystone_authtoken
316 ... http://${host_name}:35357
317 IF 2 < ${NUM_CONTROL_NODES}
320 ... /etc/nova/nova.conf
321 ... keystone_authtoken
322 ... memcached_servers
323 ... ${OS_CONTROL_1_IP}:11211,${OS_CONTROL_2_IP}:11211,${OS_CONTROL_3_IP}:11211
325 IF 2 > ${NUM_CONTROL_NODES}
328 ... /etc/nova/nova.conf
329 ... keystone_authtoken
330 ... memcached_servers
331 ... ${host_name}:11211
333 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken auth_type password
334 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken project_domain_name default
335 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken user_domain_name default
336 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken project_name service
337 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken username nova
338 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken password nova
339 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf vnc enabled false
340 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf glance api_servers http://${host_name}:9292
341 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
342 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement os_region_name RegionOne
343 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement project_domain_name Default
344 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement user_domain_name Default
345 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement project_name service
346 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement auth_type password
347 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement auth_url http://${host_name}:35357/v3
348 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement username placement
349 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement password placement
350 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf scheduler discover_hosts_in_cells_interval 40
351 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_messaging_rabbit rabbit_max_retries 0
352 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_messaging_rabbit rabbit_ha_queues true
353 Workaround Packaging Problem ${os_node_cxn}
356 ... cat /tmp/nova_workaround.xml | sudo tee -a /etc/httpd/conf.d/00-nova-placement-api.conf
357 Restart Service ${os_node_cxn} httpd
360 [Arguments] ${os_node_cxn}
361 Run Command As User ${os_node_cxn} "nova-manage api_db sync" nova
362 Run Command As User ${os_node_cxn} "nova-manage cell_v2 map_cell0" nova
363 Run Command As User ${os_node_cxn} "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
364 Run Command As User ${os_node_cxn} "nova-manage db sync" nova
365 Run Command As User ${os_node_cxn} "nova-manage cell_v2 list_cells" nova
368 [Arguments] ${os_node_cxn}
371 ... openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
374 ... openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
376 Install Configure Nova Compute
377 [Arguments] ${os_node_cxn} ${host_ip}
378 IF '${OS_APPS_PRE_INSTALLED}' == 'no'
379 Install Rpm Package ${os_node_cxn} openstack-nova-compute nfs-utils
381 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT enabled_apis "osapi_compute,metadata"
382 IF 2 < ${NUM_CONTROL_NODES}
385 ... /etc/nova/nova.conf
388 ... "rabbit://openstack:rabbit@${OS_CONTROL_1_HOSTNAME},openstack:rabbit@${OS_CONTROL_2_HOSTNAME},openstack:rabbit@${OS_CONTROL_3_HOSTNAME}"
390 IF 2 > ${NUM_CONTROL_NODES}
393 ... /etc/nova/nova.conf
396 ... "rabbit://openstack:rabbit@${OS_CONTROL_1_HOSTNAME}"
398 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_messaging_rabbit rabbit_max_retries 0
399 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_messaging_rabbit rabbit_ha_queues true
400 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT my_ip ${host_ip}
401 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT use_neutron True
404 ... /etc/nova/nova.conf
407 ... nova.virt.firewall.NoopFirewallDriver
408 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf api auth_strategy keystone
409 IF 2 > ${NUM_CONTROL_NODES}
412 ... /etc/nova/nova.conf
413 ... keystone_authtoken
415 ... http://${OS_CONTROL_1_HOSTNAME}:5000
417 IF 2 < ${NUM_CONTROL_NODES}
420 ... /etc/nova/nova.conf
421 ... keystone_authtoken
423 ... http://${HAPROXY_HOSTNAME}:5000
425 IF 2 > ${NUM_CONTROL_NODES}
428 ... /etc/nova/nova.conf
429 ... keystone_authtoken
431 ... http://${OS_CONTROL_1_HOSTNAME}:35357
433 IF 2 < ${NUM_CONTROL_NODES}
436 ... /etc/nova/nova.conf
437 ... keystone_authtoken
439 ... http://${HAPROXY_HOSTNAME}:35357
441 IF 2 < ${NUM_CONTROL_NODES}
444 ... /etc/nova/nova.conf
445 ... keystone_authtoken
446 ... memcached_servers
447 ... ${OS_CONTROL_1_IP}:11211,${OS_CONTROL_2_IP}:11211,${OS_CONTROL_3_IP}:11211
449 IF 2 > ${NUM_CONTROL_NODES}
452 ... /etc/nova/nova.conf
453 ... keystone_authtoken
454 ... memcached_servers
455 ... ${OS_CONTROL_1_HOSTNAME}:11211
457 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken auth_type password
458 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken project_domain_name default
459 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken user_domain_name default
460 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken project_name service
461 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken username nova
462 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken password nova
463 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf vnc enabled false
464 IF 2 < ${NUM_CONTROL_NODES}
467 ... /etc/nova/nova.conf
470 ... http://${HAPROXY_HOSTNAME}:9292
472 IF 2 > ${NUM_CONTROL_NODES}
475 ... /etc/nova/nova.conf
478 ... http://${OS_CONTROL_1_HOSTNAME}:9292
480 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
481 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement os_region_name RegionOne
482 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement project_domain_name Default
483 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement user_domain_name Default
484 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement project_name service
485 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement auth_type password
486 IF 2 > ${NUM_CONTROL_NODES}
489 ... /etc/nova/nova.conf
492 ... http://${OS_CONTROL_1_HOSTNAME}:35357/v3
494 IF 2 < ${NUM_CONTROL_NODES}
497 ... /etc/nova/nova.conf
500 ... http://${HAPROXY_HOSTNAME}:35357/v3
502 Enable Service ${os_node_cxn} rpcbind
503 Start Service ${os_node_cxn} rpcbind
504 Run Command ${os_node_cxn} sudo mkdir -p /var/lib/nova/instances_live_migration
505 IF 2 < ${NUM_CONTROL_NODES}
508 ... sudo mount -t nfs ${HAPROXY_IP}:/instances /var/lib/nova/instances_live_migration
510 IF 2 > ${NUM_CONTROL_NODES}
513 ... sudo mount -t nfs ${ROBOT_VM_IP}:/instances /var/lib/nova/instances_live_migration
515 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement username placement
516 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement password placement
517 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf libvirt virt_type qemu
518 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_messaging_rabbit rabbit_max_retries 0
519 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_messaging_rabbit rabbit_ha_queues true
520 Chown File ${os_node_cxn} /var/lib/nova/instances nova nova
521 Enable Service ${os_node_cxn} openstack-nova-compute libvirtd
522 Start Service ${os_node_cxn} openstack-nova-compute libvirtd