Merge "add support to sort disk by path" into dev/experimental
This commit is contained in:
commit
33c9f8451a
@ -7,31 +7,86 @@
|
||||
#set $vgname = $hostname.split('.')[0]
|
||||
#end if
|
||||
|
||||
declare -A disk_mapping
|
||||
set \$(ls -l /dev/disk/by-path | awk '{print \$9; print \$11}')
|
||||
let disk_mapping_nums=\$#/2
|
||||
let disk_mapping_offset=0
|
||||
echo "disk_mapping_nums: \$disk_mapping_nums" > /tmp/log
|
||||
echo "disk_mapping_offset: \$disk_mapping_offset" >> /tmp/log
|
||||
echo "disk_mapping: $*" >> /tmp/log
|
||||
while [ \$disk_mapping_offset -lt \$disk_mapping_nums ];
|
||||
do
|
||||
let found_disk_type=0
|
||||
#if $getVar('disk_type_only','') != ""
|
||||
if expr match "\$1" ".*-${disk_type_only}-.*"; then
|
||||
let found_disk_type=1
|
||||
fi
|
||||
#else
|
||||
let found_disk_type=1
|
||||
#end if
|
||||
if [ \$found_disk_type -gt 0 ]; then
|
||||
disk_name=\$(basename \$2)
|
||||
disk_mapping[\$disk_name]=\$1
|
||||
fi
|
||||
let disk_mapping_offset=\$disk_mapping_offset+1
|
||||
shift 2
|
||||
done
|
||||
for key in \${!disk_mapping[@]}; do
|
||||
echo "\$key => \${disk_mapping[\$key]}" >> /tmp/log
|
||||
done
|
||||
|
||||
declare -A disks
|
||||
set \$(list-harddrives)
|
||||
let disk_nums=\$#/2
|
||||
let disk_offset=0
|
||||
let found_disk_offset=0
|
||||
while [ \$disk_offset -lt \$disk_nums ];
|
||||
do
|
||||
#if $getVar('partitions_only','') != ""
|
||||
let found_disk=0
|
||||
if [[ x"\${disk_mapping[\$1]}" == x"" ]]; then
|
||||
echo "ignore disk \$1 since it is not in disk_mapping" >> /tmp/log
|
||||
else
|
||||
#if $getVar('partitions_only','') != ""
|
||||
#for $partition_only in $partitions_only.split(',')
|
||||
if expr match "\$1" "$partition_only"; then
|
||||
disks[found_disk_offset]=\$1
|
||||
let found_disk=1
|
||||
fi
|
||||
if expr match "\$1" "$partition_only"; then
|
||||
disks[\$found_disk_offset]=\$1
|
||||
let found_disk=1
|
||||
else
|
||||
echo "disk \$1 does not match $partition_only" >> /tmp/log
|
||||
fi
|
||||
#end for
|
||||
#else
|
||||
let found_disk=1
|
||||
#end if
|
||||
fi
|
||||
if [ \$found_disk -gt 0 ]; then
|
||||
echo "add disk \$1 in partitioning list" >> /tmp/log
|
||||
disks[\$found_disk_offset]=/dev/disk/by-path/\${disk_mapping[\$1]}
|
||||
let found_disk_offset=\$found_disk_offset+1
|
||||
fi
|
||||
#else
|
||||
disks[found_disk_offset]=\$1
|
||||
let found_disk_offset=\$found_disk_offset+1
|
||||
#end if
|
||||
let disk_offset=\$disk_offset+1
|
||||
shift 2
|
||||
done
|
||||
let disk_nums=\$found_disk_offset
|
||||
echo "disks \${disks[@]}" >> /tmp/log
|
||||
#if $getVar('sort_disks', '') != ""
|
||||
sorted_disks=(\$(printf '%s\n' \${disks[@]} | sort))
|
||||
#else
|
||||
sorted_disks=(\${disks[@]})
|
||||
#end if
|
||||
echo "sorted disks \${sorted_disks[@]}" >> /tmp/log
|
||||
|
||||
#if $getVar('start_from_disk', '') != ""
|
||||
set \${sorted_disks[@]}
|
||||
sorted_disks=(\${@:$start_from_disk})
|
||||
echo "sorted disks begin from the $start_from_disk: \${sorted_disks[@]}" >> /tmp/log
|
||||
#end if
|
||||
|
||||
#if $getVar('disk_num', '') != ""
|
||||
set \${sorted_disks[@]}
|
||||
sorted_disks=(\${@:1:$disk_num})
|
||||
echo "sorted disks for $disk_num disks: \${sorted_disks[@]}" >> /tmp/log
|
||||
#end if
|
||||
let disk_nums=\${#sorted_disks[@]}
|
||||
|
||||
echo "clearpart --all --initlabel" > /tmp/part-include
|
||||
|
||||
@ -41,8 +96,8 @@ echo "ignoredisk --only-use=$partitions_only" >> /tmp/part-include
|
||||
#end if
|
||||
#end if
|
||||
|
||||
echo "part /boot --fstype ext3 --size=100 --ondisk=\${disks[0]} --asprimary" >> /tmp/part-include
|
||||
echo "part swap --recommended --maxsize=128000 --ondisk=\${disks[0]}" >> /tmp/part-include
|
||||
echo "part /boot --fstype ext3 --size=500 --ondisk=\${sorted_disks[0]} --asprimary" >> /tmp/part-include
|
||||
echo "part swap --recommended --maxsize=128000 --ondisk=\${sorted_disks[0]}" >> /tmp/part-include
|
||||
|
||||
vggroup=''
|
||||
let disk_offset=0
|
||||
@ -50,7 +105,7 @@ while [ \$disk_offset -lt \$disk_nums ];
|
||||
do
|
||||
let pv_id=\$disk_offset+1
|
||||
partname="pv.0\$pv_id"
|
||||
echo "part \$partname --size=1 --grow --ondisk=\${disks[\$disk_offset]}" >> /tmp/part-include
|
||||
echo "part \$partname --size=1 --grow --ondisk=\${sorted_disks[\$disk_offset]}" >> /tmp/part-include
|
||||
vggroup="\$vggroup \$partname"
|
||||
let disk_offset=\$disk_offset+1;
|
||||
done
|
||||
|
Loading…
x
Reference in New Issue
Block a user