mirror of
https://github.com/YunoHost/package_check.git
synced 2024-09-03 20:06:20 +02:00
Check witness files
This commit is contained in:
parent
adf55c2636
commit
26c123b2f2
3 changed files with 153 additions and 21 deletions
|
@ -177,6 +177,26 @@ fi
|
||||||
# Create the lock file
|
# Create the lock file
|
||||||
touch "$lock_file"
|
touch "$lock_file"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# Check the internet connectivity
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Try to ping yunohost.org
|
||||||
|
ping -q -c 2 yunohost.org > /dev/null 2>&1
|
||||||
|
if [ "$?" -ne 0 ]; then
|
||||||
|
# If fail, try to ping another domain
|
||||||
|
ping -q -c 2 framasoft.org > /dev/null 2>&1
|
||||||
|
if [ "$?" -ne 0 ]; then
|
||||||
|
# If ping failed twice, it's seems the internet connection is down.
|
||||||
|
echo "\e[91mUnable to connect to internet.\e[0m"
|
||||||
|
|
||||||
|
# Remove the lock file
|
||||||
|
rm -f "$lock_file"
|
||||||
|
# And exit
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# Upgrade Package check
|
# Upgrade Package check
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -328,26 +348,6 @@ else
|
||||||
echo -e "\e[93mUnable to define the user who authorised to use package check. Please fill the file $setup_user_file\e[0m"
|
echo -e "\e[93mUnable to define the user who authorised to use package check. Please fill the file $setup_user_file\e[0m"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# Check the internet connectivity
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
# Try to ping yunohost.org
|
|
||||||
ping -q -c 2 yunohost.org > /dev/null 2>&1
|
|
||||||
if [ "$?" -ne 0 ]; then
|
|
||||||
# If fail, try to ping another domain
|
|
||||||
ping -q -c 2 framasoft.org > /dev/null 2>&1
|
|
||||||
if [ "$?" -ne 0 ]; then
|
|
||||||
# If ping failed twice, it's seems the internet connection is down.
|
|
||||||
echo "\e[91mUnable to connect to internet.\e[0m"
|
|
||||||
|
|
||||||
# Remove the lock file
|
|
||||||
rm -f "$lock_file"
|
|
||||||
# And exit
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# Define globals variables
|
# Define globals variables
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -682,6 +682,14 @@ TEST_RESULTS () {
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# If some witness files was missing, it's a big error ! So, the level fall immediately at 0.
|
||||||
|
if [ $RESULT_witness -eq 1 ]
|
||||||
|
then
|
||||||
|
ECHO_FORMAT "Some witness files has been deleted during those tests ! It's a very bad thing !\n" "red" "bold"
|
||||||
|
global_level=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Then, print the levels
|
# Then, print the levels
|
||||||
# Print the global level
|
# Print the global level
|
||||||
ECHO_FORMAT "Level of this application: $global_level\n" "white" "bold"
|
ECHO_FORMAT "Level of this application: $global_level\n" "white" "bold"
|
||||||
|
@ -731,6 +739,7 @@ LXC_INIT
|
||||||
# Default values for check_process and TESTING_PROCESS
|
# Default values for check_process and TESTING_PROCESS
|
||||||
initialize_values() {
|
initialize_values() {
|
||||||
# Test results
|
# Test results
|
||||||
|
RESULT_witness=0
|
||||||
RESULT_linter=0
|
RESULT_linter=0
|
||||||
RESULT_global_setup=0
|
RESULT_global_setup=0
|
||||||
RESULT_global_remove=0
|
RESULT_global_remove=0
|
||||||
|
|
|
@ -42,8 +42,10 @@ LXC_START () {
|
||||||
if ! is_lxc_running; then
|
if ! is_lxc_running; then
|
||||||
echo -n "Start the LXC container" | tee --append "$test_result"
|
echo -n "Start the LXC container" | tee --append "$test_result"
|
||||||
sudo lxc-start --name=$lxc_name --daemon --logfile "$script_dir/lxc_boot.log" | tee --append "$test_result" 2>&1
|
sudo lxc-start --name=$lxc_name --daemon --logfile "$script_dir/lxc_boot.log" | tee --append "$test_result" 2>&1
|
||||||
|
local avoid_witness=0
|
||||||
else
|
else
|
||||||
echo -n "A LXC container is already running" | tee --append "$test_result"
|
echo -n "A LXC container is already running" | tee --append "$test_result"
|
||||||
|
local avoid_witness=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check during 20 seconds if the container has finished to start.
|
# Check during 20 seconds if the container has finished to start.
|
||||||
|
@ -79,6 +81,9 @@ LXC_START () {
|
||||||
fi
|
fi
|
||||||
LXC_STOP # Stop the LXC container
|
LXC_STOP # Stop the LXC container
|
||||||
else
|
else
|
||||||
|
# Create files to check if the remove script does not remove them accidentally
|
||||||
|
[ $avoid_witness -eq 0 ] && set_witness_files
|
||||||
|
|
||||||
# Break the for loop if the container is ready.
|
# Break the for loop if the container is ready.
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
@ -86,7 +91,7 @@ LXC_START () {
|
||||||
# Fail if the container failed to start
|
# Fail if the container failed to start
|
||||||
if [ $i -eq $max_try ] && [ $failstart -eq 1 ]
|
if [ $i -eq $max_try ] && [ $failstart -eq 1 ]
|
||||||
then
|
then
|
||||||
ECHO_FORMAT "The container failed to start $max_try times...\nIf this problem is persistent, try to fix it with lxc_check.sh." "red" "bold"
|
ECHO_FORMAT "The container failed to start $max_try times...\nIf this problem is persistent, try to fix it with lxc_check.sh.\n" "red" "bold"
|
||||||
ECHO_FORMAT "Boot log:\n" clog
|
ECHO_FORMAT "Boot log:\n" clog
|
||||||
cat "$script_dir/lxc_boot.log" | tee --append "$test_result"
|
cat "$script_dir/lxc_boot.log" | tee --append "$test_result"
|
||||||
return 1
|
return 1
|
||||||
|
|
|
@ -41,6 +41,9 @@ SETUP_APP () {
|
||||||
ECHO_FORMAT "Installation failed. ($yunohost_result)\n" "white" clog
|
ECHO_FORMAT "Installation failed. ($yunohost_result)\n" "white" clog
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check all the witness files, to verify if them still here
|
||||||
|
check_witness_files
|
||||||
|
|
||||||
# Retrieve the app id in the log. To manage the app after
|
# Retrieve the app id in the log. To manage the app after
|
||||||
ynh_app_id=$(sudo tac "$yunohost_log" | grep --only-matching --max-count=1 "YNH_APP_INSTANCE_NAME=[^ ]*" | cut --delimiter='=' --fields=2)
|
ynh_app_id=$(sudo tac "$yunohost_log" | grep --only-matching --max-count=1 "YNH_APP_INSTANCE_NAME=[^ ]*" | cut --delimiter='=' --fields=2)
|
||||||
}
|
}
|
||||||
|
@ -65,6 +68,9 @@ REMOVE_APP () {
|
||||||
else
|
else
|
||||||
ECHO_FORMAT "Deleting failed. ($yunohost_remove)\n" "white" clog
|
ECHO_FORMAT "Deleting failed. ($yunohost_remove)\n" "white" clog
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check all the witness files, to verify if them still here
|
||||||
|
check_witness_files
|
||||||
}
|
}
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -474,6 +480,9 @@ CHECK_UPGRADE () {
|
||||||
ECHO_FORMAT "Upgrade failed. ($yunohost_result)\n" "white" clog
|
ECHO_FORMAT "Upgrade failed. ($yunohost_result)\n" "white" clog
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check all the witness files, to verify if them still here
|
||||||
|
check_witness_files
|
||||||
|
|
||||||
# Analyse the log to extract "warning" and "error" lines
|
# Analyse the log to extract "warning" and "error" lines
|
||||||
LOG_EXTRACTOR
|
LOG_EXTRACTOR
|
||||||
|
|
||||||
|
@ -916,6 +925,9 @@ CHECK_BACKUP_RESTORE () {
|
||||||
ECHO_FORMAT "Backup failed. ($yunohost_result)\n" "white" clog
|
ECHO_FORMAT "Backup failed. ($yunohost_result)\n" "white" clog
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check all the witness files, to verify if them still here
|
||||||
|
check_witness_files
|
||||||
|
|
||||||
# Analyse the log to extract "warning" and "error" lines
|
# Analyse the log to extract "warning" and "error" lines
|
||||||
LOG_EXTRACTOR
|
LOG_EXTRACTOR
|
||||||
fi
|
fi
|
||||||
|
@ -974,6 +986,9 @@ CHECK_BACKUP_RESTORE () {
|
||||||
ECHO_FORMAT "Restore failed. ($yunohost_result)\n" "white" clog
|
ECHO_FORMAT "Restore failed. ($yunohost_result)\n" "white" clog
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check all the witness files, to verify if them still here
|
||||||
|
check_witness_files
|
||||||
|
|
||||||
# Analyse the log to extract "warning" and "error" lines
|
# Analyse the log to extract "warning" and "error" lines
|
||||||
LOG_EXTRACTOR
|
LOG_EXTRACTOR
|
||||||
|
|
||||||
|
@ -1041,6 +1056,109 @@ TEST_LAUNCHER () {
|
||||||
LXC_STOP
|
LXC_STOP
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_witness_files () {
|
||||||
|
# Create files to check if the remove script does not remove them accidentally
|
||||||
|
echo -n "Create witness files" | tee --append "$test_result"
|
||||||
|
|
||||||
|
lxc_dir="/var/lib/lxc/$lxc_name/rootfs"
|
||||||
|
|
||||||
|
create_witness_file () {
|
||||||
|
[ "$2" = "file" ] && local action="touch" || local action="mkdir -p"
|
||||||
|
sudo $action "${lxc_dir}${1}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Nginx conf
|
||||||
|
create_witness_file "/etc/nginx/conf.d/$main_domain.d/witnessfile.conf" file
|
||||||
|
create_witness_file "/etc/nginx/conf.d/$sub_domain.d/witnessfile.conf" file
|
||||||
|
|
||||||
|
# /etc
|
||||||
|
create_witness_file "/etc/witnessfile" file
|
||||||
|
|
||||||
|
# /opt directory
|
||||||
|
create_witness_file "/opt/witnessdir" directory
|
||||||
|
|
||||||
|
# /var/www directory
|
||||||
|
create_witness_file "/var/www/witnessdir" directory
|
||||||
|
|
||||||
|
# /home/yunohost.app/
|
||||||
|
create_witness_file "/home/yunohost.app/witnessdir" directory
|
||||||
|
|
||||||
|
# /var/log
|
||||||
|
create_witness_file "/var/log/witnessfile" file
|
||||||
|
|
||||||
|
# Config fpm
|
||||||
|
create_witness_file "/etc/php5/fpm/pool.d/witnessfile.conf" file
|
||||||
|
|
||||||
|
# Config logrotate
|
||||||
|
create_witness_file "/etc/logrotate.d/witnessfile" file
|
||||||
|
|
||||||
|
# Config systemd
|
||||||
|
create_witness_file "/etc/systemd/system/witnessfile.service" file
|
||||||
|
|
||||||
|
# Database
|
||||||
|
for timeout in `seq 1 10`
|
||||||
|
do
|
||||||
|
sudo lxc-attach --name=$lxc_name -- mysql --user=root --password=$(sudo cat "$lxc_dir/etc/yunohost/mysql") --wait --execute="CREATE DATABASE witnessdb" > /dev/null 2>&1 && break
|
||||||
|
echo -n "."
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
check_witness_files () {
|
||||||
|
# Check all the witness files, to verify if them still here
|
||||||
|
|
||||||
|
lxc_dir="/var/lib/lxc/$lxc_name/rootfs"
|
||||||
|
|
||||||
|
check_file_exist () {
|
||||||
|
if sudo test ! -e "${lxc_dir}${1}"
|
||||||
|
then
|
||||||
|
ECHO_FORMAT "The file $1 is missing ! Something gone wrong !\n" "red" "bold"
|
||||||
|
RESULT_witness=1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Nginx conf
|
||||||
|
check_file_exist "/etc/nginx/conf.d/$main_domain.d/witnessfile.conf"
|
||||||
|
check_file_exist "/etc/nginx/conf.d/$sub_domain.d/witnessfile.conf"
|
||||||
|
|
||||||
|
# /etc
|
||||||
|
check_file_exist "/etc/witnessfile"
|
||||||
|
|
||||||
|
# /opt directory
|
||||||
|
check_file_exist "/opt/witnessdir"
|
||||||
|
|
||||||
|
# /var/www directory
|
||||||
|
check_file_exist "/var/www/witnessdir"
|
||||||
|
|
||||||
|
# /home/yunohost.app/
|
||||||
|
check_file_exist "/home/yunohost.app/witnessdir"
|
||||||
|
|
||||||
|
# /var/log
|
||||||
|
check_file_exist "/var/log/witnessfile"
|
||||||
|
|
||||||
|
# Config fpm
|
||||||
|
check_file_exist "/etc/php5/fpm/pool.d/witnessfile.conf"
|
||||||
|
|
||||||
|
# Config logrotate
|
||||||
|
check_file_exist "/etc/logrotate.d/witnessfile"
|
||||||
|
|
||||||
|
# Config systemd
|
||||||
|
check_file_exist "/etc/systemd/system/witnessfile.service"
|
||||||
|
|
||||||
|
# Database
|
||||||
|
if ! sudo lxc-attach --name=$lxc_name -- mysqlshow --user=root --password=$(sudo cat "$lxc_dir/etc/yunohost/mysql") | grep --quiet '^| witnessdb' > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
ECHO_FORMAT "The database witnessdb is missing ! Something gone wrong !\n" "red" "bold"
|
||||||
|
RESULT_witness=1
|
||||||
|
fi
|
||||||
|
if [ $RESULT_witness -eq 1 ]
|
||||||
|
then
|
||||||
|
yunohost_result=1
|
||||||
|
yunohost_remove=1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
TESTING_PROCESS () {
|
TESTING_PROCESS () {
|
||||||
# Launch all tests successively
|
# Launch all tests successively
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue