Ensure placement charm related before Train upgrade

As of OpenStack Train, the placement charm manages the placement API, and it
is no longer managed by nova-cloud-controller. This requires the placement
charm to be deployed and related to nova-cloud-controller prior to upgrading
nova-cloud-controller to Train.

This patch ensures that if an attempt is made to upgrade nova-cloud-controller
from Stein to Train, and placement is not yet related, it will block and
prevent the upgrade.

Change-Id: I217adfb59aed2e509a56b6559a528ae4c0adaa48
Closes-Bug: 1848529
This commit is contained in:
Corey Bryant
2019-10-17 19:25:47 +00:00
parent bf2cd49829
commit 2cfb795490
6 changed files with 94 additions and 11 deletions

View File

@@ -312,6 +312,14 @@ class NovaCCHooksTests(CharmTestCase):
self.assertTrue(mock_quantum_joined.called)
self.assertTrue(mock_update_aws_compat_services.called)
# test upgrade from stein->train without placement related
self.do_openstack_upgrade.return_value = None
self.os_release.return_value = 'stein'
self.save_script_rc.reset_mock()
hooks.config_changed()
self.assertTrue(self.do_openstack_upgrade.called)
self.assertFalse(self.save_script_rc.called)
@patch.object(utils, 'set_shared_metadatasecret')
@patch.object(utils, 'get_shared_metadatasecret')
@patch.object(hooks, 'update_nrpe_config')