From e7cefcd6e2f502950a34d8c8192702191870f1a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B8=D1=80=D0=B5=D1=86=D0=BA=D0=B8=D0=B9=20=D0=9C?= =?UTF-8?q?=D0=B8=D1=85=D0=B0=D0=B8=D0=BB?= Date: Thu, 5 Oct 2017 12:06:22 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D0=B8=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=BE=D0=B2=20=D0=B2=20?= =?UTF-8?q?=D0=B0=D0=B2=D1=82=D0=BE=D1=80=D0=B0=D0=B7=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pym/install/variables/autopartition.py | 15 +++++++++------ pym/install/wsdl_install.py | 5 +++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pym/install/variables/autopartition.py b/pym/install/variables/autopartition.py index f3928d0..56f767f 100644 --- a/pym/install/variables/autopartition.py +++ b/pym/install/variables/autopartition.py @@ -279,14 +279,17 @@ class VariableClAutopartitionDevice(AutopartitionHelper, Variable): if not valuelist: raise VariableError( _("For autopartition, please select the device")) + useDisks = set(traverse(x.split(',') for x in self.Select( 'os_disk_parent', where='os_disk_mount', ne=''))) - selected_raid_devices = self.Get('cl_autopartition_raid_parent') - for value in chain(valuelist, selected_raid_devices): - if value in useDisks: - raise VariableError( - _("Device %s is already in use by the current " - "system") % value) + for value in chain(valuelist): + for disk in set(chain(self.select( + 'os_device_parent', os_device_dev=value, + limit=1).split(","), [value])): + if disk in useDisks: + raise VariableError( + _("Device %s is already in use by the current " + "system") % value) self.checkSelectedRaid(valuelist) self.checkOnSelectParentAndChild(valuelist) self.checkOnLvm(valuelist) diff --git a/pym/install/wsdl_install.py b/pym/install/wsdl_install.py index 96501e4..b161bd9 100644 --- a/pym/install/wsdl_install.py +++ b/pym/install/wsdl_install.py @@ -26,6 +26,7 @@ setLocalTranslate('cl_install3', sys.modules[__name__]) __ = getLazyLocalTranslate(_) from calculate.core.server.func import WsdlBase +from calculate.lib.utils.partition import VolumesError from calculate.install.utils.cl_install import ClInstallAction from calculate.install.utils.cl_setup import ( ClSetupLocaleAction, ClSetupVideoAction, ClSetupSystemAction, @@ -56,7 +57,7 @@ class Wsdl(WsdlBase): 'action': ClInstallAction, # объект переменных 'datavars': "install", - 'native_error': (VariableError, DistributiveError, + 'native_error': (VariableError, DistributiveError, VolumesError, DataVarsError, install.InstallError), # значения по умолчанию для переменных этого метода 'setvars': {'cl_action!': 'system', 'cl_install_type': 'hdd', @@ -148,7 +149,7 @@ class Wsdl(WsdlBase): 'logic': {'Install': install.Install}, 'action': ClInstallAction, 'datavars': "install", - 'native_error': (VariableError, DistributiveError, + 'native_error': (VariableError, DistributiveError, VolumesError, DataVarsError, install.InstallError), 'setvars': {'cl_action!': 'system', 'cl_install_type': 'flash', 'cl_protect_use_set!': 'off',