Fix manila update, upgrade, and FFU tasks

Manila has a similar service architecture to Cinder and the
latter has received several fixes for update, upgrade, and FFU
tasks that are missing in Manila.

Align these tasks in the Manila services with Cinder versions
of the same.

Closes-Bug: #1784032

Change-Id: Ifae95bae859a301e6bcf67910cd9140f51584bb3
This commit is contained in:
Tom Barron 2018-07-27 11:51:47 -04:00
parent e87fcba49d
commit 0811ccbc54
4 changed files with 150 additions and 7 deletions

View File

@ -157,3 +157,35 @@ outputs:
- name: Stop and disable manila_api service
when: manila_api_enabled|bool
service: name=openstack-manila-api state=stopped enabled=no
fast_forward_upgrade_tasks:
- name: Check if manila_api is deployed
command: systemctl is-enabled --quiet openstack-manila-api
ignore_errors: True
register: manila_api_enabled_result
when:
- step|int == 0
- release == 'ocata'
- name: Set fact manila_api_enabled
set_fact:
manila_api_enabled: "{{ manila_api_enabled_result.rc == 0 }}"
when:
- step|int == 0
- release == 'ocata'
- name: Stop openstack-manila-api
service: name=openstack-manila-api state=stopped
when:
- step|int == 1
- release == 'ocata'
- manila_api_enabled|bool
- name: manila package update
package:
name: 'openstack-manila*'
state: latest
when:
- step|int == 6
- is_bootstrap_node|bool
- name: Manila db sync
command: manila-manage db sync
when:
- step|int == 8
- is_bootstrap_node|bool

View File

@ -133,3 +133,23 @@ outputs:
- name: Stop and disable manila_scheduler service
when: manila_scheduler_enabled|bool
service: name=openstack-manila-scheduler state=stopped enabled=no
fast_forward_upgrade_tasks:
- name: Check if manila_scheduler is deployed
command: systemctl is-enabled --quiet openstack-manila-scheduler
ignore_errors: True
register: manila_scheduler_enabled_result
when:
- step|int == 0
- release == 'ocata'
- name: Set fact manila_scheduler_enabled
set_fact:
manila_scheduler_enabled: "{{ manila_scheduler_enabled_result.rc == 0 }}"
when:
- step|int == 0
- release == 'ocata'
- name: Stop openstack-manila-scheduler
service: name=openstack-maniila-scheduler state=stopped enabled=no
when:
- step|int == 1
- release == 'ocata'
- manila_scheduler_enabled|bool

View File

@ -82,7 +82,7 @@ outputs:
# BEGIN DOCKER SETTINGS
puppet_config:
config_volume: manila
puppet_tags: manila_config
puppet_tags: manila_config,file,concat,file_line
step_config:
list_join:
- "\n"
@ -160,3 +160,23 @@ outputs:
- name: Stop and disable manila_share service
when: manila_share_enabled|bool
service: name=openstack-manila-share state=stopped enabled=no
fast_forward_upgrade_tasks:
- name: Check if manila_share is deployed
command: systemctl is-enabled --quiet openstack-manila-share
ignore_errors: True
register: manila_share_enabled_result
when:
- step|int == 0
- release == 'ocata'
- name: Set fact manila_share_enabled
set_fact:
manila_share_enabled: "{{ manila_share_enabled_result.rc == 0 }}"
when:
- step|int == 0
- release == 'ocata'
- name: Stop openstack-manila-share
service: name=openstack-manila-share state=stopped enabled=no
when:
- step|int == 1
- release == 'ocata'
- manila_share_enabled|bool

View File

@ -225,6 +225,10 @@ outputs:
Log files from manila containers can be found under
/var/log/containers/manila and /var/log/containers/httpd/manila-api.
ignore_errors: true
- name: ensure ceph configurations exist
file:
path: /etc/ceph
state: directory
update_tasks:
- name: Manila-Share fetch and retag container image for pacemaker
when: step|int == 2
@ -262,12 +266,13 @@ outputs:
set_fact:
manila_share_docker_image_latest: *manila_share_image_pcmklatest
- name: Check for Manila-Share Kolla configuration
stat:
path: /var/lib/config-data/puppet-generated/manila
command: grep '^share_driver[ \t]*=' /var/lib/config-data/puppet-generated/manila/etc/manila/manila.conf
changed_when: no
ignore_errors: true
register: manila_share_kolla_config
- name: Check if Manila-Share is already containerized
set_fact:
manila_share_containerized: "{{manila_share_kolla_config.stat.isdir | default(false)}}"
manila_share_containerized: "{{manila_share_kolla_config|succeeded}}"
- name: Prepare the switch to new Manila-Share container image name in pacemaker
when: manila_share_containerized|bool
block:
@ -285,14 +290,47 @@ outputs:
ignore_errors: true
register: manila_share_pcs_res_result
- name: Set fact manila_share_pcs_res
set_fact: "{{manila_share_pcs_res_result|succeeded}}"
set_fact:
manila_share_pcs_res: "{{manila_share_pcs_res_result|succeeded}}"
- name: Manila-Share baremetal to container upgrade tasks
when:
- step|int == 1
- not manila_share_containerized|bool
block:
- name: Stop and disable manila_share service
service: name=openstack-manila-share state=stopped enabled=no
- name: get bootstrap nodeid
tags: common
command: hiera -c /etc/puppet/hiera.yaml bootstrap_nodeid
register: bootstrap_node
- name: set is_bootstrap_node fact
tags: common
set_fact: is_bootstrap_node={{bootstrap_node.stdout|lower == ansible_hostname|lower}}
- name: Check cluster resource status
pacemaker_resource:
resource: openstack-manila-share
state: show
check_mode: false
ignore_errors: true
register: manila_share_res
- when: (is_bootstrap_node) and (manila_share_res|succeeded)
block:
- name: Disable the openstack-manila-share cluster resource
pacemaker_resource:
resource: openstack-manila-share
state: disable
wait_for_resource: true
register: output
retries: 5
until: output.rc == 0
- name: Delete the stopped openstack-manila-share cluster resource.
pacemaker_resource:
resource: openstack-manila-share
state: delete
wait_for_resource: true
register: output
retries: 5
until: output.rc == 0
- name: Disable manila_share service from boot
service: name=openstack-manila-share enabled=no
- name: Update openstack-manila-share pcs resource bundle for new container image
when:
- step|int == 1
@ -311,6 +349,7 @@ outputs:
- name: Update the Manila-Share bundle to use the new container image name
command: "pcs resource bundle update openstack-manila-share container image={{manila_share_docker_image_latest}}"
- name: Enable the Manila-Share cluster resource
when:
pacemaker_resource:
resource: openstack-manila-share
state: enable
@ -323,3 +362,35 @@ outputs:
- step|int == 3
- manila_share_containerized|bool
block: *manila_share_fetch_retag_container_tasks
fast_forward_upgrade_tasks:
- name: Check cluster resource status
pacemaker_resource:
resource: openstack-manila-share
state: show
check_mode: false
ignore_errors: true
register: manila_share_res_result
when:
- step|int == 0
- release == 'ocata'
- is_bootstrap_node|bool
- name: Set fact manila_share_res
set_fact:
manila_share_res: "{{ manila_share_res_result.rc == 0 }}"
when:
- step|int == 0
- release == 'ocata'
- is_bootstrap_node|bool
- name: Disable the openstack-manila-share cluster resource
pacemaker_resource:
resource: openstack-manila-share
state: disable
wait_for_resource: true
register: manila_share_output
retries: 5
until: manila_share_output.rc == 0
when:
- step|int == 2
- release == 'ocata'
- is_bootstrap_node|bool
- manila_share_res|bool