#!/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 ${?}