+%pretrans
+if rpm --quiet -q openstack-quantum; then
+ mkdir -p %{_localstatedir}/lib/rpm-state/
+
+ # Create a script for restoring init script enabling that we can also
+ # use as a flag to detect quantum -> grizzly upgrades in %posttrans
+ chkconfig --type sysv --list|grep ^quantum| \
+ sed -re 's/[0-6]:off//g
+ s/([0-6]):on\s*/\1/g
+ s/quantum/neutron/g
+ s/^([a-z0-9-]+)\s+([0-6]+)/chkconfig --levels \2 \1 on/' > %{_localstatedir}/lib/rpm-state/UPGRADE_FROM_QUANTUM
+fi
+
+%posttrans
+# Handle migration from quantum -> neutron
+if [ -e %{_localstatedir}/lib/rpm-state/UPGRADE_FROM_QUANTUM ];then
+ # Migrate existing config files
+ for i in `find /etc/quantum -name *.rpmsave`;do
+ new=${i//quantum/neutron}
+ new=${new/%.rpmsave/}
+ sed -e '/^sql_connection/ b
+ /^admin_user/ b
+ s/quantum/neutron/g
+ s/Quantum/Neutron/g' $i > $new
+ done
+
+ # Re-create plugin.ini if it existed.
+ if [ -h %{_sysconfdir}/quantum/plugin.ini ];then
+ plugin_ini=$(readlink %{_sysconfdir}/quantum/plugin.ini)
+ ln -s ${plugin_ini//quantum/neutron} %{_sysconfdir}/neutron/plugin.ini
+ fi
+
+ # Stamp the existing db as grizzly to avoid neutron-server breaking db migration
+ neutron-db-manage --config-file %{_sysconfdir}/neutron/neutron.conf --config-file %{_sysconfdir}/neutron/plugin.ini stamp grizzly || :
+
+ # Restore the enablement of the various neutron services
+ source %{_localstatedir}/lib/rpm-state/UPGRADE_FROM_QUANTUM
+
+ rm -f %{_localstatedir}/lib/rpm-state/UPGRADE_FROM_QUANTUM
+fi
+