--- - name: Restart openvswitch-db-server container vars: service_name: "openvswitch-db-server" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" openvswitch_db_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" volumes: "{{ service.volumes }}" when: - action != "config" - service.enabled | bool - service.host_in_groups | bool - config_json | changed or openvswitch_db_container | changed notify: - Waiting the openvswitch_db service to be ready - Ensuring OVS bridge is properly setup - name: Waiting the openvswitch_db service to be ready command: docker exec openvswitch_db ovs-vsctl --no-wait show register: check_result until: check_result | success changed_when: False retries: 30 delay: 2 notify: - name: Ensuring OVS bridge is properly setup command: docker exec openvswitch_db /usr/local/bin/kolla_ensure_openvswitch_configured {{ item.0 }} {{ item.1 }} register: status changed_when: status.stdout.find('changed') != -1 with_together: - "{{ neutron_bridge_name.split(',') }}" - "{{ neutron_external_interface.split(',') }}" - name: Restart openvswitch-vswitchd container vars: service_name: "openvswitch-vswitchd" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" openvswitch_vswitchd_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" volumes: "{{ service.volumes }}" privileged: "{{ service.privileged | default(False) }}" when: - action != "config" - service.enabled | bool - service.host_in_groups | bool - config_json | changed or openvswitch_vswitchd_container | changed - name: Restart neutron-server container vars: service_name: "neutron-server" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_conf: "{{ neutron_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_lbaas_conf: "{{ neutron_lbaas_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_ml2_conf: "{{ neutron_ml2_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" policy_json: "{{ policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_server_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" volumes: "{{ service.volumes }}" privileged: "{{ service.privileged | default(False) }}" when: - action != "config" - service.enabled | bool - service.host_in_groups | bool - config_json | changed or neutron_conf | changed or neutron_lbaas_conf | changed or neutron_vpnaas_conf | changed or neutron_ml2_conf | changed or policy_json | changed or neutron_server_container | changed - name: Restart neutron-openvswitch-agent container vars: service_name: "neutron-openvswitch-agent" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_conf: "{{ neutron_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_ml2_conf: "{{ neutron_ml2_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" policy_json: "{{ policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_openvswitch_agent_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" volumes: "{{ service.volumes }}" privileged: "{{ service.privileged | default(False) }}" when: - action != "config" - service.enabled | bool - service.host_in_groups | bool - config_json | changed or neutron_conf | changed or neutron_ml2_conf | changed or policy_json | changed or neutron_openvswitch_agent_container | changed - name: Restart fake neutron-openvswitch-agent container vars: service_name: "neutron-openvswitch-agent" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_conf: "{{ neutron_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_ml2_conf: "{{ neutron_ml2_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" policy_json: "{{ policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_openvswitch_agent_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" volumes: "{{ service.volumes }}" privileged: "{{ service.privileged | default(False) }}" with_sequence: "start=1 end={{ num_nova_fake_per_node }}" when: - action != "config" - enabled_nova_fake | bool - neutron_plugin_agent == "openvswitch" - inventory_hostname in groups["compute"] - fake_config_json | changed or fake_neutron_conf | changed or fake_neutron_ml2_conf_ini | changed or check_fake_neutron_openvswitch_agent | changed - name: Restart fake neutron-sfc-agent container vars: service_name: "neutron-sfc-agent" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_conf: "{{ neutron_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_ml2_conf: "{{ neutron_ml2_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" policy_json: "{{ policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_sfc_agent_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" volumes: "{{ service.volumes }}" privileged: "{{ service.privileged | default(False) }}" with_sequence: "start=1 end={{ num_nova_fake_per_node }}" when: - action != "config" - enabled_nova_fake | bool - neutron_plugin_agent == "sfc" - inventory_hostname in groups["compute"] - fake_config_json | changed or fake_neutron_conf | changed or fake_neutron_ml2_conf_ini | changed or check_fake_neutron_sfc_agent | changed # TODO(Jeffrey4l): sfc do not have config.json file at all. it is not finished - name: Restart neutron-sfc-agent container vars: service_name: "neutron-sfc-agent" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_sfc_agent_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" volumes: "{{ service.volumes }}" privileged: "{{ service.privileged | default(False) }}" when: - action != "config" - service.enabled | bool - service.host_in_groups | bool - config_json | changed or neutron_sfc_agent_container | changed - name: Restart neutron-linuxbridge-agent container vars: service_name: "neutron-linuxbridge-agent" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_conf: "{{ neutron_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_ml2_conf: "{{ neutron_ml2_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" policy_json: "{{ policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_linuxbridge_agent_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" environment: "{{ service.environment }}" volumes: "{{ service.volumes }}" privileged: "{{ service.privileged | default(False) }}" when: - action != "config" - service.enabled | bool - service.host_in_groups | bool - config_json | changed or neutron_conf | changed or neutron_ml2_conf | changed or policy_json | changed or neutron_linuxbridge_agent_container | changed - name: Restart neutron-dhcp-agent container vars: service_name: "neutron-dhcp-agent" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_conf: "{{ neutron_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_ml2_conf: "{{ neutron_ml2_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" policy_json: "{{ policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_dhcp_agent_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" volumes: "{{ service.volumes }}" privileged: "{{ service.privileged | default(False) }}" when: - action != "config" - service.enabled | bool - service.host_in_groups | bool - config_json | changed or neutron_conf | changed or neutron_ml2_conf | changed or dhcp_agent_ini | changed or dnsmasq_conf | changed or policy_json | changed or neutron_dhcp_agent_container | changed - name: Restart neutron-l3-agent container vars: service_name: "neutron-l3-agent" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_conf: "{{ neutron_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_ml2_conf: "{{ neutron_ml2_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_l3_agent_ini: "{{ neutron_l3_agent_inis.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_fwaas_driver_ini: "{{ neutron_fwaas_driver_inis.results|selectattr('item.key', 'equalto', service_name)|first }}" policy_json: "{{ policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_l3_agent_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" volumes: "{{ service.volumes }}" privileged: "{{ service.privileged | default(False) }}" when: - action != "config" - service.enabled | bool - service.host_in_groups | bool - config_json | changed or neutron_conf | changed or neutron_ml2_conf | changed or neutron_l3_agent_ini | changed or neutron_fwaas_driver_ini | changed or policy_json | changed or neutron_l3_agent_container | changed - name: Restart neutron-lbaas-agent container vars: service_name: "neutron-lbaas-agent" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_conf: "{{ neutron_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_lbaas_conf: "{{ neutron_lbaas_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_ml2_conf: "{{ neutron_ml2_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" policy_json: "{{ policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_lbaas_agent_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" volumes: "{{ service.volumes }}" privileged: "{{ service.privileged | default(False) }}" when: - action != "config" - service.enabled | bool - service.host_in_groups | bool - config_json | changed or neutron_conf | changed or neutron_ml2_conf | changed or neutron_lbaas_agent_ini | changed or policy_json | changed or neutron_lbaas_agent_container | changed - name: Restart neutron-metadata-agent container vars: service_name: "neutron-metadata-agent" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_conf: "{{ neutron_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_ml2_conf: "{{ neutron_ml2_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" policy_json: "{{ policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_metadata_agent_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" volumes: "{{ service.volumes }}" privileged: "{{ service.privileged | default(False) }}" when: - action != "config" - service.enabled | bool - service.host_in_groups | bool - config_json | changed or neutron_conf | changed or neutron_ml2_conf | changed or neutron_metadata_agent_ini | changed or policy_json | changed or neutron_metadata_agent_container | changed - name: Restart neutron-vpnaas-agent container vars: service_name: "neutron-vpnaas-agent" service: "{{ neutron_services[service_name] }}" config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_conf: "{{ neutron_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_ml2_conf: "{{ neutron_ml2_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_l3_agent_ini: "{{ neutron_l3_agent_inis.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_fwaas_driver_ini: "{{ neutron_fwaas_driver_inis.results|selectattr('item.key', 'equalto', service_name)|first }}" policy_json: "{{ policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" neutron_vpnaas_agent_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" kolla_docker: action: "recreate_or_restart_container" common_options: "{{ docker_common_options }}" name: "{{ service.container_name }}" image: "{{ service.image }}" volumes: "{{ service.volumes }}" privileged: "{{ service.privileged | default(False) }}" when: - action != "config" - service.enabled | bool - service.host_in_groups | bool - config_json | changed or neutron_conf | changed or neutron_ml2_conf | changed or neutron_l3_agent_ini | changed or neutron_fwaas_driver_ini | changed or neutron_vpnaas_agent_ini | changed or policy_json | changed or neutron_vpnaas_agent_container | changed