From 8f3f7b3c3c19f93d3c4fcf4d526a2e23cadb891a Mon Sep 17 00:00:00 2001 From: Mike Hiretsky Date: Wed, 11 Oct 2017 11:47:52 +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=BE=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20RAID=20=D1=83=D1=81=D1=82=D1=80=D0=BE=D0=B9=D1=81?= =?UTF-8?q?=D1=82=D0=B2=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pym/calculate/lib/utils/device.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/pym/calculate/lib/utils/device.py b/pym/calculate/lib/utils/device.py index 3732194..85b1cd0 100644 --- a/pym/calculate/lib/utils/device.py +++ b/pym/calculate/lib/utils/device.py @@ -564,14 +564,12 @@ class MdadmCommand(object): def stop_raid(self, devraid): if not self.mdadm_cmd: return "" - pvdata = files.process(self.mdadm_cmd, "-S", devraid) - return pvdata.success() + return files.process(self.mdadm_cmd, "-S", devraid).success() - def zero_superblock(self, devices): + def zero_superblock(self, dev): if not self.mdadm_cmd: return "" - for dev in devices: - files.process(self.mdadm_cmd, "--zero-superblock", dev).success() + return files.process(self.mdadm_cmd, "--zero-superblock", dev).success() class Raid(object): def __init__(self, commander): @@ -606,12 +604,16 @@ class Raid(object): yield devname def remove_raid(self, raidname): - raidparts = self.devices(udev.get_syspath(name=raidname)) + # итератор не подходит, так как после остановки RAID + # не получится узнать его диски + raidparts = list(self.devices(udev.get_syspath(name=raidname))) failed = False - self.commander.stop_raid(raidname) + failed |= not (self.commander.stop_raid(raidname) or + self.commander.stop_raid(raidname)) for dev in raidparts: - self.commander.zero_superblock(dev) - return failed + failed |= not (self.commander.zero_superblock(dev) or + self.commander.zero_superblock(dev)) + return not failed def loadEfiVars(): """