Fix lvm installation, close variables, display errors

master3.3 3.0.1
Mike Hiretsky 12 years ago
parent 44702d8381
commit e2b72b54c0

@ -186,67 +186,26 @@ class Install(color_print):
# cltObj = True if 'clt' in templates_locate else False # cltObj = True if 'clt' in templates_locate else False
dirs_list, files_list = ([],[]) dirs_list, files_list = ([],[])
listTemplatePaths = ["/var/lib/layman/calculate/profiles/templates", useClt = "clt" in templates_locate
"/var/calculate/templates", self.clVars.Set("cl_template_path",
"/var/calculate/remote/templates"] map(lambda x:x[1],
for location in templates_locate: filter(lambda x:x[0] in templates_locate,
if location in ("overlay", "local", "remote", "clt"): zip(self.clVars.Get('cl_template_location'),
if len(listTemplatePaths) != 3: self.clVars.Get('cl_template_path')))),
self.printERROR(\ True)
_("Error in template variable 'cl_template_path=%s'")\
%str(listTemplatePaths)) self.clTempl = ProgressTemplate(self.setProgress, self.clVars,
return False cltObj=useClt,
elif location == "local": cltFilter=False)
if not os.path.isdir(listTemplatePaths[1]):
continue dirsFiles = self.clTempl.applyTemplates()
self.clVars.Set("cl_template_path",
[listTemplatePaths[1]], True)
elif location == "remote":
if not os.path.isdir(listTemplatePaths[2]):
continue
self.clVars.Set("cl_template_path",
[listTemplatePaths[2]], True)
elif location == "overlay":
if not os.path.isdir(listTemplatePaths[0]):
continue
self.clVars.Set("cl_template_path",
[listTemplatePaths[0]], True)
elif location == "clt":
# list_paths = ['/etc'] + \
# os.environ.get('CONFIG_PROTECT').split()
# for template_path in list_paths:
# if not os.path.isdir(template_path):
# continue
# print template_path
# self.clVars.Set("cl_template_path",
# [template_path], True)
# self.clTempl = ProgressTemplate(self.setProgress,
# self.clVars,cltObj=True,
# cltFilter=True)
#
# dirsFiles = self.clTempl.applyTemplates()
# # cltObj = False
# print dirsFiles
# dirs_list += (dirsFiles[0])
# files_list += (dirsFiles[1])
continue
self.clTempl = ProgressTemplate(self.setProgress, self.clVars,
cltFilter=False)
dirsFiles = self.clTempl.applyTemplates()
if type(dirsFiles) in [list, tuple]:
if len (dirsFiles) > 1:
dirs_list += (dirsFiles[0])
files_list += (dirsFiles[1])
self.clVars.Set("cl_template_path", listTemplatePaths, True)
try: try:
if self.clTempl.getError(): if self.clTempl.getError():
self.printERROR(self.clTempl.getError()) self.printERROR(self.clTempl.getError())
return False return False
except AttributeError: except AttributeError:
pass pass
return (dirs_list, files_list) return dirsFiles
def applyTemplatesFlash(self,directory): def applyTemplatesFlash(self,directory):
"""Apply templates for root of system.""" """Apply templates for root of system."""

@ -23,7 +23,7 @@ from soaplib.service import rpc, DefinitionBase
from calculate.core.server.api_types import ReturnedMessage from calculate.core.server.api_types import ReturnedMessage
from calculate.core.server.api_types import ChoiceValue, Table, Option, Field, \ from calculate.core.server.api_types import ChoiceValue, Table, Option, Field, \
GroupField, ViewInfo, ViewParams GroupField, ViewInfo, ViewParams
from calculate.lib.datavars import VariableError from calculate.lib.datavars import VariableError,DataVarsError
#from cl_install import Install,DataVarsInstall #from cl_install import Install,DataVarsInstall
import cl_install import cl_install
@ -107,8 +107,10 @@ class catchExcept:
default = 'color:red;', default = 'color:red;',
element = "error")) element = "error"))
view.groups.append(group) view.groups.append(group)
#for i in apply(traceback.format_exception, sys.exc_info()): if not isinstance(VariableError,DataVarsError,InstallError):
# print i for i in apply(traceback.format_exception, sys.exc_info()):
print i,
return view return view
class Wsdl: class Wsdl:
@ -232,13 +234,13 @@ class Wsdl:
lang = dv.Get('os_install_locale_lang') lang = dv.Get('os_install_locale_lang')
self.set_cache(sid,"install","lang",lang,smart=False) self.set_cache(sid,"install","lang",lang,smart=False)
dv.processRefresh() dv.processRefresh()
self.set_cache(sid, 'install', "vars",dv,smart=False)
view = ViewInfo(dv,step=params.step, view = ViewInfo(dv,step=params.step,
expert=params.expert, expert=params.expert,
brief=params.brief, brief=params.brief,
has_brief=True, has_brief=True,
allsteps=langChanged, allsteps=langChanged,
brief_label=_("Start installing")) brief_label=_("Start installing"))
self.set_cache(sid, 'install', "vars",dv,smart=False)
return view return view
def install_flash_vars(self): def install_flash_vars(self):
@ -272,10 +274,10 @@ class Wsdl:
dv = self.install_flash_vars() dv = self.install_flash_vars()
else: else:
dv.processRefresh() dv.processRefresh()
self.set_cache(sid, 'install_flash', "vars",dv,smart=False)
view = ViewInfo(dv,step=params.step, view = ViewInfo(dv,step=params.step,
expert=params.expert, expert=params.expert,
brief=params.brief) brief=params.brief)
self.set_cache(sid, 'install_flash', "vars",dv,smart=False)
return view return view
def install_pxe_vars(self): def install_pxe_vars(self):
@ -309,10 +311,10 @@ class Wsdl:
dv = self.install_pxe_vars() dv = self.install_pxe_vars()
else: else:
dv.processRefresh() dv.processRefresh()
self.set_cache(sid, 'install_pxe', "vars",dv,smart=False)
view = ViewInfo(dv,step=params.step, view = ViewInfo(dv,step=params.step,
expert=params.expert, expert=params.expert,
brief=params.brief) brief=params.brief)
self.set_cache(sid, 'install_pxe', "vars",dv,smart=False)
return view return view
def setup_network_vars(self): def setup_network_vars(self):
@ -351,10 +353,10 @@ class Wsdl:
dv = self.setup_network_vars() dv = self.setup_network_vars()
else: else:
dv.processRefresh() dv.processRefresh()
self.set_cache(sid, 'setup_network', "vars",dv,smart=False)
view = ViewInfo(dv,step=params.step, view = ViewInfo(dv,step=params.step,
expert=params.expert, expert=params.expert,
brief=params.brief) brief=params.brief)
self.set_cache(sid, 'setup_network', "vars",dv,smart=False)
return view return view
def setup_video_vars(self): def setup_video_vars(self):
@ -391,10 +393,10 @@ class Wsdl:
dv = self.setup_video_vars() dv = self.setup_video_vars()
else: else:
dv.processRefresh() dv.processRefresh()
self.set_cache(sid, 'setup_video', "vars",dv,smart=False)
view = ViewInfo(dv,step=params.step, view = ViewInfo(dv,step=params.step,
expert=params.expert, expert=params.expert,
brief=params.brief) brief=params.brief)
self.set_cache(sid, 'setup_video', "vars",dv,smart=False)
return view return view
def setup_locale_vars(self): def setup_locale_vars(self):
@ -431,10 +433,10 @@ class Wsdl:
dv = self.setup_locale_vars() dv = self.setup_locale_vars()
else: else:
dv.processRefresh() dv.processRefresh()
self.set_cache(sid, 'setup_locale', "vars",dv,smart=False)
view = ViewInfo(dv,step=params.step, view = ViewInfo(dv,step=params.step,
expert=params.expert, expert=params.expert,
brief=params.brief) brief=params.brief)
self.set_cache(sid, 'setup_locale', "vars",dv,smart=False)
return view return view
def setup_boot_vars(self): def setup_boot_vars(self):
@ -470,10 +472,10 @@ class Wsdl:
dv = self.setup_boot_vars() dv = self.setup_boot_vars()
else: else:
dv.processRefresh() dv.processRefresh()
self.set_cache(sid, 'setup_boot', "vars",dv,smart=False)
view = ViewInfo(dv,step=params.step, view = ViewInfo(dv,step=params.step,
expert=params.expert, expert=params.expert,
brief=params.brief) brief=params.brief)
self.set_cache(sid, 'setup_boot', "vars",dv,smart=False)
return view return view
def setup_system_vars(self): def setup_system_vars(self):
@ -507,8 +509,8 @@ class Wsdl:
dv = self.setup_system_vars() dv = self.setup_system_vars()
else: else:
dv.processRefresh() dv.processRefresh()
self.set_cache(sid, 'setup_system', "vars",dv,smart=False)
view = ViewInfo(dv,step=params.step, view = ViewInfo(dv,step=params.step,
expert=params.expert, expert=params.expert,
brief=params.brief) brief=params.brief)
self.set_cache(sid, 'setup_system', "vars",dv,smart=False)
return view return view

@ -337,7 +337,7 @@ class VariableHrMemorySize(ReadonlyVariable):
return "0" return "0"
def humanReadable(self): def humanReadable(self):
return map(humanreadableSize,self.Get()) return humanreadableSize(self.Get())
class VariableClAutopartitionSwapSize(Variable): class VariableClAutopartitionSwapSize(Variable):
""" """

@ -28,7 +28,7 @@ from calculate.lib.datavars import (TableVariable,Variable,VariableError,
from calculate.lib.utils.device import (getUdevDeviceInfo,getDeviceType, from calculate.lib.utils.device import (getUdevDeviceInfo,getDeviceType,
getPartitionType,getPartitionDevice,getRaidPartitions, getPartitionType,getPartitionDevice,getRaidPartitions,
getLvmPartitions,getPartitionSize, humanreadableSize, getLvmPartitions,getPartitionSize, humanreadableSize,
getUUIDDict) getUUIDDict,getCommonDeviceName)
from calculate.lib.utils.files import (listDirectory,pathJoin,readFile,FStab, from calculate.lib.utils.files import (listDirectory,pathJoin,readFile,FStab,
isMount) isMount)
from calculate.install.cl_distr import PartitionDistributive from calculate.install.cl_distr import PartitionDistributive
@ -769,10 +769,7 @@ class VariableOsLocationDest(LocationHelper,Variable):
return path.normpath(val) return path.normpath(val)
return val return val
value = map(normpath,value) value = map(normpath,value)
if len(value) == 1 and value[0] == "": return map(lambda x:x or "/",value)
return ["/"]
else:
return value
def choice(self): def choice(self):
if self.Get('cl_install_type') == 'flash': return ["/",""] if self.Get('cl_install_type') == 'flash': return ["/",""]
@ -1102,6 +1099,12 @@ class VariableOsLocationSize(LocationHelper,SourceReadonlyVariable):
self.Get('cl_autopartition_disk_size'))) self.Get('cl_autopartition_disk_size')))
return mapDevSize return mapDevSize
def get(self):
return map(lambda x:x or "",
map(self.getMap().get,
map(getCommonDeviceName,
self.Get(self.indexField))))
def getMapHumanReadable(self): def getMapHumanReadable(self):
#return map(lambda x:humanreadableSize(x) if x else "", #return map(lambda x:humanreadableSize(x) if x else "",
# self.Get()) # self.Get())
@ -1112,6 +1115,13 @@ class VariableOsLocationSize(LocationHelper,SourceReadonlyVariable):
self.Get('cl_autopartition_disk_size',humanreadable=True))) self.Get('cl_autopartition_disk_size',humanreadable=True)))
return mapDevSize return mapDevSize
def humanReadable(self):
return map(lambda x:x or "",
map(self.getMapHumanReadable().get,
map(getCommonDeviceName,
self.Get(self.indexField))))
class VariableClUuidSet(Variable): class VariableClUuidSet(Variable):
""" """
Use or not UUID for /etc/fstab Use or not UUID for /etc/fstab
@ -1153,10 +1163,11 @@ class VariableOsInstallDiskDev(ReadonlyVariable):
type = "list" type = "list"
def get(self): def get(self):
return map(lambda x:x[0], return map(getCommonDeviceName,
map(lambda x:x[0],
filter(lambda x:x[0].startswith('/dev/') and x[1], filter(lambda x:x[0].startswith('/dev/') and x[1],
zip(self.Get('os_location_source'), zip(self.Get('os_location_source'),
self.Get('os_location_dest')))) self.Get('os_location_dest')))))
class VariableOsInstallDiskUuid(ReadonlyVariable): class VariableOsInstallDiskUuid(ReadonlyVariable):
""" """
@ -1547,9 +1558,12 @@ class VariableOsInstallRootType(LocationHelper,Variable):
class VariableOsInstallRootDev(ReadonlyVariable): class VariableOsInstallRootDev(ReadonlyVariable):
def get(self): def get(self):
"""Get install root device""" """Get install root device"""
return self.Select('os_install_disk_dev', if self.Get('cl_action') == 'system':
where='os_install_disk_mount', return self.Select('os_install_disk_dev',
eq="/",limit=1) or '' where='os_install_disk_mount',
eq="/",limit=1) or ''
else:
return self.Get('os_root_dev')
class VariableOsInstallFstabMountConf(ReadonlyVariable,DeviceHelper): class VariableOsInstallFstabMountConf(ReadonlyVariable,DeviceHelper):
""" """

Loading…
Cancel
Save