From b915aea533595820af35c6728e9ad2191d5b1a85 Mon Sep 17 00:00:00 2001 From: Guillaume Boutry Date: Tue, 22 Apr 2025 11:46:52 +0200 Subject: [PATCH] Remove db migration script usage DB Migration script has been removed in [1], this script was used to migrate bits from the Nova database in the new placement service. Placement has been uncorellated since Stein release and should no longer need this step. This charm does not support upgrade from Stein to Caracal / Dalmatian / Epoxy directly. [1]: https://review.opendev.org/c/openstack/placement/+/932324 Closes-Bug: #2107949 Change-Id: If56d9fa475736079792c421deb47ae6908f25a9a Signed-off-by: Guillaume Boutry --- src/lib/charm/openstack/placement.py | 22 ------------------- src/reactive/placement_handlers.py | 1 - .../test_lib_charm_openstack_placement.py | 14 ------------ unit_tests/test_placement_handlers.py | 1 - 4 files changed, 38 deletions(-) diff --git a/src/lib/charm/openstack/placement.py b/src/lib/charm/openstack/placement.py index 7261efc..d07c0bc 100644 --- a/src/lib/charm/openstack/placement.py +++ b/src/lib/charm/openstack/placement.py @@ -22,7 +22,6 @@ import charms_openstack.ip as os_ip PLACEMENT_CONF = '/etc/placement/placement.conf' PLACEMENT_WSGI_CONF = '/etc/apache2/sites-available/placement-api.conf' -PLACEMENT_MIGRATE_DB_CONF = '/etc/placement/migrate-db.rc' charms_openstack.charm.use_defaults('charm.default-select-release') @@ -55,7 +54,6 @@ class PlacementCharm(charms_openstack.charm.HAOpenStackCharm): restart_map = { PLACEMENT_CONF: services, PLACEMENT_WSGI_CONF: services, - PLACEMENT_MIGRATE_DB_CONF: services, } ha_resources = ['vips', 'haproxy', 'dnsha'] @@ -71,11 +69,6 @@ class PlacementCharm(charms_openstack.charm.HAOpenStackCharm): ]), } - mysql_migrate_db = '/usr/share/placement/mysql-migrate-db.sh' - - migrate_cmd = [mysql_migrate_db, '--migrate', '--skip-locks', - PLACEMENT_MIGRATE_DB_CONF] - sync_cmd = ['placement-manage', 'db', 'sync'] def get_database_setup(self): @@ -87,21 +80,6 @@ class PlacementCharm(charms_openstack.charm.HAOpenStackCharm): username='nova', prefix='novaapi')] - def db_migrate(self): - if not self.db_sync_done() and hookenv.is_leader(): - try: - subprocess.check_call(self.migrate_cmd) - except subprocess.CalledProcessError as error: - hookenv.log('{} returncode={} output={}'.format( - self.migrate_cmd, error.returncode, error.output), - level=hookenv.DEBUG) - if error.returncode == 4 or error.returncode == 3: - # 4: No data present in nova database (nothing to migrate) - # 3: Migration has already completed - return False - raise - return True - def db_sync(self): if not self.db_sync_done() and hookenv.is_leader(): subprocess.check_call(self.sync_cmd) diff --git a/src/reactive/placement_handlers.py b/src/reactive/placement_handlers.py index 682602f..d8339cb 100644 --- a/src/reactive/placement_handlers.py +++ b/src/reactive/placement_handlers.py @@ -71,7 +71,6 @@ def init_db(): disabled = placement.get_nova_placement_disabled() if disabled: placement_charm.disable_services() - placement_charm.db_migrate() placement_charm.db_sync() placement_charm.enable_services() placement_charm.assess_status() diff --git a/unit_tests/test_lib_charm_openstack_placement.py b/unit_tests/test_lib_charm_openstack_placement.py index 987881d..b2b6c15 100644 --- a/unit_tests/test_lib_charm_openstack_placement.py +++ b/unit_tests/test_lib_charm_openstack_placement.py @@ -38,20 +38,6 @@ class TestPlacementCharm(Helper): 'username': 'nova', 'prefix': 'novaapi'}]) - @patch.object(placement.PlacementCharm, 'db_sync_done') - @patch.object(placement.subprocess, 'check_call') - @patch.object(placement.hookenv, 'is_leader') - def test_db_migrate(self, is_leader, check_call, db_sync_done): - c = placement.PlacementCharm() - is_leader.return_value = True - db_sync_done.return_value = False - c.db_migrate() - check_call.assert_called_with( - ['/usr/share/placement/mysql-migrate-db.sh', - '--migrate', - '--skip-locks', - '/etc/placement/migrate-db.rc']) - @patch.object(placement.PlacementCharm, 'db_sync_done') @patch.object(placement.subprocess, 'check_call') @patch.object(placement.hookenv, 'is_leader') diff --git a/unit_tests/test_placement_handlers.py b/unit_tests/test_placement_handlers.py index 8771739..d76830c 100644 --- a/unit_tests/test_placement_handlers.py +++ b/unit_tests/test_placement_handlers.py @@ -80,7 +80,6 @@ class TestPlacementHandlers(test_utils.PatchHelper): handlers.init_db() placement.get_nova_placement_disabled.assert_called_once_with() self.placement_charm.disable_services.assert_called_once_with() - self.placement_charm.db_migrate.assert_called_once_with() self.placement_charm.db_sync.assert_called_once_with() self.placement_charm.enable_services.assert_called_once_with() self.placement_charm.assess_status.assert_called_once_with()