Mariusz c68ed4dd51 Handle more return codes from nova-status upgrade check
In a single controller scenario, the "Upgrade status check result"
does nothing because the previous task can only succeed when
`nova-status upgrade check` returns code 0. This change allows this
command to fail, so that the value of returned code stored in
`nova_upgrade_check_stdout` can then be analysed.

This change also allows for warnings (rc 1) to pass.
Closes-Bug: 1834647

Change-Id: I6f5e37832f43f23604920b9d890cc505ca924ff9
2019-07-08 14:13:27 +01:00

30 lines
936 B
YAML

---
- name: Check nova upgrade status
become: true
command: docker exec -t nova_api nova-status upgrade check
register: nova_upgrade_check_stdout
when: inventory_hostname == groups['nova-api'][0]
failed_when: false
- name: Upgrade status check result
fail:
msg:
- "There was an upgrade status check failure!"
- "See the detail at https://docs.openstack.org/nova/latest/cli/nova-status.html#nova-status-checks"
vars:
first_nova_api_host: "{{ groups['nova-api'][0] }}"
when: hostvars[first_nova_api_host]['nova_upgrade_check_stdout']['rc'] not in [0, 1]
- include_tasks: legacy_upgrade.yml
when: not nova_enable_rolling_upgrade | bool
- include_tasks: rolling_upgrade.yml
when: nova_enable_rolling_upgrade | bool
# NOTE(jeffrey4l): Remove this task in U cycle.
- name: Remove nova-consoleauth container
become: true
kolla_docker:
action: "remove_container"
name: "nova_consoleauth"