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/' with open('/etc/apt/preferences.d/'
'MariaDB.pref', 'w') as mysql_pref_file: 'MariaDB.pref', 'w') as mysql_pref_file:
mysql_pref_file.write(mysql_pref) 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', WORepo.add_key(self, '0xcbcb082a1bb943db',
keyserver='keyserver.ubuntu.com') keyserver='keyserver.ubuntu.com')
WORepo.add_key(self, '0xF1656F24C74CD1D8', WORepo.add_key(self, '0xF1656F24C74CD1D8',
keyserver='keyserver.ubuntu.com') 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 # generate random 24 characters root password
chars = ''.join(random.sample(string.ascii_letters, 24)) chars = ''.join(random.sample(string.ascii_letters, 24))
# generate my.cnf root credentials # 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.shellexec import WOShellExec
from wo.core.variables import WOVar from wo.core.variables import WOVar
from wo.core.services import WOService from wo.core.services import WOService
from wo.core.mysql import WOMysql
class WOStackUpgradeController(CementBaseController): class WOStackUpgradeController(CementBaseController):
@@ -290,14 +291,20 @@ class WOStackUpgradeController(CementBaseController):
start_upgrade = input("Do you want to continue:[y/N]") start_upgrade = input("Do you want to continue:[y/N]")
if start_upgrade != "Y" and start_upgrade != "y": if start_upgrade != "Y" and start_upgrade != "y":
Log.error(self, "Not starting package update") 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") Log.wait(self, "Updating APT cache")
# apt-get update # apt-get update
WOAptGet.update(self) WOAptGet.update(self)
Log.valide(self, "Updating APT cache") 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 # check if nginx upgrade is blocked
if os.path.isfile( if os.path.isfile(
'/etc/apt/preferences.d/nginx-block'): '/etc/apt/preferences.d/nginx-block'):
@@ -305,7 +312,12 @@ class WOStackUpgradeController(CementBaseController):
# redis pre_pref # redis pre_pref
if "redis-server" in apt_packages: if "redis-server" in apt_packages:
pre_pref(self, WOVar.wo_redis) 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) WOAptGet.install(self, apt_packages)
Log.wait(self, "Configuring APT Packages") Log.wait(self, "Configuring APT Packages")
post_pref(self, apt_packages, [], True) post_pref(self, apt_packages, [], True)