#!/bin/bash

#
# AIM : Manage Opennebula database update
#
#

. /usr/lib/eole/ihm.sh
script="$1"

function clean_backups()
{
    file=${1}
    ls ${file}_* > /dev/null 2>&1
    if [ $? = 0 ]; then
        bcks=($(ls ${file}_*))
        nbbck=$(expr ${#bcks[@]} - 2)


        if [[ ${nbbck} -gt 1 ]]
        then
            EchoGras "Cleaning up old backups !"
            for idx in `seq 0 ${nbbck}`
            do
                rm -f ${bcks[${idx}]}
            done
        fi
    fi
}

function updateDB()
{
    local dbfile='/var/lib/one/one.db'
    local cmd="onedb"
    local res=0

    if [[ -f ${dbfile} ]]
    then
        if [ $(CreoleGet one_database_type) = "mysql" ]; then
            if [ $(CreoleGet one_ha_server_index 0) = "0" ]; then
                HOST=$(CreoleGet one_database_host)
                DB=$(CreoleGet one_database_name)
                USER=$(CreoleGet one_database_user)
                PASS=$(CreoleGet one_database_pass)
                $cmd upgrade -f -u $USER -p $PASS -d $DB -S $HOST
            fi
        else
            $cmd upgrade -f -s ${dbfile}
        fi
        res=${?}
        clean_backups ${dbfile}
        return ${res}
    else
        return 0
    fi
}

function to_mysql() {
    if [ "$script" = 'instance' ] && [ $(CreoleGet one_database_type) = "mysql" ] && [ $(CreoleGet one_ha_server_index 0) = "0" ]; then
        Question_ouinon "Voulez-vous migrer de SQLite à Mysql ?" "True" "oui" "warn"
        rep=$(echo "$?")
        if [ "$rep" == "0" ]; then
            # do not recover db on follower
            HOST=$(CreoleGet one_database_host)
            DB=$(CreoleGet one_database_name)
            USER=$(CreoleGet one_database_user)
            PASS=$(CreoleGet one_database_pass)
            cp -a /etc/one/oned.conf /etc/one/oned.conf.ori
            # HA ne doit pas être activer pour la migration
            CreoleCat -s /usr/share/eole/creole/distrib/oned-ha-mysql.conf -o /etc/one/oned.conf
            oned -i
            onedb sqlite2mysql -s /var/lib/one/one.db -u $USER -p $PASS -d $DB -S $HOST
            cp -a /etc/one/oned.conf.ori /etc/one/oned.conf
        fi
    fi
}

echo
to_mysql
echo
EchoGras "Mise à jour de la base de données ONE"
echo
updateDB
exit ${?}