From 64ab5b06641f39b4f3945140b7b00435fffc97a5 Mon Sep 17 00:00:00 2001 From: Jeffrey Zhang Date: Sat, 2 Apr 2016 14:52:22 +0800 Subject: [PATCH] Fix the Neutron reconfigure Closes-Bug: #1566360 Change-Id: I8eaab1df0c85c6a0bd60a13851f8716cc5dcfa59 --- .../roles/neutron/tasks/do_reconfigure.yml | 106 +++++++++--------- ansible/roles/neutron/tasks/reconfigure.yml | 4 +- 2 files changed, 52 insertions(+), 58 deletions(-) diff --git a/ansible/roles/neutron/tasks/do_reconfigure.yml b/ansible/roles/neutron/tasks/do_reconfigure.yml index b0519c4336..736a1601c6 100644 --- a/ansible/roles/neutron/tasks/do_reconfigure.yml +++ b/ansible/roles/neutron/tasks/do_reconfigure.yml @@ -3,8 +3,8 @@ kolla_docker: name: "{{ item.name }}" action: "get_container_state" - register: container_state - failed_when: container_state.Running == false + register: neutron_container_states + failed_when: neutron_container_states.Running == false when: inventory_hostname in groups[item.group] with_items: - { name: neutron_server, group: neutron-server } @@ -16,9 +16,10 @@ kolla_docker: name: neutron_openvswitch_agent action: "get_container_state" - register: container_state - failed_when: container_state.Running == false + register: openvswitch_agent_container_states + failed_when: openvswitch_agent_container_states.Running == false when: + - neutron_plugin_agent == "openvswitch" - ( ( inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) @@ -33,21 +34,20 @@ and enable_nova_fake | bool ) ) - - neutron_plugin_agent == "openvswitch" - name: Ensuring the neutron_linuxbridge_agent container is up kolla_docker: name: neutron_linuxbridge_agent action: "get_container_state" - register: container_state - failed_when: container_state.Running == false + register: linuxbridge_agent_container_states + failed_when: linuxbridge_agent_container_states.Running == false when: + - neutron_plugin_agent == "linuxbridge" - (inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-metadata-agent']) - - neutron_plugin_agent == "linuxbridge" - include: config.yml @@ -55,7 +55,7 @@ command: docker exec {{ item.name }} /usr/local/bin/kolla_set_configs --check changed_when: false failed_when: false - register: check_results + register: neutron_check_results when: inventory_hostname in groups[item.group] with_items: - { name: neutron_server, group: neutron-server } @@ -67,7 +67,9 @@ command: docker exec neutron_openvswitch_agent /usr/local/bin/kolla_set_configs --check changed_when: false failed_when: false + register: openvswitch_agent_check_results when: + - neutron_plugin_agent == "openvswitch" - ( ( inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) @@ -82,19 +84,19 @@ and enable_nova_fake | bool ) ) - - neutron_plugin_agent == "openvswitch" - name: Check the configs in the neutron_linuxbridge_agent container command: docker exec neutron_linuxbridge_agent /usr/local/bin/kolla_set_configs --check changed_when: false failed_when: false + register: linuxbridge_agent_check_results when: + - neutron_plugin_agent == "linuxbridge" - (inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-metadata-agent']) - - neutron_plugin_agent == "linuxbridge" # NOTE(jeffrey4l): when config_strategy == 'COPY_ALWAYS' # and container env['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE', @@ -103,7 +105,7 @@ kolla_docker: name: "{{ item.name }}" action: "get_container_env" - register: container_envs + register: neutron_container_envs when: inventory_hostname in groups[item.group] with_items: - { name: neutron_server, group: neutron-server } @@ -115,99 +117,97 @@ kolla_docker: name: "neutron_openvswitch_agent" action: "get_container_env" + register: openvswitch_agent_envs when: + - neutron_plugin_agent == "openvswitch" - ( - ( inventory_hostname in groups['compute'] + ( not enable_nova_fake | bool + and inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-metadata-agent'] - and not enable_nova_fake | bool ) or - ( inventory_hostname in groups['neutron-dhcp-agent'] + ( enable_nova_fake | bool + and inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-metadata-agent'] - and enable_nova_fake | bool ) ) - - neutron_plugin_agent == "openvswitch" - name: Container config strategy for the neutron_linuxbridge_agent container kolla_docker: name: "neutron_linuxbridge_agent" action: "get_container_env" + register: linuxbridge_agent_envs when: + - neutron_plugin_agent == "linuxbridge" - (inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-metadata-agent']) - - neutron_plugin_agent == "linuxbridge" - name: Remove the containers running neutron-server and neutron agents kolla_docker: name: "{{ item[0]['name'] }}" action: "remove_container" - register: remove_containers + register: neutron_remove_containers when: + - inventory_hostname in groups[item[0]['group']] - 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: neutron_server, group: neutron-server }, { name: neutron_dhcp_agent, group: neutron-dhcp-agent }, { name: neutron_l3_agent, group: neutron-l3-agent }, { name: neutron_metadata_agent, group: neutron-metadata-agent }] - - container_envs.results - - check_results.results + - neutron_container_envs.results + - neutron_check_results.results - name: Remove the neutron_openvswitch_agent container kolla_docker: name: "neutron_openvswitch_agent" action: "remove_container" - register: remove_containers + register: openvswitch_agent_remove_containers when: - - config_strategy == "COPY_ONCE" or item[0]['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE' - - item[1]['rc'] == 1 + - neutron_plugin_agent == "openvswitch" - ( - ( inventory_hostname in groups['compute'] + ( not enable_nova_fake | bool + and inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-metadata-agent'] - and not enable_nova_fake | bool ) or - ( inventory_hostname in groups['neutron-dhcp-agent'] + ( enable_nova_fake | bool + and inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-metadata-agent'] - and enable_nova_fake | bool ) ) - - neutron_plugin_agent == "openvswitch" - with_together: - - container_envs.results - - check_results.results + - config_strategy == "COPY_ONCE" or openvswitch_agent_envs['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE' + - openvswitch_agent_check_results['rc'] == 1 - name: Remove the neutron_linuxbridge_agent container kolla_docker: name: "neutron_linuxbridge_agent" action: "remove_container" - register: remove_containers + register: linuxbridge_agent_remove_containers when: - - config_strategy == "COPY_ONCE" or item[0]['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE' - - item[1]['rc'] == 1 + - neutron_plugin_agent == "linuxbridge" - (inventory_hostname in groups['compute'] or inventory_hostname in groups['manila-share'] or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-metadata-agent']) - - neutron_plugin_agent == "linuxbridge" - with_together: - - container_envs.results - - check_results.results + - config_strategy == "COPY_ONCE" or linuxbridge_agent_envs['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE' + - linuxbridge_agent_check_results['rc'] == 1 - include: start.yml - when: remove_containers.changed + when: neutron_remove_containers.changed + or openvswitch_agent_remove_containers.changed + or linuxbridge_agent_remove_containers.changed - name: Restart containers running neutron-server and neutron agents kolla_docker: @@ -215,16 +215,16 @@ action: "restart_container" when: - config_strategy == 'COPY_ALWAYS' + - inventory_hostname in groups[item[0]['group']] - item[1]['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE' - item[2]['rc'] == 1 - - inventory_hostname in groups[item[0]['group']] with_together: - [{ name: neutron_server, group: neutron-server }, { name: neutron_dhcp_agent, group: neutron-dhcp-agent }, { name: neutron_l3_agent, group: neutron-l3-agent }, { name: neutron_metadata_agent, group: neutron-metadata-agent }] - - container_envs.results - - check_results.results + - neutron_container_envs.results + - neutron_check_results.results - name: Restart the neutron_openvswitch_agent container kolla_docker: @@ -232,8 +232,7 @@ action: "restart_container" when: - config_strategy == 'COPY_ALWAYS' - - item[0]['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE' - - item[1]['rc'] == 1 + - neutron_plugin_agent == "openvswitch" - ( ( inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) @@ -248,10 +247,8 @@ and enable_nova_fake | bool ) ) - - neutron_plugin_agent == "openvswitch" - with_together: - - container_envs.results - - check_results.results + - openvswitch_agent_envs['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE' + - openvswitch_agent_check_results['rc'] == 1 - name: Restart the neutron_linuxbridge_agent container kolla_docker: @@ -259,14 +256,11 @@ action: "restart_container" when: - config_strategy == 'COPY_ALWAYS' - - item[0]['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE' - - item[1]['rc'] == 1 + - neutron_plugin_agent == "linuxbridge" - (inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-metadata-agent']) - - neutron_plugin_agent == "linuxbridge" - with_together: - - container_envs.results - - check_results.results + - linuxbridge_agent_envs['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE' + - linuxbridge_agent_check_results[1]['rc'] == 1 diff --git a/ansible/roles/neutron/tasks/reconfigure.yml b/ansible/roles/neutron/tasks/reconfigure.yml index 94ca71b961..e51969c572 100644 --- a/ansible/roles/neutron/tasks/reconfigure.yml +++ b/ansible/roles/neutron/tasks/reconfigure.yml @@ -2,8 +2,8 @@ - include: do_reconfigure.yml serial: "30%" when: inventory_hostname in groups['neutron-server'] - or inventory_hostname in groups['neutron-openvswitch-agent'] - or inventory_hostname in groups['neutron-linuxbridge-agent'] + or (enable_manila | bool and inventory_hostname in groups['manila-share']) + or inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-metadata-agent']