mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Improve debugging of postgresql 9.6 -> 11 migration
This commit is contained in:
parent
fed5c2c1e0
commit
accc2da4e3
1 changed files with 23 additions and 8 deletions
|
@ -28,14 +28,29 @@ class MyMigration(Migration):
|
||||||
if not space_used_by_directory("/var/lib/postgresql/9.6") > free_space_in_directory("/var/lib/postgresql"):
|
if not space_used_by_directory("/var/lib/postgresql/9.6") > free_space_in_directory("/var/lib/postgresql"):
|
||||||
raise YunohostError("migration_0017_not_enough_space", path="/var/lib/postgresql/")
|
raise YunohostError("migration_0017_not_enough_space", path="/var/lib/postgresql/")
|
||||||
|
|
||||||
subprocess.check_call("systemctl stop postgresql", shell=True)
|
self.runcmd("systemctl stop postgresql")
|
||||||
subprocess.check_call("pg_dropcluster --stop 11 main", shell=True)
|
self.runcmd("pg_dropcluster --stop 11 main")
|
||||||
subprocess.check_call("pg_upgradecluster -m upgrade 9.6 main", shell=True)
|
self.runcmd("pg_upgradecluster -m upgrade 9.6 main")
|
||||||
subprocess.check_call("pg_dropcluster --stop 9.6 main", shell=True)
|
self.runcmd("pg_dropcluster --stop 9.6 main")
|
||||||
subprocess.check_call("systemctl start postgresql", shell=True)
|
self.runcmd("systemctl start postgresql")
|
||||||
|
|
||||||
def package_is_installed(self, package_name):
|
def package_is_installed(self, package_name):
|
||||||
|
|
||||||
p = subprocess.Popen("dpkg --list | grep '^ii ' | grep -q -w {}".format(package_name), shell=True)
|
(returncode, out, err) = self.runcmd("dpkg --list | grep '^ii ' | grep -q -w {}".format(package_name), raise_on_errors=False)
|
||||||
p.communicate()
|
return returncode == 0
|
||||||
return p.returncode == 0
|
|
||||||
|
def runcmd(self, cmd, raise_on_errors=True):
|
||||||
|
p = subprocess.Popen(cmd,
|
||||||
|
shell=True,
|
||||||
|
executable='/bin/bash',
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.PIPE)
|
||||||
|
|
||||||
|
out, err = p.communicate()
|
||||||
|
returncode = p.returncode
|
||||||
|
if raise_on_errors and returncode != 0:
|
||||||
|
raise YunohostError("Failed to run command '{}'.\nreturncode: {}\nstdout:\n{}\nstderr:\n{}\n".format(cmd, returncode, out, err))
|
||||||
|
|
||||||
|
out = out.strip().split("\n")
|
||||||
|
return (returncode, out, err)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue