78 lines
1.9 KiB
Bash
78 lines
1.9 KiB
Bash
#!/bin/bash
|
|
|
|
#
|
|
# AIM : Manage Opennebula database update
|
|
#
|
|
#
|
|
|
|
. /usr/lib/eole/ihm.sh
|
|
script="$1"
|
|
|
|
function clean_backups()
|
|
{
|
|
file=${1}
|
|
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
|
|
}
|
|
|
|
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
|
|
$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 ${?}
|