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 <guillaume.boutry@canonical.com>
This commit is contained in:
@@ -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)
|
||||
|
@@ -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()
|
||||
|
@@ -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')
|
||||
|
@@ -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()
|
||||
|
Reference in New Issue
Block a user