4896031757
A small number of services set the recurse flag when they create their config directory. This can change permission of files within the directory, which are later set back to the original state. The side effect is that the service is then restarted, even though the net change to the config files amounts to nothing. The expected behaviour is that a service only restarts if the config *has* changed. This patch fixes this issue. Change-Id: Ib6f1ca7b416247f8d455fb25892f4a3b27de03ba Closes-Bug: 1800480
115 lines
3.4 KiB
YAML
115 lines
3.4 KiB
YAML
---
|
|
- name: Ensuring config directories exist
|
|
become: true
|
|
file:
|
|
path: "{{ node_config_directory }}/{{ item.key }}"
|
|
state: "directory"
|
|
owner: "{{ config_owner_user }}"
|
|
group: "{{ config_owner_group }}"
|
|
mode: "0770"
|
|
when:
|
|
- inventory_hostname in groups[item.value.group]
|
|
- item.value.enabled | bool
|
|
with_dict: "{{ heat_services }}"
|
|
|
|
- name: Check if policies shall be overwritten
|
|
local_action: stat path="{{ item }}"
|
|
run_once: True
|
|
register: heat_policy
|
|
with_first_found:
|
|
- files: "{{ supported_policy_format_list }}"
|
|
paths:
|
|
- "{{ node_custom_config }}/heat/"
|
|
skip: true
|
|
|
|
- name: Set heat policy file
|
|
set_fact:
|
|
heat_policy_file: "{{ heat_policy.results.0.stat.path | basename }}"
|
|
heat_policy_file_path: "{{ heat_policy.results.0.stat.path }}"
|
|
when:
|
|
- heat_policy.results
|
|
|
|
- name: Copying over config.json files for services
|
|
become: true
|
|
template:
|
|
src: "{{ item.key }}.json.j2"
|
|
dest: "{{ node_config_directory }}/{{ item.key }}/config.json"
|
|
mode: "0660"
|
|
register: heat_config_jsons
|
|
when:
|
|
- item.value.enabled | bool
|
|
- inventory_hostname in groups[item.value.group]
|
|
with_dict: "{{ heat_services }}"
|
|
notify:
|
|
- Restart heat-api container
|
|
- Restart heat-api-cfn container
|
|
- Restart heat-engine container
|
|
|
|
- name: Copying over the heat-engine environment file
|
|
become: true
|
|
template:
|
|
src: "_deprecated.yaml"
|
|
dest: "{{ node_config_directory }}/{{ item }}/_deprecated.yaml"
|
|
mode: "0660"
|
|
with_items:
|
|
- "heat-engine"
|
|
|
|
- name: Copying over heat.conf
|
|
become: true
|
|
vars:
|
|
service_name: "{{ item.key }}"
|
|
merge_configs:
|
|
sources:
|
|
- "{{ role_path }}/templates/heat.conf.j2"
|
|
- "{{ node_custom_config }}/global.conf"
|
|
- "{{ node_custom_config }}/heat.conf"
|
|
- "{{ node_custom_config }}/heat/{{ item.key }}.conf"
|
|
- "{{ node_custom_config }}/heat/{{ inventory_hostname }}/heat.conf"
|
|
dest: "{{ node_config_directory }}/{{ item.key }}/heat.conf"
|
|
mode: "0660"
|
|
register: heat_confs
|
|
when:
|
|
- item.value.enabled | bool
|
|
- inventory_hostname in groups[item.value.group]
|
|
with_dict: "{{ heat_services }}"
|
|
notify:
|
|
- Restart heat-api container
|
|
- Restart heat-api-cfn container
|
|
- Restart heat-engine container
|
|
|
|
- name: Copying over existing policy file
|
|
become: true
|
|
template:
|
|
src: "{{ heat_policy_file_path }}"
|
|
dest: "{{ node_config_directory }}/{{ item.key }}/{{ heat_policy_file }}"
|
|
mode: "0660"
|
|
register: heat_policy_overwriting
|
|
when:
|
|
- heat_policy_file is defined
|
|
- inventory_hostname in groups[item.value.group]
|
|
with_dict: "{{ heat_services }}"
|
|
notify:
|
|
- Restart heat-api container
|
|
- Restart heat-api-cfn container
|
|
- Restart heat-engine container
|
|
|
|
- name: Check heat containers
|
|
become: true
|
|
kolla_docker:
|
|
action: "compare_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
name: "{{ item.value.container_name }}"
|
|
image: "{{ item.value.image }}"
|
|
volumes: "{{ item.value.volumes|reject('equalto', '')|list }}"
|
|
dimensions: "{{ item.value.dimensions }}"
|
|
register: check_heat_containers
|
|
when:
|
|
- kolla_action != "config"
|
|
- inventory_hostname in groups[item.value.group]
|
|
- item.value.enabled | bool
|
|
with_dict: "{{ heat_services }}"
|
|
notify:
|
|
- Restart heat-api container
|
|
- Restart heat-api-cfn container
|
|
- Restart heat-engine container
|