|
|
|
@ -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():
|
|
|
|
|
"""
|
|
|
|
|