示例#1
0
def format_partition(mia, operid, devpath, part_start, fstype):
    mia.set_step(operid, 0, -1)
    if not CONF_FSTYPE_MAP.has_key(fstype):
        errmsg = _('Unrecoginzed filesystem %s.')
        return errmsg % fstype
    if CONF_FSTYPE_MAP[fstype][1] == '':
        errmsg = _('Format %s is not supported.')
        return errmsg % fstype
    if not CONF.RUN.g_all_harddisks.has_key(devpath):
        return _('No such device: ') + devpath
    disk = CONF.RUN.g_all_harddisks[devpath][1]
    if not disk:
        return _('Not any partition table found on: ') + devpath
    #part = disk.next_partition()
    part = disk.getFirstPartition()
    while part:
        if part.geometry.start != part_start:
            #part = disk.next_partition(part)
            part = part.nextPartition()
            continue
        if CONF_FSTYPE_MAP[fstype][1] == 'internal':
            parted_fstype = parted.fileSystemType[revision_fstype(fstype)]
            try:
                part.getPedPartition().set_system(parted_fstype)
                part.fileSystem.create()
                disk.commit()
                return  0
            except NotImplementedError, errmsg:
                return  str(errmsg)
            except parted.DiskException as errmsg:
                return  str(errmsg)
示例#2
0
                #newgeom = _grow_over_small_freespace(newpart.geometry, disk)
                #if newgeom:
                #    newpart.geom.set_start(newgeom.start)
                #    newpart.geom.set_end(newgeom.end)
                #    disk.add_partition(newpart, constraint)
                #    if fstype:
                #        newpart.set_system(fstype)
                
            #except  parted.error:
            #    exc_info = sys.exc_info()
            #    return (-1, str(exc_info[1]))
            except _ped.PartitionException, errmsg:
                return(-1, str(errmsg))
            CONF.RUN.g_all_harddisks[devpath] = (dev, disk, 'y')
            return (newpart.geometry.start, '')
    return (-1, _("Can't find the specified disk."))

@register.server_handler('long')
def set_flags_and_label(mia, operid, devpath, part_start,
                        true_flags, false_flags, set_label, label):
    if CONF.RUN.g_all_harddisks.has_key(devpath):
        disk = CONF.RUN.g_all_harddisks[devpath][1]
        if disk:
            part = disk.getFirstPartition()
            while part:
                if part.geometry.start == part_start:
                    for tf in true_flags:
                        part.setFlag(tf)
                    for ff in false_flags:
                        part.unsetFlag(ff)
                    if set_label == 'true':