#!/bin/bash

[ $(CreoleGet hapy_init_master) == non ] && exit 0

DISKSIZE=$(CreoleGet hapy_init_master_disk_size)
DISKNAME="DSK-${DISKSIZE}-Go"
DISKDESC="Disque vide de ${DISKSIZE} Go"

VERSIONISO=$(CreoleGet hapy_init_master_iso_version)
MAJORVERSION=${VERSIONISO:0:3}
ISONAME="ISO-Eole-${VERSIONISO}-amd64"
ISODESC="Image ISO EOLE Stable ${VERSIONISO} 64 bits"

TMPLNAME="InstallEole-${VERSIONISO}-amd64"
TMPLDESC="Modèle de VM permettant d'installer un module EOLE ${VERSIONISO} 64 bits (non persistente)"

#echo "########### suppr ${DISKNAME} ###############"
#oneimage delete ${DISKNAME}
#echo
#echo "########### suppr ${ISONAME} ###################"
#oneimage delete ${ISONAME}
#echo
#echo "########### suppr ${TMPLNAME} ###################"
#onetemplate delete ${TMPLNAME}
#echo

#*****************************************************
# DISQUE VIDE
#*****************************************************
if ! oneimage show "${DISKNAME}" &>/dev/null
then
    echo "***** Création de ${DISKNAME} *****"
    oneimage create -d $(CreoleGet one_ds_image_name) --name "${DISKNAME}" --type DATABLOCK --description "${DISKDESC}" --size $((${DISKSIZE}*1024)) --prefix vd --driver qcow2 --fstype qcow2
    oneimage chtype "${DISKNAME}" OS
else
    echo "***** ${DISKNAME} existe déjà *****"
fi
echo

#*****************************************************
# Image ISO EOLE Latest Stable
#*****************************************************
if ! oneimage show "${ISONAME}" &>/dev/null
then
    echo "***** Téléchargement de ${ISONAME} *****"
    wget --output-document "/tmp/eole-${VERSIONISO}-alternate-amd64.iso" "http://eole.ac-dijon.fr/pub/iso/EOLE-${MAJORVERSION}/${VERSIONISO}/eole-${VERSIONISO}-alternate-amd64.iso"
    echo "***** Création de ${ISONAME} *****"
    if [ $? -ne 0 ]; then
        echo "Erreur lors du téléchargement, Abandon"
        exit 1
    fi

    FILE=$(mktemp)
    cat > ${FILE} <<EOF
NAME="${ISONAME}"
TYPE="CDROM"
DESCRIPTION="${ISODESC}"
DEV_PREFIX="hd"
PATH="/tmp/eole-${VERSIONISO}-alternate-amd64.iso"
PERSISTENT="No"
EOF
    oneimage create -d $(CreoleGet one_ds_iso_name) ${FILE}
    /bin/rm -f ${FILE}
    for i in `seq 60`
    do
        sleep 1
        #oneimage show ${ISONAME} | grep STATE | grep rdy &>/dev/null && break
        oneimage show ${ISONAME} | grep STATE | grep lock &>/dev/null || break
        echo -n "Attente : "
        oneimage show ${ISONAME} | grep STATE
    done
    rm -f "/tmp/eole-${VERSIONISO}-alternate-amd64.iso"
else
    echo "***** ${ISONAME} existe déjà *****"
fi
echo


#*****************************************************
# Template EOLEBASE
#*****************************************************
if ! onetemplate show "${TMPLNAME}" &>/dev/null
then
    echo "***** Création de ${TMPLNAME} *****"
    FILE=$(mktemp)
    cat > ${FILE} <<EOF
NAME="${TMPLNAME}"
DESCRIPTION="${TMPLDESC}"
INPUT=[BUS="usb",TYPE="tablet"]
CPU="0.2"
DISK=[DEV_PREFIX="vd",IMAGE_UNAME="oneadmin",IMAGE="${DISKNAME}",DRIVER="qcow2"]
DISK=[DEV_PREFIX="hd",IMAGE_UNAME="oneadmin",IMAGE="${ISONAME}",DRIVER="raw"]
FEATURES=[ACPI="yes",PAE="no",LOCALTIME="yes"]
VCPU="1"
GRAPHICS=[LISTEN="0.0.0.0",TYPE="vnc",KEYMAP="fr"]
OS=[BOOT="hd,cdrom",ARCH="x86_64"]
MEMORY="1024"
EOF
#NIC=[MODEL="virtio",NETWORK="CR_eole"]
    onetemplate create ${FILE}

    /bin/rm -f ${FILE}
else
    echo "***** ${TMPLNAME} existe déjà *****"
fi
echo
exit 0