Добавлена проверка на примонтированные разделы диска используемого для авторазметки

develop 3.6.7.14
parent ba8c6fd336
commit 8787048376

@ -23,6 +23,7 @@ import calculate.lib.utils.device as device
from calculate.lib.utils.device import humanreadableSize
from calculate.lib.utils import partition
from calculate.lib.utils.files import (readLinesFile)
from calculate.lib.utils.mount import isMount
from calculate.install.fs_manager import FileSystemManager
from calculate.lib.utils.tools import Sizes, traverse
from itertools import *
@ -302,6 +303,15 @@ class VariableClAutopartitionDevice(AutopartitionHelper, Variable):
useDisks = set(traverse(x.split(',') for x in self.Select(
'os_disk_parent', where='os_disk_mount', ne='')))
mountedData = [(x,y) for x,y in self.ZipVars(
"os_disk_parent", "os_disk_dev") if isMount(y)]
mountedDevices = {}
for devices, disk in mountedData:
for _device in traverse(devices.split(',')):
if _device not in mountedDevices:
mountedDevices[_device] = set()
mountedDevices[_device].add(disk)
for value in chain(valuelist):
for disk in set(chain(self.select(
'os_device_parent', os_device_dev=value,
@ -310,6 +320,11 @@ class VariableClAutopartitionDevice(AutopartitionHelper, Variable):
raise VariableError(
_("Device %s is already in use by the current "
"system") % value)
if disk in mountedDevices:
disks = ",".join(sorted(mountedDevices[disk]))
raise VariableError(
_("Please unmount {disks}, as {device} will be used for "
"installation").format(device=disk, disks=disks))
self.checkSelectedRaid(valuelist)
self.checkOnSelectParentAndChild(valuelist)
self.checkOnLvm(valuelist)

Loading…
Cancel
Save