--- # Copyright 2014, Rackspace US, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - name: Get neutron migrations facts neutron_migrations_facts: release: ocata library_path: "{{ neutron_lib_dir }}" bin_path: "{{ neutron_bin }}" when: neutron_plugin_type.split('.')[0] == 'ml2' - name: Print neutron migrations facts debug: var: neutron_migrations when: neutron_plugin_type.split('.')[0] == 'ml2' - name: Perform a Neutron DB online upgrade (expand) command: | {{ neutron_bin }}/neutron-db-manage --config-file {{ neutron_db_config }} --config-file {{ neutron_db_plugin }} upgrade --expand become: yes become_user: "{{ neutron_system_user_name }}" when: - (neutron_migrations is defined and neutron_migrations['run_expand']|bool) - neutron_plugin_type.split('.')[0] == 'ml2' - name: Stop Neutron server service: name: "neutron-server" state: stopped pattern: "neutron-server" delegate_to: "{{ item }}" with_items: "{{ groups[neutron_services['neutron-server']['group']] }}" when: (neutron_migrations is defined and neutron_migrations['run_contract']|bool) or neutron_plugin_type.split('.')[0] != 'ml2' - name: Perform a Neutron DB offline upgrade (contract) command: | {{ neutron_bin }}/neutron-db-manage --config-file {{ neutron_db_config }} --config-file {{ neutron_db_plugin }} upgrade --contract become: yes become_user: "{{ neutron_system_user_name }}" when: - (neutron_migrations is defined and neutron_migrations['run_contract']|bool) - neutron_plugin_type.split('.')[0] == 'ml2' # NOTE: We have to handle neutron_plugin_type.split('.')[0] != 'ml2' because not all neutron # plugins have contract/expand branches which breaks neutron-db-manage. # This can be reverted once all plugins are conformant. - name: Perform a Neutron DB offline upgrade (heads) command: | {{ neutron_bin }}/neutron-db-manage --config-file {{ neutron_db_config }} --config-file {{ neutron_db_plugin }} upgrade heads become: yes become_user: "{{ neutron_system_user_name }}" when: - neutron_plugin_type.split('.')[0] != 'ml2' - name: Start neutron server service: name: "neutron-server" state: started pattern: "neutron-server" delegate_to: "{{ item }}" with_items: "{{ groups[neutron_services['neutron-server']['group']] }}" when: (neutron_migrations is defined and neutron_migrations['run_contract']|bool) or neutron_plugin_type.split('.')[0] != 'ml2'