Merge "Reconfigure cinder service"
This commit is contained in:
commit
7f9ba5a477
79
ansible/roles/cinder/tasks/do_reconfigure.yml
Normal file
79
ansible/roles/cinder/tasks/do_reconfigure.yml
Normal file
@ -0,0 +1,79 @@
|
||||
---
|
||||
- name: Ensuring the containers up
|
||||
kolla_docker:
|
||||
name: "{{ item.name }}"
|
||||
action: "get_container_state"
|
||||
register: container_state
|
||||
failed_when: container_state.Running == false
|
||||
when: inventory_hostname in groups[item.group]
|
||||
with_items:
|
||||
- { name: cinder_api, group: cinder-api }
|
||||
- { name: cinder_scheduler, group: cinder-scheduler }
|
||||
- { name: cinder_volume, group: cinder-volume }
|
||||
- { name: cinder_backup, group: cinder-backup }
|
||||
|
||||
- include: config.yml
|
||||
|
||||
- name: Check the configs
|
||||
command: docker exec {{ item.name }} /usr/local/bin/kolla_set_configs --check
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
register: check_results
|
||||
when: inventory_hostname in groups[item.group]
|
||||
with_items:
|
||||
- { name: cinder_api, group: cinder-api }
|
||||
- { name: cinder_scheduler, group: cinder-scheduler }
|
||||
- { name: cinder_volume, group: cinder-volume }
|
||||
- { name: cinder_backup, group: cinder-backup }
|
||||
|
||||
# NOTE(jeffrey4l): when config_strategy == 'COPY_ALWAYS'
|
||||
# and container env['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE',
|
||||
# just remove the container and start again
|
||||
- name: Containers config strategy
|
||||
kolla_docker:
|
||||
name: "{{ item.name }}"
|
||||
action: "get_container_env"
|
||||
register: container_envs
|
||||
when: inventory_hostname in groups[item.group]
|
||||
with_items:
|
||||
- { name: cinder_api, group: cinder-api }
|
||||
- { name: cinder_scheduler, group: cinder-scheduler }
|
||||
- { name: cinder_volume, group: cinder-volume }
|
||||
- { name: cinder_backup, group: cinder-backup }
|
||||
|
||||
- name: Remove the containers
|
||||
kolla_docker:
|
||||
name: "{{ item[0]['name'] }}"
|
||||
action: "remove_container"
|
||||
register: remove_containers
|
||||
when:
|
||||
- config_strategy == "COPY_ONCE" or item[1]['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE'
|
||||
- item[2]['rc'] == 1
|
||||
- inventory_hostname in groups[item[0]['group']]
|
||||
with_together:
|
||||
- [{ name: cinder_api, group: cinder-api },
|
||||
{ name: cinder_scheduler, group: cinder-scheduler },
|
||||
{ name: cinder_volume, group: cinder-volume },
|
||||
{ name: cinder_backup, group: cinder-backup }]
|
||||
- container_envs.results
|
||||
- check_results.results
|
||||
|
||||
- include: start.yml
|
||||
when: remove_containers.changed
|
||||
|
||||
- name: Restart containers
|
||||
kolla_docker:
|
||||
name: "{{ item[0]['name'] }}"
|
||||
action: "restart_container"
|
||||
when:
|
||||
- config_strategy == 'COPY_ALWAYS'
|
||||
- item[1]['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE'
|
||||
- item[2]['rc'] == 1
|
||||
- inventory_hostname in groups[item[0]['group']]
|
||||
with_together:
|
||||
- [{ name: cinder_api, group: cinder-api },
|
||||
{ name: cinder_scheduler, group: cinder-scheduler },
|
||||
{ name: cinder_volume, group: cinder-volume },
|
||||
{ name: cinder_backup, group: cinder-backup }]
|
||||
- container_envs.results
|
||||
- check_results.results
|
@ -1 +1,7 @@
|
||||
---
|
||||
- include: do_reconfigure.yml
|
||||
serial: "30%"
|
||||
when: inventory_hostname in groups['cinder-api']
|
||||
or inventory_hostname in groups['cinder-scheduler']
|
||||
or inventory_hostname in groups['cinder-volume']
|
||||
or inventory_hostname in groups['cinder-backup']
|
||||
|
@ -282,9 +282,15 @@ def execute_config_check():
|
||||
dest = config_file.get('dest')
|
||||
perm = config_file.get('perm')
|
||||
owner = config_file.get('owner')
|
||||
optional = config_file.get('optional', False)
|
||||
if not os.path.exists(dest):
|
||||
LOG.error('Dest file not exist: %s', dest)
|
||||
sys.exit(1)
|
||||
if optional:
|
||||
LOG.info('Dest file does not exist, but is optional: %s',
|
||||
dest)
|
||||
return
|
||||
else:
|
||||
LOG.error('Dest file does not exist and is: %s', dest)
|
||||
sys.exit(1)
|
||||
# check content
|
||||
with open(source) as fp1, open(dest) as fp2:
|
||||
if fp1.read() != fp2.read():
|
||||
|
Loading…
Reference in New Issue
Block a user