From 1d9969a339452027e7f4ebb208e67baf0a6872ad Mon Sep 17 00:00:00 2001 From: jufeng Date: Fri, 17 Jan 2014 11:44:04 +0800 Subject: [PATCH] Migrate network database Migrate network database like other cookbooks do (openstack-identity, openstack-nova,openstack-image etc.). The database migration will make the OpenStack upgrade using the cookbooks easier. The patch passes the template_file from common.rb to server.rb using node['openstack']['network']['plugin_config_file']. Change-Id: I5e4ded912eaa4087714f9cb68088caf29b90b9c4 --- CHANGELOG.md | 3 +++ metadata.rb | 2 +- recipes/common.rb | 2 ++ recipes/server.rb | 17 +++++++++++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f8a7e50..853e6072 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ This file is used to list changes made in each version of cookbook-openstack-network. +## 8.0.1: +* Add network database migration + ## 8.0.0: * Support neutron deployment by search and replace quantum with neutron diff --git a/metadata.rb b/metadata.rb index 41710b10..4e65a3e7 100644 --- a/metadata.rb +++ b/metadata.rb @@ -5,7 +5,7 @@ maintainer 'Jay Pipes ' license 'Apache 2.0' description 'Installs and configures the OpenStack Network API Service and various agents and plugins' long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version '8.0.0' +version '8.0.1' recipe 'openstack-network::server', 'Installs packages required for a OpenStack Network server' recipe 'openstack-network::openvswitch', 'Installs packages required for OVS' recipe 'openstack-network::metadata_agent', 'Installs packages required for a OpenStack Network Metadata Agent' diff --git a/recipes/common.rb b/recipes/common.rb index f198dc13..6855cfce 100644 --- a/recipes/common.rb +++ b/recipes/common.rb @@ -370,6 +370,8 @@ when 'ryu' end +node.set['openstack']['network']['plugin_config_file'] = template_file + template '/etc/default/neutron-server' do source 'neutron-server.erb' owner 'root' diff --git a/recipes/server.rb b/recipes/server.rb index cf1438e3..f66d3dfc 100644 --- a/recipes/server.rb +++ b/recipes/server.rb @@ -40,6 +40,23 @@ platform_options['neutron_server_packages'].each do |pkg| end end +# Migrate network database +# If the database has never migrated, make the current version of alembic_version to havana, +# else migrate the database to latest version. +bash "migrate network database" do + plugin_config_file = node['openstack']['network']['plugin_config_file'] + migrate_command = "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file #{plugin_config_file}" + code <<-EOF +current_version_line=`#{migrate_command} current 2>&1 | tail -n 1` +# determine if the $current_version_line ends with ": None" +if [[ $current_version_line == *:\\ None ]]; then + #{migrate_command} stamp havana +else + #{migrate_command} upgrade head +fi +EOF +end + service 'neutron-server' do service_name platform_options['neutron_server_service'] supports status: true, restart: true