mirror of
https://github.com/YunoHost/yunohost_demo.git
synced 2024-09-03 19:56:44 +02:00
Merging helpers
This commit is contained in:
parent
1a04270c9d
commit
9a1ea864fa
7 changed files with 180 additions and 186 deletions
|
@ -6,7 +6,6 @@
|
||||||
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
source $script_dir/ynh_lxd
|
source $script_dir/ynh_lxd
|
||||||
source $script_dir/ynh_lxd_demo
|
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
app=${__APP__:-yunohost_demo}
|
app=${__APP__:-yunohost_demo}
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
source $script_dir/ynh_lxd
|
source $script_dir/ynh_lxd
|
||||||
source $script_dir/ynh_lxd_demo
|
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
app=${__APP__:-yunohost_demo}
|
app=${__APP__:-yunohost_demo}
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(ynh_print_info --message=$PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(ynh_print_info --message=$PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
source $script_dir/ynh_lxd
|
source $script_dir/ynh_lxd
|
||||||
source $script_dir/ynh_lxd_demo
|
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
app=${__APP__:-yunohost_demo}
|
app=${__APP__:-yunohost_demo}
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
source $script_dir/ynh_lxd
|
source $script_dir/ynh_lxd
|
||||||
source $script_dir/ynh_lxd_demo
|
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
app=${__APP__:-yunohost_demo}
|
app=${__APP__:-yunohost_demo}
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
source $script_dir/ynh_lxd
|
source $script_dir/ynh_lxd
|
||||||
source $script_dir/ynh_lxd_demo
|
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
app=${__APP__:-yunohost_demo}
|
app=${__APP__:-yunohost_demo}
|
||||||
|
|
184
ynh_lxd
184
ynh_lxd
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# LXC helpers
|
# LXD HELPERS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Check if a LXC container exists
|
# Check if a LXC container exists
|
||||||
|
@ -647,7 +647,7 @@ ynh_lxc_reset() {
|
||||||
}
|
}
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# Logging helpers
|
# LOGGING HELPERS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
readonly NORMAL=$(printf '\033[0m')
|
readonly NORMAL=$(printf '\033[0m')
|
||||||
|
@ -723,7 +723,7 @@ function log_report_test_failed () {
|
||||||
}
|
}
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# Timing helpers
|
# TIMING HELPERS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Start a timer
|
# Start a timer
|
||||||
|
@ -781,7 +781,7 @@ ynh_lxc_stop_timer() {
|
||||||
}
|
}
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# PACKAGE_CHECK helpers
|
# PACKAGE_CHECK HELPERS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# ynh_lxd commands have to be launch with FOR_PACKAGE_CHECK=1
|
# ynh_lxd commands have to be launch with FOR_PACKAGE_CHECK=1
|
||||||
|
@ -966,3 +966,179 @@ ynh_lxc_check_witness() {
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# DEMO HELPERS
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Start an LXC container in demo mode
|
||||||
|
#
|
||||||
|
# usage: ynh_lxc_start_as_demo --name=name --ip=ip
|
||||||
|
# | arg: -n, --name= - name of the LXC
|
||||||
|
# | arg: -n, --ip= - demo ip of the lxc
|
||||||
|
#
|
||||||
|
# Requires YunoHost version *.*.* or higher.
|
||||||
|
ynh_lxc_start_as_demo() {
|
||||||
|
# Declare an array to define the options of this helper.
|
||||||
|
local legacy_args=ni
|
||||||
|
local -A args_array=([n]=name= [i]=ip=)
|
||||||
|
local name
|
||||||
|
local ip
|
||||||
|
# Manage arguments with getopts
|
||||||
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
|
ynh_lxc_stop --name="$name"
|
||||||
|
lxc config device set $name eth1 ipv4.address $ip
|
||||||
|
_ynh_lxc_start_and_wait --name="$name"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Stop an LXC container in demo mode
|
||||||
|
#
|
||||||
|
# usage: ynh_lxc_stop_as_demo --name=name
|
||||||
|
# | arg: -n, --name= - name of the LXC
|
||||||
|
#
|
||||||
|
# Requires YunoHost version *.*.* or higher.
|
||||||
|
ynh_lxc_stop_as_demo() {
|
||||||
|
# Declare an array to define the options of this helper.
|
||||||
|
local legacy_args=n
|
||||||
|
local -A args_array=([n]=name=)
|
||||||
|
local name
|
||||||
|
# Manage arguments with getopts
|
||||||
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
|
ynh_lxc_stop --name="$name"
|
||||||
|
lxc config device unset $name eth1 ipv4.address
|
||||||
|
}
|
||||||
|
|
||||||
|
# Upgrading demo container
|
||||||
|
#
|
||||||
|
# usage: ynh_lxc_upgrade_demo --name=name --time_to_switch=time_to_switch
|
||||||
|
# | arg: -n, --name= - name of the LXC
|
||||||
|
# | arg: -t, --time_to_switch= - time to switch
|
||||||
|
#
|
||||||
|
# Requires YunoHost version *.*.* or higher.
|
||||||
|
ynh_lxc_upgrade_demo() {
|
||||||
|
# Declare an array to define the options of this helper.
|
||||||
|
local legacy_args=nt
|
||||||
|
local -A args_array=([n]=name= [t]=time_to_switch=)
|
||||||
|
local name
|
||||||
|
local time_to_switch
|
||||||
|
# Manage arguments with getopts
|
||||||
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
|
ynh_print_info --message="Upgrading $name"
|
||||||
|
# Attend que la machine soit éteinte.
|
||||||
|
# Timeout à $time_to_switch +5 minutes, en seconde
|
||||||
|
TIME_OUT=$(($time_to_switch * 60 + 300))
|
||||||
|
wait_period=0
|
||||||
|
while ! ynh_lxc_is_stopped --name=$name
|
||||||
|
do
|
||||||
|
wait_period=$(($wait_period+10))
|
||||||
|
if [ $wait_period -gt $TIME_OUT ];then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
sleep 5
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
while test -e /var/lib/lxd/$name.lock_fileS; do
|
||||||
|
sleep 5 # Attend que le conteneur soit libéré par le script switch.
|
||||||
|
done
|
||||||
|
|
||||||
|
touch /var/lib/lxd/$name.lock_fileU # Met en place un fichier pour indiquer que la machine est indisponible pendant l'upgrade
|
||||||
|
|
||||||
|
# Supprime les éventuels swap présents.
|
||||||
|
/sbin/swapoff /var/lib/lxd/$name/rootfs/swap_*
|
||||||
|
|
||||||
|
# Restaure le snapshot
|
||||||
|
ynh_lxc_load_snapshot --name=$name --snapname=snap0
|
||||||
|
|
||||||
|
# Démarre le conteneur
|
||||||
|
date >> "$final_path/demo_boot.log"
|
||||||
|
|
||||||
|
# Update
|
||||||
|
update_apt=0
|
||||||
|
ynh_lxc_run_inside --name="$name" --command="apt-get update"
|
||||||
|
ynh_lxc_run_inside --name="$name" --command="apt-get dist-upgrade --dry-run | grep -q "^Inst " > /dev/null" # Vérifie si il y aura des mises à jour.
|
||||||
|
if [ "$?" -eq 0 ]; then
|
||||||
|
date
|
||||||
|
update_apt=1
|
||||||
|
# Upgrade
|
||||||
|
ynh_lxc_run_inside --name="$name" --command="apt-get dist-upgrade --option Dpkg::Options::=--force-confold -yy"
|
||||||
|
# Clean
|
||||||
|
ynh_lxc_run_inside --name="$name" --command="apt-get autoremove -y"
|
||||||
|
ynh_lxc_run_inside --name="$name" --command="apt-get autoclean"
|
||||||
|
fi
|
||||||
|
ynh_lxc_run_inside --name="$name" --command="yunohost tools update"
|
||||||
|
ynh_lxc_run_inside --name="$name" --command="yunohost tools upgrade system"
|
||||||
|
|
||||||
|
# Exécution des scripts de upgrade.d
|
||||||
|
LOOP=$((LOOP + 1))
|
||||||
|
while read LIGNE
|
||||||
|
do
|
||||||
|
if [ ! "$LIGNE" == "exemple" ] && [ ! "$LIGNE" == "old_scripts" ] && [ ! "$LIGNE" == "Constant_upgrade" ] && ! echo "$LIGNE" | grep -q ".fail$" # Le fichier exemple, le dossier old_scripts et les scripts fail sont ignorés
|
||||||
|
then
|
||||||
|
date
|
||||||
|
# Exécute chaque script trouvé dans upgrade.d
|
||||||
|
ynh_print_info --message="Exécution du script $LIGNE sur le conteneur $name"
|
||||||
|
/bin/bash "$final_path/upgrade.d/$LIGNE" $name
|
||||||
|
if [ "$?" -ne 0 ]; then # Si le script a échoué, le snapshot est annulé.
|
||||||
|
ynh_print_info --message="Échec du script $LIGNE"
|
||||||
|
mv -f "$final_path/upgrade.d/$LIGNE" "$final_path/upgrade.d/$LIGNE.fail"
|
||||||
|
ynh_print_info --message="Échec d'exécution du script d'upgrade $LIGNE sur le conteneur $name sur le serveur de demo $DOMAIN!\nLe script a été renommé en .fail, il ne sera plus exécuté tant que le préfixe ne sera pas retiré.\n\nExtrait du log:\n$(tail -n +$log_line "$script_dir/demo_upgrade.log")" | mail -a "Content-Type: text/plain; charset=UTF-8" -s "Demo Yunohost" $MAIL_ADDR
|
||||||
|
update_apt=0
|
||||||
|
else
|
||||||
|
ynh_print_info --message="Le script $LIGNE a été exécuté sans erreur"
|
||||||
|
update_apt=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done <<< "$(ls -1 "$final_path/upgrade.d")"
|
||||||
|
|
||||||
|
# Exécution des scripts de upgrade.d/Constant_upgrade
|
||||||
|
while read LIGNE
|
||||||
|
do
|
||||||
|
if [ "$update_apt" -eq "1" ]
|
||||||
|
then
|
||||||
|
date
|
||||||
|
# Exécute chaque script trouvé dans upgrade.d/Constant_upgrade
|
||||||
|
ynh_print_info --message="Exécution du script $LIGNE sur le conteneur $name"
|
||||||
|
/bin/bash "$final_path/upgrade.d/Constant_upgrade/$LIGNE" $name
|
||||||
|
if [ "$?" -ne 0 ]; then
|
||||||
|
ynh_print_info --message="Échec du script $LIGNE"
|
||||||
|
ynh_print_info --message="Échec d'exécution du script d'upgrade $LIGNE sur le conteneur $name sur le serveur de demo $DOMAIN!\n"
|
||||||
|
else
|
||||||
|
ynh_print_info --message="Le script $LIGNE a été exécuté sans erreur"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done <<< "$(ls -1 "$final_path/upgrade.d/Constant_upgrade")"
|
||||||
|
|
||||||
|
# Upgrade des apps
|
||||||
|
ynh_lxc_run_inside --name="$name" --command="yunohost tools update"
|
||||||
|
ynh_lxc_run_inside --name="$name" --command="systemctl restart nginx"
|
||||||
|
ynh_lxc_run_inside --name="$name" --command="yunohost tools upgrade apps"
|
||||||
|
ynh_lxc_run_inside --name="$name" --command="systemctl restart nginx"
|
||||||
|
|
||||||
|
# Arrêt de la machine virtualisée
|
||||||
|
ynh_lxc_stop --name=$name
|
||||||
|
|
||||||
|
if [ "$update_apt" -eq "1" ]
|
||||||
|
then
|
||||||
|
# Archivage du snapshot
|
||||||
|
ynh_exec_warn_less tar -cz --acls --xattrs -f /var/lib/lxd/snapshots/$name/snap0.tar.gz /var/lib/lxd/snapshots/$name/snap0
|
||||||
|
# Remplacement du snapshot
|
||||||
|
ynh_lxc_create_snapshot --name=$name --snapname=snap0
|
||||||
|
|
||||||
|
if [ "$LOOP" -eq 2 ]
|
||||||
|
then # Après l'upgrade du 2e conteneur, déplace les scripts dans le dossier des anciens scripts si ils ont été exécutés avec succès.
|
||||||
|
ls -1 "$final_path/upgrade.d" | while read LIGNE
|
||||||
|
do
|
||||||
|
if [ ! "$LIGNE" == "exemple" ] && [ ! "$LIGNE" == "old_scripts" ] && [ ! "$LIGNE" == "Constant_upgrade" ] && ! echo "$LIGNE" | grep -q ".fail$" # Le fichier exemple, le dossier old_scripts et les scripts fail sont ignorés
|
||||||
|
then
|
||||||
|
mv -f "$final_path/upgrade.d/$LIGNE" "$final_path/upgrade.d/old_scripts/$LIGNE"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
ynh_secure_remove --file="/var/lib/lxd/$name.lock_fileU" # Libère le lock, la machine est à nouveau disponible
|
||||||
|
ynh_print_info --message="Finished upgrading $name"
|
||||||
|
}
|
||||||
|
|
177
ynh_lxd_demo
177
ynh_lxd_demo
|
@ -1,177 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# Demo helpers
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
# Start an LXC container in demo mode
|
|
||||||
#
|
|
||||||
# usage: ynh_lxc_start_as_demo --name=name --ip=ip
|
|
||||||
# | arg: -n, --name= - name of the LXC
|
|
||||||
# | arg: -n, --ip= - demo ip of the lxc
|
|
||||||
#
|
|
||||||
# Requires YunoHost version *.*.* or higher.
|
|
||||||
ynh_lxc_start_as_demo() {
|
|
||||||
# Declare an array to define the options of this helper.
|
|
||||||
local legacy_args=ni
|
|
||||||
local -A args_array=([n]=name= [i]=ip=)
|
|
||||||
local name
|
|
||||||
local ip
|
|
||||||
# Manage arguments with getopts
|
|
||||||
ynh_handle_getopts_args "$@"
|
|
||||||
|
|
||||||
ynh_lxc_stop --name="$name"
|
|
||||||
lxc config device set $name eth1 ipv4.address $ip
|
|
||||||
_ynh_lxc_start_and_wait --name="$name"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Stop an LXC container in demo mode
|
|
||||||
#
|
|
||||||
# usage: ynh_lxc_stop_as_demo --name=name
|
|
||||||
# | arg: -n, --name= - name of the LXC
|
|
||||||
#
|
|
||||||
# Requires YunoHost version *.*.* or higher.
|
|
||||||
ynh_lxc_stop_as_demo() {
|
|
||||||
# Declare an array to define the options of this helper.
|
|
||||||
local legacy_args=n
|
|
||||||
local -A args_array=([n]=name=)
|
|
||||||
local name
|
|
||||||
# Manage arguments with getopts
|
|
||||||
ynh_handle_getopts_args "$@"
|
|
||||||
|
|
||||||
ynh_lxc_stop --name="$name"
|
|
||||||
lxc config device unset $name eth1 ipv4.address
|
|
||||||
}
|
|
||||||
|
|
||||||
# Upgrading demo container
|
|
||||||
#
|
|
||||||
# usage: ynh_lxc_upgrade_demo --name=name --time_to_switch=time_to_switch
|
|
||||||
# | arg: -n, --name= - name of the LXC
|
|
||||||
# | arg: -t, --time_to_switch= - time to switch
|
|
||||||
#
|
|
||||||
# Requires YunoHost version *.*.* or higher.
|
|
||||||
ynh_lxc_upgrade_demo() {
|
|
||||||
# Declare an array to define the options of this helper.
|
|
||||||
local legacy_args=nt
|
|
||||||
local -A args_array=([n]=name= [t]=time_to_switch=)
|
|
||||||
local name
|
|
||||||
local time_to_switch
|
|
||||||
# Manage arguments with getopts
|
|
||||||
ynh_handle_getopts_args "$@"
|
|
||||||
|
|
||||||
ynh_print_info --message="Upgrading $name"
|
|
||||||
# Attend que la machine soit éteinte.
|
|
||||||
# Timeout à $time_to_switch +5 minutes, en seconde
|
|
||||||
TIME_OUT=$(($time_to_switch * 60 + 300))
|
|
||||||
wait_period=0
|
|
||||||
while ! ynh_lxc_is_stopped --name=$name
|
|
||||||
do
|
|
||||||
wait_period=$(($wait_period+10))
|
|
||||||
if [ $wait_period -gt $TIME_OUT ];then
|
|
||||||
break
|
|
||||||
else
|
|
||||||
sleep 5
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
while test -e /var/lib/lxd/$name.lock_fileS; do
|
|
||||||
sleep 5 # Attend que le conteneur soit libéré par le script switch.
|
|
||||||
done
|
|
||||||
|
|
||||||
touch /var/lib/lxd/$name.lock_fileU # Met en place un fichier pour indiquer que la machine est indisponible pendant l'upgrade
|
|
||||||
|
|
||||||
# Supprime les éventuels swap présents.
|
|
||||||
/sbin/swapoff /var/lib/lxd/$name/rootfs/swap_*
|
|
||||||
|
|
||||||
# Restaure le snapshot
|
|
||||||
ynh_lxc_load_snapshot --name=$name --snapname=snap0
|
|
||||||
|
|
||||||
# Démarre le conteneur
|
|
||||||
date >> "$final_path/demo_boot.log"
|
|
||||||
|
|
||||||
# Update
|
|
||||||
update_apt=0
|
|
||||||
ynh_lxc_run_inside --name="$name" --command="apt-get update"
|
|
||||||
ynh_lxc_run_inside --name="$name" --command="apt-get dist-upgrade --dry-run | grep -q "^Inst " > /dev/null" # Vérifie si il y aura des mises à jour.
|
|
||||||
if [ "$?" -eq 0 ]; then
|
|
||||||
date
|
|
||||||
update_apt=1
|
|
||||||
# Upgrade
|
|
||||||
ynh_lxc_run_inside --name="$name" --command="apt-get dist-upgrade --option Dpkg::Options::=--force-confold -yy"
|
|
||||||
# Clean
|
|
||||||
ynh_lxc_run_inside --name="$name" --command="apt-get autoremove -y"
|
|
||||||
ynh_lxc_run_inside --name="$name" --command="apt-get autoclean"
|
|
||||||
fi
|
|
||||||
ynh_lxc_run_inside --name="$name" --command="yunohost tools update"
|
|
||||||
ynh_lxc_run_inside --name="$name" --command="yunohost tools upgrade system"
|
|
||||||
|
|
||||||
# Exécution des scripts de upgrade.d
|
|
||||||
LOOP=$((LOOP + 1))
|
|
||||||
while read LIGNE
|
|
||||||
do
|
|
||||||
if [ ! "$LIGNE" == "exemple" ] && [ ! "$LIGNE" == "old_scripts" ] && [ ! "$LIGNE" == "Constant_upgrade" ] && ! echo "$LIGNE" | grep -q ".fail$" # Le fichier exemple, le dossier old_scripts et les scripts fail sont ignorés
|
|
||||||
then
|
|
||||||
date
|
|
||||||
# Exécute chaque script trouvé dans upgrade.d
|
|
||||||
ynh_print_info --message="Exécution du script $LIGNE sur le conteneur $name"
|
|
||||||
/bin/bash "$final_path/upgrade.d/$LIGNE" $name
|
|
||||||
if [ "$?" -ne 0 ]; then # Si le script a échoué, le snapshot est annulé.
|
|
||||||
ynh_print_info --message="Échec du script $LIGNE"
|
|
||||||
mv -f "$final_path/upgrade.d/$LIGNE" "$final_path/upgrade.d/$LIGNE.fail"
|
|
||||||
ynh_print_info --message="Échec d'exécution du script d'upgrade $LIGNE sur le conteneur $name sur le serveur de demo $DOMAIN!\nLe script a été renommé en .fail, il ne sera plus exécuté tant que le préfixe ne sera pas retiré.\n\nExtrait du log:\n$(tail -n +$log_line "$script_dir/demo_upgrade.log")" | mail -a "Content-Type: text/plain; charset=UTF-8" -s "Demo Yunohost" $MAIL_ADDR
|
|
||||||
update_apt=0
|
|
||||||
else
|
|
||||||
ynh_print_info --message="Le script $LIGNE a été exécuté sans erreur"
|
|
||||||
update_apt=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done <<< "$(ls -1 "$final_path/upgrade.d")"
|
|
||||||
|
|
||||||
# Exécution des scripts de upgrade.d/Constant_upgrade
|
|
||||||
while read LIGNE
|
|
||||||
do
|
|
||||||
if [ "$update_apt" -eq "1" ]
|
|
||||||
then
|
|
||||||
date
|
|
||||||
# Exécute chaque script trouvé dans upgrade.d/Constant_upgrade
|
|
||||||
ynh_print_info --message="Exécution du script $LIGNE sur le conteneur $name"
|
|
||||||
/bin/bash "$final_path/upgrade.d/Constant_upgrade/$LIGNE" $name
|
|
||||||
if [ "$?" -ne 0 ]; then
|
|
||||||
ynh_print_info --message="Échec du script $LIGNE"
|
|
||||||
ynh_print_info --message="Échec d'exécution du script d'upgrade $LIGNE sur le conteneur $name sur le serveur de demo $DOMAIN!\n"
|
|
||||||
else
|
|
||||||
ynh_print_info --message="Le script $LIGNE a été exécuté sans erreur"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done <<< "$(ls -1 "$final_path/upgrade.d/Constant_upgrade")"
|
|
||||||
|
|
||||||
# Upgrade des apps
|
|
||||||
ynh_lxc_run_inside --name="$name" --command="yunohost tools update"
|
|
||||||
ynh_lxc_run_inside --name="$name" --command="systemctl restart nginx"
|
|
||||||
ynh_lxc_run_inside --name="$name" --command="yunohost tools upgrade apps"
|
|
||||||
ynh_lxc_run_inside --name="$name" --command="systemctl restart nginx"
|
|
||||||
|
|
||||||
# Arrêt de la machine virtualisée
|
|
||||||
ynh_lxc_stop --name=$name
|
|
||||||
|
|
||||||
if [ "$update_apt" -eq "1" ]
|
|
||||||
then
|
|
||||||
# Archivage du snapshot
|
|
||||||
ynh_exec_warn_less tar -cz --acls --xattrs -f /var/lib/lxd/snapshots/$name/snap0.tar.gz /var/lib/lxd/snapshots/$name/snap0
|
|
||||||
# Remplacement du snapshot
|
|
||||||
ynh_lxc_create_snapshot --name=$name --snapname=snap0
|
|
||||||
|
|
||||||
if [ "$LOOP" -eq 2 ]
|
|
||||||
then # Après l'upgrade du 2e conteneur, déplace les scripts dans le dossier des anciens scripts si ils ont été exécutés avec succès.
|
|
||||||
ls -1 "$final_path/upgrade.d" | while read LIGNE
|
|
||||||
do
|
|
||||||
if [ ! "$LIGNE" == "exemple" ] && [ ! "$LIGNE" == "old_scripts" ] && [ ! "$LIGNE" == "Constant_upgrade" ] && ! echo "$LIGNE" | grep -q ".fail$" # Le fichier exemple, le dossier old_scripts et les scripts fail sont ignorés
|
|
||||||
then
|
|
||||||
mv -f "$final_path/upgrade.d/$LIGNE" "$final_path/upgrade.d/old_scripts/$LIGNE"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
ynh_secure_remove --file="/var/lib/lxd/$name.lock_fileU" # Libère le lock, la machine est à nouveau disponible
|
|
||||||
ynh_print_info --message="Finished upgrading $name"
|
|
||||||
}
|
|
Loading…
Reference in a new issue