2 Documentation Test suite to verify packet flows between vm instances.
3 Suite Setup OpenStackInstallUtils.Get All Ssh Connections
4 Suite Teardown Close All Connections
6 Library OperatingSystem
7 Library RequestsLibrary
8 Resource ../libraries/OpenStackInstallUtils.robot
9 Resource ../libraries/OpenStackOperations.robot
10 Resource ../libraries/SystemUtils.robot
11 Resource ../libraries/Utils.robot
15 Create And Configure Nova Db ${OS_CONTROL_1_IP} root mysql ${OS_CONTROL_1_HOSTNAME}
16 Run Keyword If 2 < ${NUM_CONTROL_NODES} Create And Configure Nova Db Other Nodes ${OS_CONTROL_2_IP} root mysql ${OS_CONTROL_2_HOSTNAME}
17 Run Keyword If 2 < ${NUM_CONTROL_NODES} Create And Configure Nova Db Other Nodes ${OS_CONTROL_3_IP} root mysql ${OS_CONTROL_3_HOSTNAME}
18 Run Keyword If 3 < ${NUM_CONTROL_NODES} Create And Configure Nova Db Other Nodes ${OS_CONTROL_4_IP} root mysql ${OS_CONTROL_4_HOSTNAME}
19 Run Keyword If 4 < ${NUM_CONTROL_NODES} Create And Configure Nova Db Other Nodes ${OS_CONTROL_5_IP} root mysql ${OS_CONTROL_5_HOSTNAME}
20 Run Keyword If 2 > ${NUM_CONTROL_NODES} Create Openstack Elements ${OS_CONTROL_1_HOSTNAME}
21 Run Keyword If 2 < ${NUM_CONTROL_NODES} Create Openstack Elements ${HAPROXY_HOSTNAME}
22 Run Keyword If 2 > ${NUM_CONTROL_NODES} Install Configure Nova API ${OS_CONTROL_1_IP} ${OS_CONTROL_1_IP} ${OS_CONTROL_1_HOSTNAME}
23 Run Keyword If 2 < ${NUM_CONTROL_NODES} Install Configure Nova API ${OS_CONTROL_1_IP} ${OS_CONTROL_1_IP} ${HAPROXY_HOSTNAME}
24 Run Keyword If 2 < ${NUM_CONTROL_NODES} Install Configure Nova API ${OS_CONTROL_2_IP} ${OS_CONTROL_2_IP} ${HAPROXY_HOSTNAME}
25 Run Keyword If 2 < ${NUM_CONTROL_NODES} Install Configure Nova API ${OS_CONTROL_3_IP} ${OS_CONTROL_3_IP} ${HAPROXY_HOSTNAME}
26 Run Keyword If 3 < ${NUM_CONTROL_NODES} Install Configure Nova API ${OS_CONTROL_4_IP} ${OS_CONTROL_4_IP} ${HAPROXY_HOSTNAME}
27 Run Keyword If 4 < ${NUM_CONTROL_NODES} Install Configure Nova API ${OS_CONTROL_5_IP} ${OS_CONTROL_5_IP} ${HAPROXY_HOSTNAME}
28 Sync Db ${OS_CONTROL_1_IP}
29 Start Nova Services ${OS_CONTROL_1_IP}
30 Run Keyword If 2 < ${NUM_CONTROL_NODES} Start Nova Services ${OS_CONTROL_2_IP}
31 Run Keyword If 2 < ${NUM_CONTROL_NODES} Start Nova Services ${OS_CONTROL_3_IP}
32 Run Keyword If 2 < ${NUM_CONTROL_NODES} Generic HAProxy Entry ${HAPROXY_IP} ${HAPROXY_IP} 8774 nova_compute_api_cluster
33 Run Keyword If 2 < ${NUM_CONTROL_NODES} Generic HAProxy Entry ${HAPROXY_IP} ${HAPROXY_IP} 8775 nova_metadata_api_cluster
34 Run Keyword If 2 < ${NUM_CONTROL_NODES} Generic HAProxy Entry ${HAPROXY_IP} ${HAPROXY_IP} 8778 nova_placement_service
35 Run Keyword If 1 > ${NUM_COMPUTE_NODES} Install Configure Nova Compute ${OS_CONTROL_1_IP} ${OS_CONTROL_1_IP}
36 Run Keyword If 0 < ${NUM_COMPUTE_NODES} Install Configure Nova Compute ${OS_COMPUTE_1_IP} ${OS_COMPUTE_1_IP}
37 Run Keyword If 1 < ${NUM_COMPUTE_NODES} Install Configure Nova Compute ${OS_COMPUTE_2_IP} ${OS_COMPUTE_2_IP}
40 Create And Configure Nova Db
41 [Arguments] ${os_node_cxn} ${mysql_user} ${mysql_pass} ${host_name}
42 Create Database for Mysql ${os_node_cxn} ${mysql_user} ${mysql_pass} nova
43 Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova.* nova ${host_name}
45 Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova.* nova localhost
47 Run Keyword If 2 < ${NUM_CONTROL_NODES} Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova.*
48 ... nova ${HAPROXY_HOSTNAME} nova
49 Create Database for Mysql ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_api
50 Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_api.* nova ${host_name}
52 Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_api.* nova localhost
54 Run Keyword If 2 < ${NUM_CONTROL_NODES} Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_api.*
55 ... nova ${HAPROXY_HOSTNAME} nova
56 Create Database for Mysql ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_cell0
57 Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_cell0.* nova ${host_name}
59 Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_cell0.* nova localhost
61 Run Keyword If 2 < ${NUM_CONTROL_NODES} Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_cell0.*
62 ... nova ${HAPROXY_HOSTNAME} nova
64 Workaround Packaging Problem
65 [Arguments] ${os_node_cxn}
66 Switch Connection ${os_node_cxn}
67 Put File ${CURDIR}/nova_workaround.xml /tmp/
69 Create And Configure Nova Db Other Nodes
70 [Arguments] ${os_node_cxn} ${mysql_user} ${mysql_pass} ${host_name}
71 Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova.* nova ${host_name}
73 Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova.* nova localhost
75 Run Keyword If 2 < ${NUM_CONTROL_NODES} Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova.*
76 ... nova ${HAPROXY_HOSTNAME} nova
77 Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_api.* nova ${host_name}
79 Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_api.* nova localhost
81 Run Keyword If 2 < ${NUM_CONTROL_NODES} Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_api.*
82 ... nova ${HAPROXY_HOSTNAME} nova
83 Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_cell0.* nova ${host_name}
85 Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_cell0.* nova localhost
87 Run Keyword If 2 < ${NUM_CONTROL_NODES} Grant Privileges To Mysql Database ${os_node_cxn} ${mysql_user} ${mysql_pass} nova_cell0.*
88 ... nova ${HAPROXY_HOSTNAME} nova
90 Create Openstack Elements
91 [Arguments] ${host_name}
92 Create User nova default nova rc_file=/tmp/stackrc
93 Role Add service nova admin rc_file=/tmp/stackrc
94 Create Service nova "Compute service" compute rc_file=/tmp/stackrc
95 Create Endpoint RegionOne ${host_name} compute public 8774/v2.1 rc_file=/tmp/stackrc
96 Create Endpoint RegionOne ${host_name} compute internal 8774/v2.1 rc_file=/tmp/stackrc
97 Create Endpoint RegionOne ${host_name} compute admin 8774/v2.1 rc_file=/tmp/stackrc
98 Create User placement default placement rc_file=/tmp/stackrc
99 Role Add service placement admin rc_file=/tmp/stackrc
100 Create Service placement "Plaement API" placement rc_file=/tmp/stackrc
101 Create Endpoint RegionOne ${host_name} placement public 8778 rc_file=/tmp/stackrc
102 Create Endpoint RegionOne ${host_name} placement internal 8778 rc_file=/tmp/stackrc
103 Create Endpoint RegionOne ${host_name} placement admin 8778 rc_file=/tmp/stackrc
105 Install Configure Nova API
106 [Arguments] ${os_node_cxn} ${host_ip} ${host_name}
107 Run Keyword If '${OS_APPS_PRE_INSTALLED}' == 'no' Install Rpm Package ${os_node_cxn} openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api
108 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT enabled_apis "osapi_compute,metadata"
109 Run Keyword If 2 < ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT transport_url
110 ... "rabbit://openstack:rabbit@${OS_CONTROL_1_HOSTNAME},openstack:rabbit@${OS_CONTROL_2_HOSTNAME},openstack:rabbit@${OS_CONTROL_3_HOSTNAME}"
111 Run Keyword If 2 > ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT transport_url
112 ... "rabbit://openstack:rabbit@${host_name}"
113 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT my_ip ${host_ip}
114 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT use_neutron True
115 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
116 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf api_database connection "mysql+pymysql://nova:nova@${host_name}/nova_api"
117 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf database connection "mysql+pymysql://nova:nova@${host_name}/nova"
118 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf api auth_strategy keystone
119 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken auth_uri http://${host_name}:5000
120 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken auth_url http://${host_name}:35357
121 Run Keyword If 2 < ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken memcached_servers
122 ... ${OS_CONTROL_1_IP}:11211,${OS_CONTROL_2_IP}:11211,${OS_CONTROL_3_IP}:11211
123 Run Keyword If 2 > ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken memcached_servers
124 ... ${host_name}:11211
125 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken auth_type password
126 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken project_domain_name default
127 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken user_domain_name default
128 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken project_name service
129 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken username nova
130 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken password nova
131 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf vnc enabled false
132 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf glance api_servers http://${host_name}:9292
133 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
134 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement os_region_name RegionOne
135 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement project_domain_name Default
136 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement user_domain_name Default
137 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement project_name service
138 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement auth_type password
139 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement auth_url http://${host_name}:35357/v3
140 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement username placement
141 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement password placement
142 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf scheduler discover_hosts_in_cells_interval 40
143 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_messaging_rabbit rabbit_max_retries 0
144 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_messaging_rabbit rabbit_ha_queues true
145 Workaround Packaging Problem ${os_node_cxn}
146 Run Command ${os_node_cxn} cat /tmp/nova_workaround.xml | sudo tee -a /etc/httpd/conf.d/00-nova-placement-api.conf
147 Restart Service ${os_node_cxn} httpd
150 [Arguments] ${os_node_cxn}
151 Run Command As User ${os_node_cxn} "nova-manage api_db sync" nova
152 Run Command As User ${os_node_cxn} "nova-manage cell_v2 map_cell0" nova
153 Run Command As User ${os_node_cxn} "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
154 Run Command As User ${os_node_cxn} "nova-manage db sync" nova
155 Run Command As User ${os_node_cxn} "nova-manage cell_v2 list_cells" nova
158 [Arguments] ${os_node_cxn}
159 Enable Service ${os_node_cxn} openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
160 Start Service ${os_node_cxn} openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
162 Install Configure Nova Compute
163 [Arguments] ${os_node_cxn} ${host_ip}
164 Run Keyword If '${OS_APPS_PRE_INSTALLED}' == 'no' Install Rpm Package ${os_node_cxn} openstack-nova-compute nfs-utils
165 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT enabled_apis "osapi_compute,metadata"
166 Run Keyword If 2 < ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT transport_url
167 ... "rabbit://openstack:rabbit@${OS_CONTROL_1_HOSTNAME},openstack:rabbit@${OS_CONTROL_2_HOSTNAME},openstack:rabbit@${OS_CONTROL_3_HOSTNAME}"
168 Run Keyword If 2 > ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT transport_url
169 ... "rabbit://openstack:rabbit@${OS_CONTROL_1_HOSTNAME}"
170 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_messaging_rabbit rabbit_max_retries 0
171 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_messaging_rabbit rabbit_ha_queues true
172 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT my_ip ${host_ip}
173 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT use_neutron True
174 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
175 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf api auth_strategy keystone
176 Run Keyword If 2 > ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken auth_uri
177 ... http://${OS_CONTROL_1_HOSTNAME}:5000
178 Run Keyword If 2 < ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken auth_uri
179 ... http://${HAPROXY_HOSTNAME}:5000
180 Run Keyword If 2 > ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken auth_url
181 ... http://${OS_CONTROL_1_HOSTNAME}:35357
182 Run Keyword If 2 < ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken auth_url
183 ... http://${HAPROXY_HOSTNAME}:35357
184 Run Keyword If 2 < ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken memcached_servers
185 ... ${OS_CONTROL_1_IP}:11211,${OS_CONTROL_2_IP}:11211,${OS_CONTROL_3_IP}:11211
186 Run Keyword If 2 > ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken memcached_servers
187 ... ${OS_CONTROL_1_HOSTNAME}:11211
188 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken auth_type password
189 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken project_domain_name default
190 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken user_domain_name default
191 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken project_name service
192 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken username nova
193 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf keystone_authtoken password nova
194 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf vnc enabled false
195 Run Keyword If 2 < ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf glance api_servers
196 ... http://${HAPROXY_HOSTNAME}:9292
197 Run Keyword If 2 > ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf glance api_servers
198 ... http://${OS_CONTROL_1_HOSTNAME}:9292
199 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
200 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement os_region_name RegionOne
201 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement project_domain_name Default
202 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement user_domain_name Default
203 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement project_name service
204 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement auth_type password
205 Run Keyword If 2 > ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement auth_url
206 ... http://${OS_CONTROL_1_HOSTNAME}:35357/v3
207 Run Keyword If 2 < ${NUM_CONTROL_NODES} Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement auth_url
208 ... http://${HAPROXY_HOSTNAME}:35357/v3
209 Enable Service ${os_node_cxn} rpcbind
210 Start Service ${os_node_cxn} rpcbind
211 Run Command ${os_node_cxn} sudo mkdir -p /var/lib/nova/instances_live_migration
212 Run Keyword If 2 < ${NUM_CONTROL_NODES} Run Command ${os_node_cxn} sudo mount -t nfs ${HAPROXY_IP}:/instances /var/lib/nova/instances_live_migration
213 Run Keyword If 2 > ${NUM_CONTROL_NODES} Run Command ${os_node_cxn} sudo mount -t nfs ${ROBOT_VM_IP}:/instances /var/lib/nova/instances_live_migration
214 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement username placement
215 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf placement password placement
216 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf libvirt virt_type qemu
217 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_messaging_rabbit rabbit_max_retries 0
218 Crudini Edit ${os_node_cxn} /etc/nova/nova.conf oslo_messaging_rabbit rabbit_ha_queues true
219 Chown File ${os_node_cxn} /var/lib/nova/instances nova nova
220 Enable Service ${os_node_cxn} openstack-nova-compute libvirtd
221 Start Service ${os_node_cxn} openstack-nova-compute libvirtd