From 9338053b7bc752ed11a0e7010bd52b3caa81f798 Mon Sep 17 00:00:00 2001 From: Mike Hiretsky Date: Tue, 21 Sep 2021 09:32:37 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=81=20=D0=B0=D0=B2=D1=82=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D1=82=D0=BA=D0=BE=D0=B9=20LVM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pym/calculate/lib/utils/partition.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/pym/calculate/lib/utils/partition.py b/pym/calculate/lib/utils/partition.py index 7335994..0b4a858 100644 --- a/pym/calculate/lib/utils/partition.py +++ b/pym/calculate/lib/utils/partition.py @@ -15,10 +15,11 @@ # limitations under the License. import sys from abc import ABCMeta, abstractmethod -from .files import process, getProgPath +from .files import process, getProgPath, getRunCommands from .tools import Sizes, classificate, traverse from .device import humanreadableSize import re +import os _ = lambda x: x from ..cl_lang import setLocalTranslate @@ -537,9 +538,19 @@ class LvmVolumeGroup(SizeableDisk, LvmDisk): for dev in self.devices: process(wipefs_cmd, "-af", dev).success() + def _kill_pvscan_processes(self): + """ + Прибить lvm pvscan процессы, потому что они тормозят выполнением pvcreate + """ + pvscan_pids = (int(pid) for pid, cmd in getRunCommands(withpid=True) + if "pvscan" in cmd) + for pvscan_pid in pvscan_pids: + os.kill(pvscan_pid, 9) + def create_physical_volumes(self): self.wipefs() - p = process(self.lvm_cmd, "pvcreate", "-ff", *self.devices) + self._kill_pvscan_processes() + p = process(self.lvm_cmd, "pvcreate", "-y", "-ff", *self.devices) return p.success() def create_volumes_group(self): @@ -558,7 +569,7 @@ class LvmVolumeGroup(SizeableDisk, LvmDisk): size_param = self._lvmsize(size) self.occupe_size(size) return process(self.lvm_cmd, "lvcreate", size_param, - self.vgname, "-n", lvname).success() + self.vgname, "-y", "-n", lvname).success() def get_partition_name(self, name): return "/dev/%s/%s" % (self.vgname, name)