be88a7c5349528fb30a4d24daf85920983b17d0a
[integration/test.git] / tools / deployment / openstack_ha / deploy / 05_nova_setup.robot
1 *** Settings ***
2 Documentation       Test suite to verify packet flows between vm instances.
3
4 Library             SSHLibrary
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
11
12 Suite Setup         OpenStackInstallUtils.Get All Ssh Connections
13 Suite Teardown      Close All Connections
14
15
16 *** Test Cases ***
17 Install Nova
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}
21     END
22     IF    2 < ${NUM_CONTROL_NODES}
23         Create And Configure Nova Db Other Nodes    ${OS_CONTROL_3_IP}    root    mysql    ${OS_CONTROL_3_HOSTNAME}
24     END
25     IF    3 < ${NUM_CONTROL_NODES}
26         Create And Configure Nova Db Other Nodes    ${OS_CONTROL_4_IP}    root    mysql    ${OS_CONTROL_4_HOSTNAME}
27     END
28     IF    4 < ${NUM_CONTROL_NODES}
29         Create And Configure Nova Db Other Nodes    ${OS_CONTROL_5_IP}    root    mysql    ${OS_CONTROL_5_HOSTNAME}
30     END
31     IF    2 > ${NUM_CONTROL_NODES}
32         Create Openstack Elements    ${OS_CONTROL_1_HOSTNAME}
33     END
34     IF    2 < ${NUM_CONTROL_NODES}
35         Create Openstack Elements    ${HAPROXY_HOSTNAME}
36     END
37     IF    2 > ${NUM_CONTROL_NODES}
38         Install Configure Nova API    ${OS_CONTROL_1_IP}    ${OS_CONTROL_1_IP}    ${OS_CONTROL_1_HOSTNAME}
39     END
40     IF    2 < ${NUM_CONTROL_NODES}
41         Install Configure Nova API    ${OS_CONTROL_1_IP}    ${OS_CONTROL_1_IP}    ${HAPROXY_HOSTNAME}
42     END
43     IF    2 < ${NUM_CONTROL_NODES}
44         Install Configure Nova API    ${OS_CONTROL_2_IP}    ${OS_CONTROL_2_IP}    ${HAPROXY_HOSTNAME}
45     END
46     IF    2 < ${NUM_CONTROL_NODES}
47         Install Configure Nova API    ${OS_CONTROL_3_IP}    ${OS_CONTROL_3_IP}    ${HAPROXY_HOSTNAME}
48     END
49     IF    3 < ${NUM_CONTROL_NODES}
50         Install Configure Nova API    ${OS_CONTROL_4_IP}    ${OS_CONTROL_4_IP}    ${HAPROXY_HOSTNAME}
51     END
52     IF    4 < ${NUM_CONTROL_NODES}
53         Install Configure Nova API    ${OS_CONTROL_5_IP}    ${OS_CONTROL_5_IP}    ${HAPROXY_HOSTNAME}
54     END
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
61     END
62     IF    2 < ${NUM_CONTROL_NODES}
63         Generic HAProxy Entry    ${HAPROXY_IP}    ${HAPROXY_IP}    8775    nova_metadata_api_cluster
64     END
65     IF    2 < ${NUM_CONTROL_NODES}
66         Generic HAProxy Entry    ${HAPROXY_IP}    ${HAPROXY_IP}    8778    nova_placement_service
67     END
68     IF    1 > ${NUM_COMPUTE_NODES}
69         Install Configure Nova Compute    ${OS_CONTROL_1_IP}    ${OS_CONTROL_1_IP}
70     END
71     IF    0 < ${NUM_COMPUTE_NODES}
72         Install Configure Nova Compute    ${OS_COMPUTE_1_IP}    ${OS_COMPUTE_1_IP}
73     END
74     IF    1 < ${NUM_COMPUTE_NODES}
75         Install Configure Nova Compute    ${OS_COMPUTE_2_IP}    ${OS_COMPUTE_2_IP}
76     END
77
78
79 *** Keywords ***
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
84     ...    ${os_node_cxn}
85     ...    ${mysql_user}
86     ...    ${mysql_pass}
87     ...    nova.*
88     ...    nova
89     ...    ${host_name}
90     ...    nova
91     Grant Privileges To Mysql Database
92     ...    ${os_node_cxn}
93     ...    ${mysql_user}
94     ...    ${mysql_pass}
95     ...    nova.*
96     ...    nova
97     ...    localhost
98     ...    nova
99     IF    2 < ${NUM_CONTROL_NODES}
100         Grant Privileges To Mysql Database
101         ...    ${os_node_cxn}
102         ...    ${mysql_user}
103         ...    ${mysql_pass}
104         ...    nova.*
105         ...    nova
106         ...    ${HAPROXY_HOSTNAME}
107         ...    nova
108     END
109     Create Database for Mysql    ${os_node_cxn}    ${mysql_user}    ${mysql_pass}    nova_api
110     Grant Privileges To Mysql Database
111     ...    ${os_node_cxn}
112     ...    ${mysql_user}
113     ...    ${mysql_pass}
114     ...    nova_api.*
115     ...    nova
116     ...    ${host_name}
117     ...    nova
118     Grant Privileges To Mysql Database
119     ...    ${os_node_cxn}
120     ...    ${mysql_user}
121     ...    ${mysql_pass}
122     ...    nova_api.*
123     ...    nova
124     ...    localhost
125     ...    nova
126     IF    2 < ${NUM_CONTROL_NODES}
127         Grant Privileges To Mysql Database
128         ...    ${os_node_cxn}
129         ...    ${mysql_user}
130         ...    ${mysql_pass}
131         ...    nova_api.*
132         ...    nova
133         ...    ${HAPROXY_HOSTNAME}
134         ...    nova
135     END
136     Create Database for Mysql    ${os_node_cxn}    ${mysql_user}    ${mysql_pass}    nova_cell0
137     Grant Privileges To Mysql Database
138     ...    ${os_node_cxn}
139     ...    ${mysql_user}
140     ...    ${mysql_pass}
141     ...    nova_cell0.*
142     ...    nova
143     ...    ${host_name}
144     ...    nova
145     Grant Privileges To Mysql Database
146     ...    ${os_node_cxn}
147     ...    ${mysql_user}
148     ...    ${mysql_pass}
149     ...    nova_cell0.*
150     ...    nova
151     ...    localhost
152     ...    nova
153     IF    2 < ${NUM_CONTROL_NODES}
154         Grant Privileges To Mysql Database
155         ...    ${os_node_cxn}
156         ...    ${mysql_user}
157         ...    ${mysql_pass}
158         ...    nova_cell0.*
159         ...    nova
160         ...    ${HAPROXY_HOSTNAME}
161         ...    nova
162     END
163
164 Workaround Packaging Problem
165     [Arguments]    ${os_node_cxn}
166     Switch Connection    ${os_node_cxn}
167     Put File    ${CURDIR}/nova_workaround.xml    /tmp/
168
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
172     ...    ${os_node_cxn}
173     ...    ${mysql_user}
174     ...    ${mysql_pass}
175     ...    nova.*
176     ...    nova
177     ...    ${host_name}
178     ...    nova
179     Grant Privileges To Mysql Database
180     ...    ${os_node_cxn}
181     ...    ${mysql_user}
182     ...    ${mysql_pass}
183     ...    nova.*
184     ...    nova
185     ...    localhost
186     ...    nova
187     IF    2 < ${NUM_CONTROL_NODES}
188         Grant Privileges To Mysql Database
189         ...    ${os_node_cxn}
190         ...    ${mysql_user}
191         ...    ${mysql_pass}
192         ...    nova.*
193         ...    nova
194         ...    ${HAPROXY_HOSTNAME}
195         ...    nova
196     END
197     Grant Privileges To Mysql Database
198     ...    ${os_node_cxn}
199     ...    ${mysql_user}
200     ...    ${mysql_pass}
201     ...    nova_api.*
202     ...    nova
203     ...    ${host_name}
204     ...    nova
205     Grant Privileges To Mysql Database
206     ...    ${os_node_cxn}
207     ...    ${mysql_user}
208     ...    ${mysql_pass}
209     ...    nova_api.*
210     ...    nova
211     ...    localhost
212     ...    nova
213     IF    2 < ${NUM_CONTROL_NODES}
214         Grant Privileges To Mysql Database
215         ...    ${os_node_cxn}
216         ...    ${mysql_user}
217         ...    ${mysql_pass}
218         ...    nova_api.*
219         ...    nova
220         ...    ${HAPROXY_HOSTNAME}
221         ...    nova
222     END
223     Grant Privileges To Mysql Database
224     ...    ${os_node_cxn}
225     ...    ${mysql_user}
226     ...    ${mysql_pass}
227     ...    nova_cell0.*
228     ...    nova
229     ...    ${host_name}
230     ...    nova
231     Grant Privileges To Mysql Database
232     ...    ${os_node_cxn}
233     ...    ${mysql_user}
234     ...    ${mysql_pass}
235     ...    nova_cell0.*
236     ...    nova
237     ...    localhost
238     ...    nova
239     IF    2 < ${NUM_CONTROL_NODES}
240         Grant Privileges To Mysql Database
241         ...    ${os_node_cxn}
242         ...    ${mysql_user}
243         ...    ${mysql_pass}
244         ...    nova_cell0.*
245         ...    nova
246         ...    ${HAPROXY_HOSTNAME}
247         ...    nova
248     END
249
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
264
265 Install Configure Nova API
266     [Arguments]    ${os_node_cxn}    ${host_ip}    ${host_name}
267     IF    '${OS_APPS_PRE_INSTALLED}' == 'no'
268         Install Rpm Package
269         ...    ${os_node_cxn}
270         ...    openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api
271     END
272     Crudini Edit    ${os_node_cxn}    /etc/nova/nova.conf    DEFAULT    enabled_apis    "osapi_compute,metadata"
273     IF    2 < ${NUM_CONTROL_NODES}
274         Crudini Edit
275         ...    ${os_node_cxn}
276         ...    /etc/nova/nova.conf
277         ...    DEFAULT
278         ...    transport_url
279         ...    "rabbit://openstack:rabbit@${OS_CONTROL_1_HOSTNAME},openstack:rabbit@${OS_CONTROL_2_HOSTNAME},openstack:rabbit@${OS_CONTROL_3_HOSTNAME}"
280     END
281     IF    2 > ${NUM_CONTROL_NODES}
282         Crudini Edit
283         ...    ${os_node_cxn}
284         ...    /etc/nova/nova.conf
285         ...    DEFAULT
286         ...    transport_url
287         ...    "rabbit://openstack:rabbit@${host_name}"
288     END
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
291     Crudini Edit
292     ...    ${os_node_cxn}
293     ...    /etc/nova/nova.conf
294     ...    DEFAULT
295     ...    firewall_driver
296     ...    nova.virt.firewall.NoopFirewallDriver
297     Crudini Edit
298     ...    ${os_node_cxn}
299     ...    /etc/nova/nova.conf
300     ...    api_database
301     ...    connection
302     ...    "mysql+pymysql://nova:nova@${host_name}/nova_api"
303     Crudini Edit
304     ...    ${os_node_cxn}
305     ...    /etc/nova/nova.conf
306     ...    database
307     ...    connection
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
311     Crudini Edit
312     ...    ${os_node_cxn}
313     ...    /etc/nova/nova.conf
314     ...    keystone_authtoken
315     ...    auth_url
316     ...    http://${host_name}:35357
317     IF    2 < ${NUM_CONTROL_NODES}
318         Crudini Edit
319         ...    ${os_node_cxn}
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
324     END
325     IF    2 > ${NUM_CONTROL_NODES}
326         Crudini Edit
327         ...    ${os_node_cxn}
328         ...    /etc/nova/nova.conf
329         ...    keystone_authtoken
330         ...    memcached_servers
331         ...    ${host_name}:11211
332     END
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}
354     Run Command
355     ...    ${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
358
359 Sync Db
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
366
367 Start Nova Services
368     [Arguments]    ${os_node_cxn}
369     Enable Service
370     ...    ${os_node_cxn}
371     ...    openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
372     Start Service
373     ...    ${os_node_cxn}
374     ...    openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
375
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
380     END
381     Crudini Edit    ${os_node_cxn}    /etc/nova/nova.conf    DEFAULT    enabled_apis    "osapi_compute,metadata"
382     IF    2 < ${NUM_CONTROL_NODES}
383         Crudini Edit
384         ...    ${os_node_cxn}
385         ...    /etc/nova/nova.conf
386         ...    DEFAULT
387         ...    transport_url
388         ...    "rabbit://openstack:rabbit@${OS_CONTROL_1_HOSTNAME},openstack:rabbit@${OS_CONTROL_2_HOSTNAME},openstack:rabbit@${OS_CONTROL_3_HOSTNAME}"
389     END
390     IF    2 > ${NUM_CONTROL_NODES}
391         Crudini Edit
392         ...    ${os_node_cxn}
393         ...    /etc/nova/nova.conf
394         ...    DEFAULT
395         ...    transport_url
396         ...    "rabbit://openstack:rabbit@${OS_CONTROL_1_HOSTNAME}"
397     END
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
402     Crudini Edit
403     ...    ${os_node_cxn}
404     ...    /etc/nova/nova.conf
405     ...    DEFAULT
406     ...    firewall_driver
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}
410         Crudini Edit
411         ...    ${os_node_cxn}
412         ...    /etc/nova/nova.conf
413         ...    keystone_authtoken
414         ...    auth_uri
415         ...    http://${OS_CONTROL_1_HOSTNAME}:5000
416     END
417     IF    2 < ${NUM_CONTROL_NODES}
418         Crudini Edit
419         ...    ${os_node_cxn}
420         ...    /etc/nova/nova.conf
421         ...    keystone_authtoken
422         ...    auth_uri
423         ...    http://${HAPROXY_HOSTNAME}:5000
424     END
425     IF    2 > ${NUM_CONTROL_NODES}
426         Crudini Edit
427         ...    ${os_node_cxn}
428         ...    /etc/nova/nova.conf
429         ...    keystone_authtoken
430         ...    auth_url
431         ...    http://${OS_CONTROL_1_HOSTNAME}:35357
432     END
433     IF    2 < ${NUM_CONTROL_NODES}
434         Crudini Edit
435         ...    ${os_node_cxn}
436         ...    /etc/nova/nova.conf
437         ...    keystone_authtoken
438         ...    auth_url
439         ...    http://${HAPROXY_HOSTNAME}:35357
440     END
441     IF    2 < ${NUM_CONTROL_NODES}
442         Crudini Edit
443         ...    ${os_node_cxn}
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
448     END
449     IF    2 > ${NUM_CONTROL_NODES}
450         Crudini Edit
451         ...    ${os_node_cxn}
452         ...    /etc/nova/nova.conf
453         ...    keystone_authtoken
454         ...    memcached_servers
455         ...    ${OS_CONTROL_1_HOSTNAME}:11211
456     END
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}
465         Crudini Edit
466         ...    ${os_node_cxn}
467         ...    /etc/nova/nova.conf
468         ...    glance
469         ...    api_servers
470         ...    http://${HAPROXY_HOSTNAME}:9292
471     END
472     IF    2 > ${NUM_CONTROL_NODES}
473         Crudini Edit
474         ...    ${os_node_cxn}
475         ...    /etc/nova/nova.conf
476         ...    glance
477         ...    api_servers
478         ...    http://${OS_CONTROL_1_HOSTNAME}:9292
479     END
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}
487         Crudini Edit
488         ...    ${os_node_cxn}
489         ...    /etc/nova/nova.conf
490         ...    placement
491         ...    auth_url
492         ...    http://${OS_CONTROL_1_HOSTNAME}:35357/v3
493     END
494     IF    2 < ${NUM_CONTROL_NODES}
495         Crudini Edit
496         ...    ${os_node_cxn}
497         ...    /etc/nova/nova.conf
498         ...    placement
499         ...    auth_url
500         ...    http://${HAPROXY_HOSTNAME}:35357/v3
501     END
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}
506         Run Command
507         ...    ${os_node_cxn}
508         ...    sudo mount -t nfs ${HAPROXY_IP}:/instances /var/lib/nova/instances_live_migration
509     END
510     IF    2 > ${NUM_CONTROL_NODES}
511         Run Command
512         ...    ${os_node_cxn}
513         ...    sudo mount -t nfs ${ROBOT_VM_IP}:/instances /var/lib/nova/instances_live_migration
514     END
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