Fix a bug when deleting a logical partition whose pre_partition and
next_partition are free and in the extended partition. modified: new_partition/interface_partition.py
This commit is contained in:
@@ -608,58 +608,58 @@ def del_msdos_partition(partition,dev):
|
||||
base_unit
|
||||
p_d.delete_one_partition(p_d.Partition.dict, dev, next_partition)
|
||||
for p in p_d.sort_partitions(p_d.Partition.dict, dev, "all"):
|
||||
p_num = p_d.Partition.dict[dev]['partition'][p]['num']
|
||||
if p_d.Partition.dict[dev]['partition'][p]['sn'] > partition_sn + 1:
|
||||
p_d.Partition.dict[dev]['partition'][p]['sn'] -= 2
|
||||
if p_num > partition_num and not re.search('free', p):
|
||||
p_num -= 1
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['num'] = \
|
||||
p_num
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['sn'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['sn']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['start'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['start']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['end'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['end']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['size'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['size']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['type'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['type']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['filesystem'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['filesystem']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['flags'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['flags']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['from_os'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['from_os']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['mount_point'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['mount_point']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['format'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['format']
|
||||
if re.search('free',p):
|
||||
p_num -= 1
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['num'] = \
|
||||
p_num
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['sn'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['sn']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['start'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['start']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['end'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['end']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['size'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['size']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['filesystem'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['filesystem']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['type'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['type']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['flags'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['flags']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['from_os'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['from_os']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['format'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['format']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['mount_point'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['mount_point']
|
||||
|
||||
for p in p_d.sort_partitions(p_d.Partition.dict, dev, "all"):
|
||||
p_num = p_d.Partition.dict[dev]['partition'][p]['num']
|
||||
if p_num > partition_num and not re.search('free', p):
|
||||
p_num -= 1
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['num'] = \
|
||||
p_num
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['sn'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['sn']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['start'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['start']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['end'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['end']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['size'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['size']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['type'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['type']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['filesystem'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['filesystem']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['flags'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['flags']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['from_os'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['from_os']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['mount_point'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['mount_point']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['format'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['format']
|
||||
if p_num > partition_num and re.search('free',p):
|
||||
p_num -= 1
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['num'] = \
|
||||
p_num
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['sn'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['sn']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['start'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['start']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['end'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['end']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['size'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['size']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['filesystem'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['filesystem']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['type'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['type']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['flags'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['flags']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['from_os'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['from_os']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['format'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['format']
|
||||
p_d.Partition.dict[dev]['partition']['free '+ str(p_num)]['mount_point'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['mount_point']
|
||||
p_num_max = 1
|
||||
for p in p_d.sort_partitions(p_d.Partition.dict, dev, "partition"):
|
||||
if p_d.Partition.dict[dev]['partition'][p]['num'] > p_num_max:
|
||||
@@ -670,9 +670,8 @@ def del_msdos_partition(partition,dev):
|
||||
for f in p_d.sort_partitions(p_d.Partition.dict, dev, "free"):
|
||||
if p_d.Partition.dict[dev]['partition'][f]['num'] > f_num_max:
|
||||
f_num_max = p_d.Partition.dict[dev]['partition'][f]['num']
|
||||
if f_num_max > p_d.Partition.dict[dev]['partition'][next_partition]['num']:
|
||||
if f_num_max > p_d.Partition.dict[dev]['partition'][pre_partition]['num']:
|
||||
p_d.delete_one_partition(p_d.Partition.dict, dev, 'free '+str(f_num_max))
|
||||
|
||||
else:
|
||||
p_d.Partition.dict[dev]['partition'][next_partition]['start'] = partition_start
|
||||
p_d.Partition.dict[dev]['partition'][next_partition]['sn'] = partition_sn
|
||||
@@ -831,6 +830,10 @@ def del_msdos_partition(partition,dev):
|
||||
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['size'] = partition_size
|
||||
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['type'] = ''
|
||||
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['flags'] = ''
|
||||
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['from_os'] = 'no'
|
||||
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['format'] = 'no'
|
||||
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['mount_point'] = ''
|
||||
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['filesystem'] = 'Free Space'
|
||||
|
||||
else:
|
||||
free_num_max = 1
|
||||
|
||||
Reference in New Issue
Block a user