Modify partition-tool:

correct making extended partition
    to parse xml successfully, filling all partition (includding free
    space) data

    modified:   new_partition/interface_partition.py
This commit is contained in:
Peng Zhihui
2014-01-13 16:17:59 +08:00
parent 5c7c4af1bc
commit 1f019ef18f

View File

@@ -335,10 +335,15 @@ def add_partition(ptype='', extended='', label=''):
#partition_start = free_space_start + base_unit
partition_end = str(float(free_space_start) + size_set_num) + base_unit
# 4k align
if float(free_space_start)/2048.0 == int(float(free_space_start)/2048.0) != 0:
partition_start = free_space_start + base_unit
else:
partition_start = str((int(float(free_space_start)/2048.0)+1)*2048) + base_unit
if float(free_space_start)/2048.0 == int(float(free_space_start)/2048.0) != 0:
partition_start = free_space_start + base_unit
else:
partition_start = str((int(float(free_space_start)/2048.0)+1)*2048) + base_unit
if (float(free_space_start)+size_set_num+1)/2048.0 == int((float(free_space_start)+size_set_num+1)/2048.0) != 0:
pass
else:
partition_end = str((int(float(get_num(partition_end))/2048.0)+1)*2048-1) + base_unit
flags = ''
if cb_boot.value() == 1:
@@ -360,6 +365,7 @@ def add_partition(ptype='', extended='', label=''):
pass
else:
if ptype == 'logical':
partition_start = str(float(get_num(partition_start))+2048) + base_unit
partition_num = 4
for p in list_partition_sorted:
if int(p_d.Partition.dict[dev]['partition'][p]['num']) > partition_num \
@@ -377,10 +383,6 @@ def add_partition(ptype='', extended='', label=''):
break
partition_num += 1
#if re.search('/cciss/',dev):
# partition = dev + 'p' + str(partition_num)
#else:
# partition = dev + str(partition_num)
partition = pre_partition_name + str(partition_num)
partition_sn = free_space_sn
@@ -445,8 +447,13 @@ def add_partition(ptype='', extended='', label=''):
p_d.Partition.dict[dev]['partition'][p]['end']
p_d.Partition.dict[dev]['partition']['free '+str(p_num+1)]['size'] =\
p_d.Partition.dict[dev]['partition'][p]['size']
p_d.Partition.dict[dev]['partition']['free '+str(p_num+1)]['filesystem'] =\
p_d.Partition.dict[dev]['partition'][p]['filesystem']
p_d.Partition.dict[dev]['partition']['free '+str(p_num+1)]['type'] = ''
p_d.Partition.dict[dev]['partition']['free '+str(p_num+1)]['flags'] = ''
p_d.Partition.dict[dev]['partition']['free '+str(p_num+1)]['from_os'] = 'no'
p_d.Partition.dict[dev]['partition']['free '+str(p_num+1)]['format'] = 'no'
p_d.Partition.dict[dev]['partition']['free '+str(p_num+1)]['mount_point'] = ''
else:
p_d.Partition.dict[dev]['partition'][p]['sn'] = p_d.Partition.dict[dev]['partition'][p]['sn']+1
@@ -460,11 +467,16 @@ def add_partition(ptype='', extended='', label=''):
free_num += 1
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['sn'] = int(partition_sn+1)
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['num'] = int(free_num)
#p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['start'] = str(float(get_num(partition_start))+2048) + base_unit
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['start'] = partition_start
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['end'] = partition_end
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['size'] = size_set
p_d.Partition.dict[dev]['partition']['free '+str(free_num)]['filesystem'] = 'Free Space'
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'] = ''
if label == 'msdos' and re.search('boot', p_d.Partition.dict[dev]['partition'][partition]['flags']):
for p in p_d.sort_partitions(p_d.Partition.dict,dev,'partition'):
@@ -526,8 +538,12 @@ def del_msdos_partition(partition,dev):
p_d.Partition.dict[dev]['partition']['free '+str(p_num-del_free_count)]['start'] = p_start
p_d.Partition.dict[dev]['partition']['free '+str(p_num-del_free_count)]['end'] = p_end
p_d.Partition.dict[dev]['partition']['free '+str(p_num-del_free_count)]['size'] = p_size
p_d.Partition.dict[dev]['partition']['free '+str(p_num-del_free_count)]['filesystem'] = 'Free Space'
p_d.Partition.dict[dev]['partition']['free '+str(p_num-del_free_count)]['type'] = ''
p_d.Partition.dict[dev]['partition']['free '+str(p_num-del_free_count)]['flags'] = ''
p_d.Partition.dict[dev]['partition']['free '+str(p_num-del_free_count)]['from_os'] = 'no'
p_d.Partition.dict[dev]['partition']['free '+str(p_num-del_free_count)]['format'] = 'no'
p_d.Partition.dict[dev]['partition']['free '+str(p_num-del_free_count)]['mount_point'] = ''
list_partition_all_sorted = p_d.sort_partitions(p_d.Partition.dict, dev, "all")
for p in list_partition_all_sorted:
@@ -597,10 +613,18 @@ def del_msdos_partition(partition,dev):
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"):
@@ -634,6 +658,8 @@ def del_msdos_partition(partition,dev):
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)]['filesystem'] = \
p_d.Partition.dict[dev]['partition'][p]['filesystem']
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)]['flags'] = \
@@ -659,7 +685,7 @@ def del_msdos_partition(partition,dev):
else:
free_num = 0
list_free_sorted = p_d.sort_partitions(p_d.Partition.dict, dev, "free")
if p_d.Partition.dict[dev]['partition'][list_free_sorted[0]]['sn'] > partition_sn:
if list_free_sorted == [] or p_d.Partition.dict[dev]['partition'][list_free_sorted[0]]['sn'] > partition_sn:
pass
else:
for i in range(len(list_free_sorted)):
@@ -683,10 +709,18 @@ def del_msdos_partition(partition,dev):
p_d.Partition.dict[dev]['partition'][f]['end']
p_d.Partition.dict[dev]['partition']['free '+str(f_num)]['size']= \
p_d.Partition.dict[dev]['partition'][f]['size']
p_d.Partition.dict[dev]['partition']['free '+str(f_num)]['filesystem']= \
p_d.Partition.dict[dev]['partition'][f]['filesystem']
p_d.Partition.dict[dev]['partition']['free '+str(f_num)]['type']= \
p_d.Partition.dict[dev]['partition'][f]['type']
p_d.Partition.dict[dev]['partition']['free '+str(f_num)]['flags']= \
p_d.Partition.dict[dev]['partition'][f]['flags']
p_d.Partition.dict[dev]['partition']['free '+str(f_num)]['from_os']= \
p_d.Partition.dict[dev]['partition'][f]['from_os']
p_d.Partition.dict[dev]['partition']['free '+str(f_num)]['mount_point']= \
p_d.Partition.dict[dev]['partition'][f]['mount_point']
p_d.Partition.dict[dev]['partition']['free '+str(f_num)]['format']= \
p_d.Partition.dict[dev]['partition'][f]['format']
for p in p_d.sort_partitions(p_d.Partition.dict, dev, "partition"):
p_num = p_d.Partition.dict[dev]['partition'][p]['num']
if p_d.Partition.dict[dev]['partition'][p]['sn'] >partition_sn \
@@ -736,6 +770,12 @@ def del_msdos_partition(partition,dev):
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max)]['start'] = partition_start
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max)]['end'] = partition_end
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max)]['size'] = partition_size
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max)]['filesystem'] = 'Free Space'
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max)]['type'] = ''
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max)]['flag'] = ''
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max)]['from_os'] = 'no'
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max)]['format'] = 'no'
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max)]['mount_point'] = ''
else:
if locals().has_key('pre_partition') and locals().has_key('next_partition'):
@@ -751,27 +791,7 @@ def del_msdos_partition(partition,dev):
float(get_num(partition_start))) + base_unit
for p in p_d.sort_partitions(p_d.Partition.dict, dev, "all"):
if p_d.Partition.dict[dev]['partition'][p]['sn'] > partition_sn:
#if not re.search('free', p):
# p_num = p_d.Partition.dict[dev]['partition'][p]['num']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['num']\
# = p_num -1
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['sn']\
# = p_d.Partition.dict[dev]['partition'][p]['sn']-1
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['start']\
# = p_d.Partition.dict[dev]['partition'][p]['start']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['end']\
# = p_d.Partition.dict[dev]['partition'][p]['end']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['size']\
# = p_d.Partition.dict[dev]['partition'][p]['size']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['type']\
# = p_d.Partition.dict[dev]['partition'][p]['type']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['flags']\
# = p_d.Partition.dict[dev]['partition'][p]['flags']
#else:
p_d.Partition.dict[dev]['partition'][p]['sn'] -= 1
#partition_last = p_d.sort_partitions(p_d.Partition.dict,dev,"partition")[::-1][0]
#if p_d.Partition.dict[dev]['partition'][partition_last]['sn'] > partition_sn:
# p_d.delete_one_partition(p_d.Partition.dict,dev,partition_last)
else:
p_d.Partition.dict[dev]['partition'][pre_partition]['end'] = \
@@ -794,10 +814,18 @@ def del_msdos_partition(partition,dev):
= p_d.Partition.dict[dev]['partition'][p]['end']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['size']\
= p_d.Partition.dict[dev]['partition'][p]['size']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['filesystem']\
= p_d.Partition.dict[dev]['partition'][p]['filesystem']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['type']\
= p_d.Partition.dict[dev]['partition'][p]['type']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['flags']\
= p_d.Partition.dict[dev]['partition'][p]['flags']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['from_os']\
= p_d.Partition.dict[dev]['partition'][p]['from_os']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['format']\
= p_d.Partition.dict[dev]['partition'][p]['format']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['mount_point']\
= p_d.Partition.dict[dev]['partition'][p]['mount_point']
else:
p_d.Partition.dict[dev]['partition'][p]['sn'] -= 2
if len(p_d.sort_partitions(p_d.Partition.dict, dev,"free")) > 1:
@@ -824,10 +852,18 @@ def del_msdos_partition(partition,dev):
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['end']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['size'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['size']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['filesystem'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['filesystem']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['type'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['type']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['flags'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['flags']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['from_os'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['from_os']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['format'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['format']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['mount_point'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['mount_point']
if p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['sn'] < partition_sn:
free_num_mid = p_d.Partition.dict[dev]['partition']['free '+str(i+1)]['num']
break
@@ -836,8 +872,12 @@ def del_msdos_partition(partition,dev):
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['start'] = partition_start
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['end'] = partition_end
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['size'] = partition_size
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['filesystem'] = 'Free Space'
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['type'] = ''
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['flags'] = ''
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['from_os'] = ''
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['format'] = ''
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['mount_point'] = ''
else:
p_d.Partition.dict[dev]['partition'][pre_partition]['end'] = partition_end
p_d.Partition.dict[dev]['partition'][pre_partition]['size'] = \
@@ -846,26 +886,7 @@ def del_msdos_partition(partition,dev):
base_unit
for p in p_d.sort_partitions(p_d.Partition.dict, dev, "all"):
if p_d.Partition.dict[dev]['partition'][p]['sn'] > partition_sn:
#if not re.search('free', p):
# p_num = p_d.Partition.dict[dev]['partition'][p]['num']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['num']\
# = p_num -1
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['sn']\
# = p_d.Partition.dict[dev]['partition'][p]['sn']-1
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['start']\
# = p_d.Partition.dict[dev]['partition'][p]['start']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['end']\
# = p_d.Partition.dict[dev]['partition'][p]['end']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['size']\
# = p_d.Partition.dict[dev]['partition'][p]['size']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['type']\
# = p_d.Partition.dict[dev]['partition'][p]['type']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['flags']\
# = p_d.Partition.dict[dev]['partition'][p]['flags']
#else:
p_d.Partition.dict[dev]['partition'][p]['sn'] -= 1
#partition_last = p_d.sort_partitions(p_d.Partition.dict,dev,"partition")[::-1][0]
#p_d.delete_one_partition(p_d.Partition.dict,dev,partition_last)
elif not re.search('free', pre_partition) and re.search('free',next_partition):
p_d.Partition.dict[dev]['partition'][next_partition]['start'] = partition_start
@@ -874,28 +895,7 @@ def del_msdos_partition(partition,dev):
float(get_num(partition_start))) + base_unit
for p in p_d.sort_partitions(p_d.Partition.dict, dev, "all"):
if p_d.Partition.dict[dev]['partition'][p]['sn'] > partition_sn:
#if not re.search('free', p):
# p_num = p_d.Partition.dict[dev]['partition'][p]['num']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['num']\
# = p_num -1
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['sn']\
# = p_d.Partition.dict[dev]['partition'][p]['sn']-1
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['start']\
# = p_d.Partition.dict[dev]['partition'][p]['start']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['end']\
# = p_d.Partition.dict[dev]['partition'][p]['end']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['size']\
# = p_d.Partition.dict[dev]['partition'][p]['size']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['type']\
# = p_d.Partition.dict[dev]['partition'][p]['type']
# p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num-1)]['flags']\
# = p_d.Partition.dict[dev]['partition'][p]['flags']
#else:
p_d.Partition.dict[dev]['partition'][p]['sn'] -= 1
#partition_last = p_d.sort_partitions(p_d.Partition.dict,dev,"partition")[::-1][0]
#if p_d.Partition.dict[dev]['partition'][partition_last]['sn'] > partition_sn:
# p_d.delete_one_partition(p_d.Partition.dict,dev,partition_last)
else:
len_free_list = len(p_d.sort_partitions(p_d.Partition.dict, dev, "free"))
free_num_mid = 0
@@ -911,10 +911,19 @@ def del_msdos_partition(partition,dev):
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['end']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['size'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['size']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['filesystem'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['filesystem']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['type'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['type']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['flags'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['flags']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['from_os'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['from_os']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['format'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['format']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['mount_point'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['mount_point']
if p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['sn'] < partition_sn:
free_num_mid = p_d.Partition.dict[dev]['partition']['free '+str(i+1)]['num']
break
@@ -923,28 +932,12 @@ def del_msdos_partition(partition,dev):
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['start'] = partition_start
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['end'] = partition_end
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['size'] = partition_size
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['filesystem'] = 'Free Space'
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['type'] = ''
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['flags'] = ''
#for p in p_d.sort_partitions(p_d.Partition.dict, dev, "partition"):
# p_num = p_d.Partition.dict[dev]['partition'][p]['num']
# p_sn = p_d.Partition.dict[dev]['partition'][p]['sn']
# if p_sn > partition_sn and p_num < 5:
# 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_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)]['flags']\
# = p_d.Partition.dict[dev]['partition'][p]['flags']
# p_d.delete_one_partition(p_d.Partition.dict,dev,p)
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['from_os'] = ''
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['format'] = ''
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['mount_point'] = ''
elif locals().has_key('pre_partition') and not locals().has_key('next_partition'):
if re.search('free', pre_partition) and ((locals().has_key('extended_start') and\
@@ -972,10 +965,18 @@ def del_msdos_partition(partition,dev):
= partition_end
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['size']\
= partition_size
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['filesystem']\
= 'Free Space'
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['type']\
= ''
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['flags']\
= ''
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['from_os']\
= 'no'
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['format']\
= 'no'
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['mount_point']\
= ''
elif not locals().has_key('pre_partition') and locals().has_key('next_partition'):
if re.search('free', next_partition):
@@ -987,6 +988,12 @@ def del_msdos_partition(partition,dev):
p_d.Partition.dict[dev]['partition']['free 1']['size'] = \
str(float(get_num(p_d.Partition.dict[dev]['partition']['free 1']['end']))\
- float(get_num(partition_start))) + base_unit
p_d.Partition.dict[dev]['partition']['free 1']['filesystem'] = 'Free Space'
p_d.Partition.dict[dev]['partition']['free 1']['type'] = ''
p_d.Partition.dict[dev]['partition']['free 1']['flags'] = ''
p_d.Partition.dict[dev]['partition']['free 1']['from_os'] = 'no'
p_d.Partition.dict[dev]['partition']['free 1']['format'] = 'no'
p_d.Partition.dict[dev]['partition']['free 1']['mount_point'] = ''
else:
for f in p_d.sort_partitions(p_d.Partition.dict, dev,"free")[::-1]:
free_num = p_d.Partition.dict[dev]['partition'][f]['num']
@@ -1000,17 +1007,30 @@ def del_msdos_partition(partition,dev):
= p_d.Partition.dict[dev]['partition'][f]['end']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['size']\
= p_d.Partition.dict[dev]['partition'][f]['size']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['filesystem']\
= p_d.Partition.dict[dev]['partition'][f]['filesystem']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['type']\
= p_d.Partition.dict[dev]['partition'][f]['type']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['flags']\
= p_d.Partition.dict[dev]['partition'][f]['flags']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['from_os']\
= p_d.Partition.dict[dev]['partition'][f]['from_os']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['format']\
= p_d.Partition.dict[dev]['partition'][f]['format']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['mount_point']\
= p_d.Partition.dict[dev]['partition'][f]['mount_point']
p_d.Partition.dict[dev]['partition']['free 1']['num'] = partition_num
p_d.Partition.dict[dev]['partition']['free 1']['sn'] = partition_sn
p_d.Partition.dict[dev]['partition']['free 1']['start'] = partition_start
p_d.Partition.dict[dev]['partition']['free 1']['end'] = partition_end
p_d.Partition.dict[dev]['partition']['free 1']['size'] = partition_size
p_d.Partition.dict[dev]['partition']['free 1']['filesystem'] = 'Free Space'
p_d.Partition.dict[dev]['partition']['free 1']['type'] = ''
p_d.Partition.dict[dev]['partition']['free 1']['flags'] = ''
p_d.Partition.dict[dev]['partition']['free 1']['from_os'] = 'no'
p_d.Partition.dict[dev]['partition']['free 1']['format'] = 'no'
p_d.Partition.dict[dev]['partition']['free 1']['mount_point'] = ''
else:
p_d.delete_all_partitions(p_d.Partition.dict, dev)
@@ -1066,10 +1086,18 @@ def del_gpt_partition(partition,dev):
= p_d.Partition.dict[dev]['partition'][p]['end']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['size']\
= p_d.Partition.dict[dev]['partition'][p]['size']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['filesystem']\
= p_d.Partition.dict[dev]['partition'][p]['filesystem']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['type']\
= p_d.Partition.dict[dev]['partition'][p]['type']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['flags']\
= p_d.Partition.dict[dev]['partition'][p]['flags']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['from_os']\
= p_d.Partition.dict[dev]['partition'][p]['from_os']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['format']\
= p_d.Partition.dict[dev]['partition'][p]['format']
p_d.Partition.dict[dev]['partition']['free '+str(p_num-1)]['mount_point']\
= p_d.Partition.dict[dev]['partition'][p]['mount_point']
else:
p_d.Partition.dict[dev]['partition'][p]['sn'] -= 2
if len(p_d.sort_partitions(p_d.Partition.dict, dev,"free")) > 1:
@@ -1107,10 +1135,19 @@ def del_gpt_partition(partition,dev):
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['end']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['size'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['size']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['filesystem'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['filesystem']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['type'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['type']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['flags'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['flags']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['from_os'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['from_os']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['format'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['format']
p_d.Partition.dict[dev]['partition'] ['free '+str(i+2)]['mount_point'] = \
p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['mount_point']
if p_d.Partition.dict[dev]['partition'] ['free '+str(i+1)]['sn'] < partition_sn:
free_num_mid = p_d.Partition.dict[dev]['partition']['free '+str(i+1)]['num']
break
@@ -1119,8 +1156,12 @@ def del_gpt_partition(partition,dev):
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['start'] = partition_start
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['end'] = partition_end
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['size'] = partition_size
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['filesystem'] = 'Free Space'
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['type'] = ''
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['flags'] = ''
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['from_os'] = 'no'
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['format'] = 'no'
p_d.Partition.dict[dev]['partition'] ['free '+str(free_num_mid+1)]['mount_point'] = ''
elif locals().has_key('pre_partition') and not locals().has_key('next_partition'):
if re.search('free', pre_partition):
@@ -1144,10 +1185,18 @@ def del_gpt_partition(partition,dev):
= partition_end
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['size']\
= partition_size
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['filesystem']\
= 'Free Space'
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['type']\
= ''
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['flags']\
= ''
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['from_os']\
= 'no'
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['format']\
= 'no'
p_d.Partition.dict[dev]['partition']['free '+str(free_num_max+1)]['mount_point']\
= ''
elif not locals().has_key('pre_partition') and locals().has_key('next_partition'):
if re.search('free', next_partition):
@@ -1159,6 +1208,12 @@ def del_gpt_partition(partition,dev):
p_d.Partition.dict[dev]['partition']['free 1']['size'] = \
str(float(get_num(p_d.Partition.dict[dev]['partition']['free 1']['end']))\
- float(get_num(partition_start))) + base_unit
p_d.Partition.dict[dev]['partition']['free 1']['filesystem'] = 'Free Space'
p_d.Partition.dict[dev]['partition']['free 1']['type'] = ''
p_d.Partition.dict[dev]['partition']['free 1']['flags'] = ''
p_d.Partition.dict[dev]['partition']['free 1']['from_os'] = 'no'
p_d.Partition.dict[dev]['partition']['free 1']['format'] = 'no'
p_d.Partition.dict[dev]['partition']['free 1']['mount_point'] = ''
else:
for f in p_d.sort_partitions(p_d.Partition.dict, dev,"free")[::-1]:
free_num = p_d.Partition.dict[dev]['partition'][f]['num']
@@ -1172,17 +1227,30 @@ def del_gpt_partition(partition,dev):
= p_d.Partition.dict[dev]['partition'][f]['end']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['size']\
= p_d.Partition.dict[dev]['partition'][f]['size']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['filesystem']\
= p_d.Partition.dict[dev]['partition'][f]['filesystem']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['type']\
= p_d.Partition.dict[dev]['partition'][f]['type']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['flags']\
= p_d.Partition.dict[dev]['partition'][f]['flags']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['from_os']\
= p_d.Partition.dict[dev]['partition'][f]['from_os']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['format']\
= p_d.Partition.dict[dev]['partition'][f]['format']
p_d.Partition.dict[dev]['partition']['free '+str(free_num+1)]['mount_point']\
= p_d.Partition.dict[dev]['partition'][f]['mount_point']
p_d.Partition.dict[dev]['partition']['free 1']['num'] = partition_num
p_d.Partition.dict[dev]['partition']['free 1']['sn'] = partition_sn
p_d.Partition.dict[dev]['partition']['free 1']['start'] = partition_start
p_d.Partition.dict[dev]['partition']['free 1']['end'] = partition_end
p_d.Partition.dict[dev]['partition']['free 1']['size'] = partition_size
p_d.Partition.dict[dev]['partition']['free 1']['filesystem'] = 'Free Space'
p_d.Partition.dict[dev]['partition']['free 1']['type'] = ''
p_d.Partition.dict[dev]['partition']['free 1']['flags'] = ''
p_d.Partition.dict[dev]['partition']['free 1']['from_os'] = 'no'
p_d.Partition.dict[dev]['partition']['free 1']['format'] = 'no'
p_d.Partition.dict[dev]['partition']['free 1']['mount_point'] = ''
else:
p_d.delete_all_partitions(p_d.Partition.dict, dev)