Exclude FileSystemManager from cl_install to fs_manager module

master3.3
Mike Hiretsky 12 years ago
parent c4f943bf1d
commit a997c8f930

@ -35,7 +35,7 @@ from calculate.lib.cl_fill import clLocale
from calculate.lib.cl_template import _terms
from calculate.install.cl_distr import (DistributiveRepository,
PartitionDistributive)
from calculate.install.cl_install import FileSystemManager
from calculate.install.fs_manager import FileSystemManager
from operator import itemgetter
from calculate.lib.cl_lang import setLocalTranslate

@ -39,6 +39,7 @@ from calculate.lib.utils import ip
from datavars import DataVarsInstall, __version__,__app__
from calculate.install.variables.autopartition import (AutopartitionError,
AutoPartition)
from calculate.install.fs_manager import FileSystemManager
from cl_kernel_utils import KernelConfig,InitRamFs
@ -87,123 +88,6 @@ class printNoColor:
def colorPrint(self,attr,fg,bg,string):
sys.stdout.write(string)
class FileSystemManager:
"""Convert dict install option"""
defaultOpt = 'noatime'
defaultBindOpts = ['bind']
supportFS = {
'ext2': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.ext2',
'formatparam': '{labelparam} {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'ext3': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.ext3',
'formatparam': '{labelparam} {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'ext4': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.ext4',
'formatparam': '{labelparam} {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'reiserfs': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.reiserfs',
'formatparam': '{labelparam} -f {device}',
'gpt': '0700',
'label': '-l {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'btrfs': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.btrfs',
'formatparam': '{labelparam} {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'jfs': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.jfs',
'formatparam': '{labelparam} -f {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'xfs': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.xfs',
'formatparam': '{labelparam} -f {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'nilfs2': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.nilfs2',
'formatparam': '{labelparam} {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'swap': {'defaultopt': 'sw',
'format': '/sbin/mkswap',
'formatparam': '{device}',
'gpt': '8200',
'label': '',
'msdos': '82'},
'vfat': {'defaultopt': defaultOpt,
'format': '/usr/sbin/mkfs.vfat',
'formatparam': '{labelparam} -F 32 {device}',
'gpt': '0700',
'label': '-n {labelname}',
'msdos': '0b',
'type':['flash']},
'ntfs': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.ntfs',
'formatparam': '{labelparam} -FQ {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '7',
'compatible':['ntfs-3g']},
'ntfs-3g': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.ntfs',
'formatparam': '{labelparam} -FQ {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '7',
'compatible':['ntfs']}}
@classmethod
def firstAvailable(cls,listFS):
for fs in listFS:
if path.exists(cls.supportFS['format']):
return fs
else:
return ""
defaultFS = {'hdd':"ext4" \
if path.exists(supportFS['ext4']['format']) else \
"reiserfs" \
if path.exists(supportFS['reiserfs']['format']) else \
"ext3",
'flash':"vfat",
'usb-hdd': "ext4" \
if path.exists(supportFS['ext4']['format']) else \
"reiserfs" \
if path.exists(supportFS['reiserfs']['format']) else \
"ext3"}
@classmethod
def getDefaultOpt(cls,fs):
return cls.supportFS.get(fs,{'defaultopt':''})['defaultopt']
@classmethod
def checkFSForType(cls,fs,roottype):
return roottype in cls.supportFS.get(fs,{}).get('type',[])
class cltCopy(scanDirectory):
"""Copy clt files
@ -824,16 +708,18 @@ class Install(color_print, SignalInterrupt):
sourceDistr = None
try:
self.clVars.printVars()
if self.Get('cl_autopartition_scheme'):
if self.Get('cl_autopartition_table') != "dos":
if self.clVars.Get('cl_autopartition_scheme'):
if self.clVars.Get('cl_autopartition_table') != "dos":
raise InstallError(
_('Autopartitioning for gpt is not supported'))
self.startTask(_("Creating new partition table"),progress=True)
self.startTask(_("Creating new partition table"),
progress=True)
AutoPartition().recreatePartitionTableDos(
self.Get('cl_autopartition_device'),
self.Get('cl_autopartition_scheme'),
str(int(self.Get('hr_memory_size'))/1024),
str(int(self.Get('cl_autopartion_root_size'))*1024))
self.clVars.Get('cl_autopartition_device'),
self.clVars.Get('cl_autopartition_scheme'),
str(int(self.clVars.Get('hr_memory_size'))/1024),
str(int(self.clVars.Get('cl_autopartition_root_size'))
*1024))
self.endTask()
targetDistr = self.clVars.Get('cl_target')
sourceDistr = self.clVars.Get('cl_image')

@ -0,0 +1,142 @@
#-*- coding: utf-8 -*-
# Copyright 2010 Calculate Ltd. http://www.calculate-linux.org
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import os
import re
import sys
import time
import traceback
from os import path
from calculate.lib.cl_lang import setLocalTranslate
setLocalTranslate('cl_install',sys.modules[__name__])
class FileSystemManager:
"""Convert dict install option"""
defaultOpt = 'noatime'
defaultBindOpts = ['bind']
supportFS = {
'ext2': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.ext2',
'formatparam': '{labelparam} {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'ext3': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.ext3',
'formatparam': '{labelparam} {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'ext4': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.ext4',
'formatparam': '{labelparam} {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'reiserfs': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.reiserfs',
'formatparam': '{labelparam} -f {device}',
'gpt': '0700',
'label': '-l {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'btrfs': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.btrfs',
'formatparam': '{labelparam} {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'jfs': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.jfs',
'formatparam': '{labelparam} -f {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'xfs': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.xfs',
'formatparam': '{labelparam} -f {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'nilfs2': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.nilfs2',
'formatparam': '{labelparam} {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '83',
'type':['hdd','usb-hdd']},
'swap': {'defaultopt': 'sw',
'format': '/sbin/mkswap',
'formatparam': '{device}',
'gpt': '8200',
'label': '',
'msdos': '82'},
'vfat': {'defaultopt': defaultOpt,
'format': '/usr/sbin/mkfs.vfat',
'formatparam': '{labelparam} -F 32 {device}',
'gpt': '0700',
'label': '-n {labelname}',
'msdos': '0b',
'type':['flash']},
'ntfs': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.ntfs',
'formatparam': '{labelparam} -FQ {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '7',
'compatible':['ntfs-3g']},
'ntfs-3g': {'defaultopt': defaultOpt,
'format': '/sbin/mkfs.ntfs',
'formatparam': '{labelparam} -FQ {device}',
'gpt': '0700',
'label': '-L {labelname}',
'msdos': '7',
'compatible':['ntfs']}}
@classmethod
def firstAvailable(cls,listFS):
for fs in listFS:
if path.exists(cls.supportFS['format']):
return fs
else:
return ""
defaultFS = {'hdd':"ext4" \
if path.exists(supportFS['ext4']['format']) else \
"reiserfs" \
if path.exists(supportFS['reiserfs']['format']) else \
"ext3",
'flash':"vfat",
'usb-hdd': "ext4" \
if path.exists(supportFS['ext4']['format']) else \
"reiserfs" \
if path.exists(supportFS['reiserfs']['format']) else \
"ext3"}
@classmethod
def getDefaultOpt(cls,fs):
return cls.supportFS.get(fs,{'defaultopt':''})['defaultopt']
@classmethod
def checkFSForType(cls,fs,roottype):
return roottype in cls.supportFS.get(fs,{}).get('type',[])

@ -27,7 +27,7 @@ from calculate.lib.utils.device import (getUdevDeviceInfo,getDeviceType,
from calculate.lib.utils.files import (listDirectory,pathJoin,readFile,FStab,
readLinesFile,process,getProgPath)
from calculate.install.cl_distr import PartitionDistributive
from calculate.install.cl_install import FileSystemManager
from calculate.install.fs_manager import FileSystemManager
from calculate.lib.cl_lang import setLocalTranslate
@ -90,10 +90,7 @@ class AutoPartition:
num +=1
fdisk.write(WRITE_AND_QUIT)
if fdiskProcess.success():
return True
pipe.stdin.close()
pipe.wait()
fdisk.success()
for waittime in (0.1,0.2,0.5,1,2,4):
if path.exists(device+str(num-1)):
return True

@ -25,7 +25,7 @@ from calculate.lib.utils.device import (getUdevDeviceInfo,getDeviceType,
getUUIDDict)
from calculate.lib.utils.files import listDirectory,pathJoin,readFile,FStab
from calculate.install.cl_distr import PartitionDistributive
from calculate.install.cl_install import FileSystemManager
from calculate.install.fs_manager import FileSystemManager
from calculate.lib.cl_lang import setLocalTranslate
setLocalTranslate('cl_install',sys.modules[__name__])

@ -220,7 +220,7 @@ class VariableOsInstallKernelCpufreq(ReadonlyVariable):
else:
return ""
class VariableOsInstallKernelUid(ReadonlyVariable):
class VariableClInstallKernelUid(ReadonlyVariable):
"""
Variable install kernel UID
"""

@ -20,7 +20,7 @@ import re
from os import path
from calculate.lib.datavars import Variable,VariableError,ReadonlyVariable
from calculate.install.variables.net import NetVariable
from calculate.install.cl_install import FileSystemManager
from calculate.install.fs_manager import FileSystemManager
from calculate.lib.utils.files import readFile,getProgPath,process
from calculate.lib.utils.common import getPasswdUsers
from crypt import crypt

Loading…
Cancel
Save