#!/bin/bash
# Program:
#   Create PXE PV VM
# Author: 
#   Jazz, Rock {jazz, rock}@nchc.org.tw
# Version:
#    1.0
# History:                                                                                          
#   2010/08/27  Rock    First release (1.0) 

# [Source]
source /opt/drbl-virt/conf/drbl-virt.conf
source $Work_Path/functions_drbl_virt
#source ./functions_drbl_PXE_PV-VM_create


# [Declation]
# = 1. Varibales declation =
vm_name=""
vm_cpu="1"
vm_ram="128"
#vm_host=""
vm_mac=""

vm_dir="/home/domains"
# = 2. Functions declation =
Usage(){
echo "Usage: drbl_PXE_PV-VM_create_all [options]"
echo "Options: "
echo "-c|--cpu     cpu number (default: 1)"
echo "-r|--ram     ram size(M) (default: 128)"
echo "Examples: "
echo "drbl_PXE_PV-VM_create_all -c 2 -r 512"
}


# [Main]
check_root
# = 1. Parse parameters = 
if [ $# -eq 0 ]; then
Usage && exit
fi

while [ $# -gt 0 ]; do
    case "$1" in
        -c|--cpu)
            shift
            if [ -z "$(echo $1 |grep ^-.)" ]; then
                if [ -n "$(echo $1)" ]; then 
                    vm_cpu=$1
                fi
            shift
            fi
            ;;
        -r|--ram)
            shift 
            if [ -z "$(echo $1 |grep ^-.)" ]; then
                if [ -n "$(echo $1)" ]; then
                    vm_ram=$1
                fi
            shift 
            fi 
            ;;  
#        -h|--host)
#            shift 
#            if [ -z "$(echo $1 |grep ^-.)" ]; then
#                if [ -n "$(echo $1)" ]; then
#                vm_host=$1
#                else
#                    echo "-h host_value is null"
#                    Usage && exit 2
#                fi
#            shift 
#            fi 
#            ;; 
        -*)
            echo "$0 $1 invalid option" >&2
            echo ""
            Usage >&2
            exit 2
            ;;
        *)  Usage >&2
            exit 2
            ;;
    esac
done


# = 2. Create all VM configuration =
IP_VM_files=$(ls $Work_Home/etc/IP_VM_eth[0-9])

# create directory to store vm config file
if [ ! -e $vm_dir ]; then
    mkdir $vm_dir
fi

for IP_VM_file in $IP_VM_files
do
VM_nu=$(wc -l $IP_VM_file |awk '{print $1}')

    for (( i=1 ; i<=$VM_nu ; i++ ))
    do
        VM_name=$(sed -n "${i}p" $IP_VM_file | awk '{print $2}')
        $Work_Path/drbl_PXE_PV-VM_create -v $VM_name -c $vm_cpu -r $vm_ram
    done

done

