Skip to content
Snippets Groups Projects
Commit 8daad1ab authored by Zuul's avatar Zuul Committed by Gerrit Code Review
Browse files

Merge "Wait for all compute services before cell discovery"

parents dfa1a384 c38dd767
No related branches found
No related tags found
No related merge requests found
---
- name: Waiting for nova-compute service up
# We need to wait for all expected compute services to register before running
# cells v2 host discovery. This includes virtualised compute services and
# ironic compute services.
# Work with --limit by including only hosts in ansible_play_batch.
- name: Build a list of expected compute service hosts
vars:
# For virt, use ansible_nodename rather than inventory_hostname, since this
# is similar to what nova uses internally as its default for the
# [DEFAULT] host config option.
virt_compute_service_hosts: >-
{{ groups['compute'] |
intersect(ansible_play_batch) |
map('extract', hostvars, 'ansible_nodename') |
list }}
# For ironic, use {{ansible_hostname}}-ironic since this is what we
# configure for [DEFAULT] host in nova.conf.
ironic_compute_service_hosts: >-
{{ (groups['nova-compute-ironic'] |
intersect(ansible_play_batch) |
map('extract', hostvars, 'ansible_hostname') |
map('regex_replace', '^(.*)$', '\1-ironic') |
list)
if enable_ironic | bool else [] }}
set_fact:
expected_compute_service_hosts: "{{ virt_compute_service_hosts + ironic_compute_service_hosts }}"
run_once: True
delegate_to: "{{ groups['nova-api'][0] }}"
- name: Waiting for nova-compute services to register themselves
vars:
# A list containing the 'Host' field of compute services that have
# registered themselves. Don't exclude compute services that are disabled
# since these could have been explicitly disabled by the operator. While we
# could exclude services that are down, the nova-manage cell_v2
# discover_hosts does not do this so let's not block on it here.
found_compute_service_hosts: >-
{{ nova_compute_services.stdout |
from_json |
map(attribute='Host') |
list }}
become: true
command: >
docker exec kolla_toolbox openstack
......@@ -12,7 +51,7 @@
--os-password {{ keystone_admin_password }}
--os-user-domain-name {{ openstack_auth.domain_name }}
--os-region-name {{ openstack_region_name }}
compute service list -f json --service nova-compute
compute service list --format json --column Host --service nova-compute
register: nova_compute_services
changed_when: false
run_once: True
......@@ -21,7 +60,7 @@
delay: 10
until:
- nova_compute_services is success
- nova_compute_services.stdout | from_json | length != 0
- found_compute_service_hosts is superset(expected_compute_service_hosts)
# TODO(yoctozepto): no need to do --by-service if ironic not used
- name: Discover nova hosts
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment