Fix picking new object versions after upgrade
Till Queens release it was necessary to restart all cinder services
after upgrade to instruct cinder to use new object versions during
communications.
Starting from Queens release it is possible to run dbsync with --bump-versions
This patch implements that logic in post upgrade stage.
Change-Id: I85452c41e5b76ead3c617cdad6798482e857ec4f
Related-Prod: PROD-25668
diff --git a/cinder/upgrade/post/init.sls b/cinder/upgrade/post/init.sls
index ecd861e..e9b886a 100644
--- a/cinder/upgrade/post/init.sls
+++ b/cinder/upgrade/post/init.sls
@@ -1,3 +1,5 @@
+{%- from "cinder/map.jinja" import controller,upgrade with context %}
+
cinder_post:
test.show_notification:
- text: "Running cinder.upgrade.post"
@@ -5,3 +7,21 @@
keystone_os_client_config_absent:
file.absent:
- name: /etc/openstack/clouds.yml
+
+# till Queens release the restart of cinder cervices
+# is needed to switch cinder to new version
+# for furher releases running `cinder-manage db sync --bump-versions` is enough
+{%- if upgrade.old_release != upgrade.new_release %}
+ {% if upgrade.new_release in ['ocata', 'pike'] %}
+include:
+ - cinder.upgrade.service_stopped
+ - cinder.upgrade.service_running
+ {%- elif controller.enabled %}
+cinder_syncdb_version:
+ cmd.run:
+ - name: 'cinder-manage db sync --bump-versions; sleep 5'
+ {%- if grains.get('noservices') or controller.get('role', 'primary') == 'secondary' %}
+ - onlyif: /bin/false
+ {%- endif %}
+ {%- endif %}
+{%- endif %}