Fix logic of discovering hosts by service
For quite some time, we relate usage of --by-service flag for nova-manage cell_v2 discover_hosts command to the used nova_virt_type. However, we run db_post_setup tasks only once and delegating to the conductor host. With latest changes to the logic, when this task in included from the playbook level it makes even less sense, since definition of nova_virt_type for conductor is weird and wrong. Instead, we attempt to detect if ironic is in use by checking hostvars of all compute nodes for that. It will include host_vars, group_vars, all sort of extra variables, etc. Thus, ironic hosts should be better discovered now with nova-manage command. Related-Bug: #2034583 Change-Id: I3deea859a4017ff96919290ba50cb375c0f960ea
This commit is contained in:
parent
32867052d7
commit
4aa65eb606
@ -311,6 +311,7 @@ nova_console_type: "{{ (ansible_facts['architecture'] == 'aarch64') | ternary('s
|
||||
## Nova ironic console
|
||||
# Set the console type. Presently the only options are ["serialconsole", "disabled"].
|
||||
nova_ironic_console_type: "disabled"
|
||||
nova_ironic_used: "{{ _nova_ironic_used }}"
|
||||
|
||||
## Nova console proxies
|
||||
# Set the console proxy types.
|
||||
|
@ -22,7 +22,7 @@
|
||||
- name: Perform a cell_v2 discover
|
||||
command: >-
|
||||
{{ _db_nova_bin }}/nova-manage cell_v2 discover_hosts{{ (debug | bool) | ternary(' --verbose', '') }}{{
|
||||
(nova_virt_type == 'ironic') | ternary(' --by-service', '') }}
|
||||
(nova_ironic_used | bool) | ternary(' --by-service', '') }}
|
||||
become: yes
|
||||
become_user: "{{ _db_nova_system_user_name }}"
|
||||
changed_when: false
|
||||
|
@ -33,6 +33,15 @@ _nova_oslomsg_notify_vhost_conf: >-
|
||||
)
|
||||
}}
|
||||
|
||||
_nova_ironic_used: |-
|
||||
{% set _virt_types = [] %}
|
||||
{% for hv in groups[nova_services['nova-compute']['group']] %}
|
||||
{% if 'nova_virt_type' in hostvars[hv] %}
|
||||
{% set _ = _virt_types.append(hostvars[hv]['nova_virt_type']) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{{ ('ironic' in _virt_types | unique) }}
|
||||
|
||||
nova_venv_packages: |-
|
||||
{%- set pkg_list = nova_pip_packages | union(nova_user_pip_packages) %}
|
||||
{%- if nova_oslomsg_amqp1_enabled | bool %}
|
||||
|
Loading…
x
Reference in New Issue
Block a user