---
- include_tasks: clone.yml
  when: nova_dev_mode | bool

- import_tasks: version-check.yml

- import_tasks: config-host.yml

- import_tasks: config.yml

- import_tasks: check-containers.yml

- include_tasks: config-nova-fake.yml
  when:
    - enable_nova_fake | bool
    - inventory_hostname in groups[nova_cell_compute_group]

- name: Flush handlers
  meta: flush_handlers

- import_tasks: wait_discover_computes.yml
  vars:
    # List of virtualised compute hypervisors in this Ansible play batch.
    virt_computes_in_batch: >-
      {{ groups[nova_cell_compute_group] |
         intersect(ansible_play_batch) |
         list }}
    # List of iroinc compute hosts in this Ansible play batch.
    ironic_computes_in_batch: >-
      {{ (groups[nova_cell_compute_ironic_group] |
          intersect(ansible_play_batch) |
          list)
         if nova_cell_services['nova-compute-ironic'].enabled | bool else [] }}
    all_computes_in_batch: "{{ virt_computes_in_batch + ironic_computes_in_batch }}"
  when:
    # Run discovery when one or more compute hosts are in the Ansible batch,
    # and there is a cell conductor in the inventory to delegate to.
    - all_computes_in_batch | length > 0
    - groups[nova_cell_conductor_group] | length > 0
