Add MariaDB upgrade from 10.3 to 10.5
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user