136 lines
4.1 KiB
Plaintext
136 lines
4.1 KiB
Plaintext
#set hostname=$getVar('hostname',None)
|
|
#set partition = $getVar('partition', None)
|
|
|
|
#if $hostname == None
|
|
#set $vgname = "VolGroup00"
|
|
#else
|
|
#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
|
|
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
|
|
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
|
|
let disk_offset=\$disk_offset+1
|
|
shift 2
|
|
done
|
|
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
|
|
|
|
#if $getVar('keep_old_partitions', '0') != "0"
|
|
#if $getVar('partitions_only','') != ""
|
|
echo "ignoredisk --only-use=$partitions_only" >> /tmp/part-include
|
|
#end if
|
|
#end if
|
|
|
|
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
|
|
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=\${sorted_disks[\$disk_offset]}" >> /tmp/part-include
|
|
vggroup="\$vggroup \$partname"
|
|
let disk_offset=\$disk_offset+1;
|
|
done
|
|
|
|
echo "volgroup $vgname \$vggroup" >> /tmp/part-include
|
|
|
|
echo "logvol / --fstype ext3 --vgname=$vgname --size=1 --grow --name=rootvol" >> /tmp/part-include
|
|
|
|
#if $partition != None
|
|
#set vol_sizes = [part.strip() for part in $partition.split(';') if part.strip()]
|
|
#for vol_and_size in vol_sizes
|
|
#set vol, vol_size = $vol_and_size.split(' ', 1)
|
|
#set vol = $vol.strip()
|
|
#set vol_size = $vol_size.strip()
|
|
#if $vol.startswith('/')
|
|
#set volname = $vol[1:]
|
|
#if $vol_size.endswith('%'):
|
|
#set vol_percent = vol_size[:-1]
|
|
echo "logvol $vol --fstype ext3 --vgname=$vgname --size=1 --grow --percent=$vol_percent --name=${volname}vol" >> /tmp/part-include
|
|
#else
|
|
echo "logvol $vol --vgname=$vgname --fstype ext3 --size=$vol_size --name=${volname}vol" >> /tmp/part-include
|
|
#end if
|
|
#else
|
|
# $vol is not starts with /
|
|
#end if
|
|
#end for
|
|
#end if
|