Add MariaDB upgrade from 10.3 to 10.5

This commit is contained in:
VirtuBox
2020-10-22 14:34:03 +02:00
parent 55f50f583c
commit c3224d39e5
2 changed files with 29 additions and 6 deletions

View File

@@ -37,12 +37,23 @@ def pre_pref(self, apt_packages):
with open('/etc/apt/preferences.d/'
'MariaDB.pref', 'w') as mysql_pref_file:
mysql_pref_file.write(mysql_pref)
WORepo.add(self, repo_url=WOVar.wo_mysql_repo)
if not os.path.exists('/etc/apt/sources.list.d/wo-repo.list'):
WORepo.add(self, repo_url=WOVar.wo_mysql_repo)
else:
if not WOFileUtils.grepcheck(
self, '/etc/apt/sources.list.d/wo-repo.list',
'MariaDB/repo/10.3'):
WORepo.add(self, repo_url=WOVar.wo_mysql_repo)
else:
WOFileUtils.searchreplace(
self, '/etc/apt/sources.list.d/wo-repo.list',
'10.3', '10.5')
WORepo.add_key(self, '0xcbcb082a1bb943db',
keyserver='keyserver.ubuntu.com')
WORepo.add_key(self, '0xF1656F24C74CD1D8',
keyserver='keyserver.ubuntu.com')
if "mariadb-server" in apt_packages:
if ("mariadb-server" in apt_packages and
not os.path.exists('/etc/mysql/conf.d/my.cnf')):
# generate random 24 characters root password
chars = ''.join(random.sample(string.ascii_letters, 24))
# generate my.cnf root credentials

View File

@@ -12,6 +12,7 @@ from wo.core.logging import Log
from wo.core.shellexec import WOShellExec
from wo.core.variables import WOVar
from wo.core.services import WOService
from wo.core.mysql import WOMysql
class WOStackUpgradeController(CementBaseController):
@@ -290,14 +291,20 @@ class WOStackUpgradeController(CementBaseController):
start_upgrade = input("Do you want to continue:[y/N]")
if start_upgrade != "Y" and start_upgrade != "y":
Log.error(self, "Not starting package update")
# additional pre_pref
if "nginx-custom" in apt_packages:
pre_pref(self, WOVar.wo_nginx)
if "mariadb-server" in apt_packages:
mariadbmajorupgrade = bool(
WOFileUtils.grepcheck(
self, '/etc/apt/sources.list.d/wo-repo.list',
'MariaDB/repo/10.3'))
pre_pref(self, WOVar.wo_mysql)
Log.wait(self, "Updating APT cache")
# apt-get update
WOAptGet.update(self)
Log.valide(self, "Updating APT cache")
# additional pre_pref
if "nginx-custom" in apt_packages:
pre_pref(self, WOVar.wo_nginx)
# check if nginx upgrade is blocked
if os.path.isfile(
'/etc/apt/preferences.d/nginx-block'):
@@ -305,7 +312,12 @@ class WOStackUpgradeController(CementBaseController):
# redis pre_pref
if "redis-server" in apt_packages:
pre_pref(self, WOVar.wo_redis)
# upgrade packages
# mariadb upgrade
if ("mariadb-server" in apt_packages and
mariadbmajorupgrade is True):
WOMysql.backupAll(self)
WOAptGet.remove(self, ["mariadb-server"])
# upgrade packages
WOAptGet.install(self, apt_packages)
Log.wait(self, "Configuring APT Packages")
post_pref(self, apt_packages, [], True)