From 5d1812a50e2e55c904799c03a9b5d01887689e6a Mon Sep 17 00:00:00 2001 From: tituspijean Date: Mon, 6 Jul 2020 15:38:10 +0200 Subject: [PATCH] [fix] php-fpm and [rem] progression --time --- scripts/install | 26 +++++++++++++------------- scripts/remove | 20 ++++++++++++++------ scripts/restore | 11 +++++++++-- scripts/upgrade | 31 +++++++++++++++++++++---------- 4 files changed, 57 insertions(+), 31 deletions(-) diff --git a/scripts/install b/scripts/install index 956104f..86829b4 100644 --- a/scripts/install +++ b/scripts/install @@ -31,7 +31,7 @@ app=$YNH_APP_INSTANCE_NAME #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= -ynh_script_progression --message="Validating installation parameters..." --time --weight=1 +ynh_script_progression --message="Validating installation parameters..." --weight=1 ### If the app uses nginx as web server (written in HTML/PHP in most cases), the final path should be "/var/www/$app". ### If the app provides an internal web server (or uses another application server such as uwsgi), the final path should be "/opt/yunohost/$app" @@ -49,7 +49,7 @@ ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url #================================================= # STORE SETTINGS FROM MANIFEST #================================================= -ynh_script_progression --message="Storing installation settings..." --time --weight=1 +ynh_script_progression --message="Storing installation settings..." --weight=1 ynh_app_setting_set --app=$app --key=domain --value=$domain ynh_app_setting_set --app=$app --key=path --value=$path_url @@ -61,7 +61,7 @@ ynh_app_setting_set --app=$app --key=language --value=$language #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= -ynh_script_progression --message="Setting up source files..." --time --weight=1 +ynh_script_progression --message="Setting up source files..." --weight=2 ynh_app_setting_set --app=$app --key=final_path --value=$final_path # Download, check integrity, uncompress and patch the source from app.src @@ -70,7 +70,7 @@ ynh_setup_source --dest_dir=$final_path #================================================= # NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Configuring nginx web server..." --time --weight=1 +ynh_script_progression --message="Configuring nginx web server..." --weight=1 # Create a dedicated nginx config ynh_add_nginx_config YNH_PHP_VERSION @@ -78,7 +78,7 @@ ynh_add_nginx_config YNH_PHP_VERSION #================================================= # CREATE DEDICATED USER #================================================= -ynh_script_progression --message="Configuring system user..." --time --weight=1 +ynh_script_progression --message="Configuring system user..." --weight=1 # Create a system user ynh_system_user_create --username=$app @@ -86,7 +86,7 @@ ynh_system_user_create --username=$app #================================================= # PHP-FPM CONFIGURATION #================================================= -ynh_script_progression --message="Configuring php-fpm..." --time --weight=1 +ynh_script_progression --message="Configuring php-fpm..." --weight=3 # Create a dedicated php-fpm config ynh_add_fpm_config --usage=medium --footprint=medium --phpversion=$YNH_PHP_VERSION --package="$extra_php_dependencies" @@ -103,12 +103,12 @@ chown -R $app: $final_path #================================================= # INSTALL LDAP PLUGIN #================================================= -ynh_script_progression --message="Installing and configuring LDAP plugin..." --time --weight=1 +ynh_script_progression --message="Installing and configuring LDAP plugin..." --weight=1 pushd "$final_path" - exec_as $app "php${YNH_PHP_VERSION} bin/gpm install login-ldap -y" - exec_as $app "mkdir -p user/config/plugins" - exec_as $app "touch user/accounts/admin.yaml" + exec_as $app php${YNH_PHP_VERSION} bin/gpm install login-ldap -y + exec_as $app mkdir -p user/config/plugins/login-ldap + exec_as $app touch user/accounts/admin.yaml popd ynh_secure_remove "$final_path/user/plugins/login-ldap/login-ldap.yaml" @@ -120,7 +120,7 @@ exec_as $app cp "$final_path/user/plugins/login-ldap/login-ldap.yaml" "$final_pa #================================================= # SETUP PERMISSIONS #================================================= -ynh_script_progression --message="Configuring permissions..." --time --weight=1 +ynh_script_progression --message="Configuring permissions..." --weight=1 # Giving admin permission to the specified used ynh_permission_create --permission "admin" --allowed $admin @@ -139,7 +139,7 @@ fi #================================================= # RELOAD NGINX #================================================= -ynh_script_progression --message="Reloading nginx web server..." --time --weight=1 +ynh_script_progression --message="Reloading nginx web server..." --weight=1 systemctl reload nginx @@ -147,4 +147,4 @@ systemctl reload nginx # END OF SCRIPT #================================================= -ynh_script_progression --message="Installation of $app completed" --time --last +ynh_script_progression --message="Installation of $app completed" --last diff --git a/scripts/remove b/scripts/remove index ca2c62a..4f72017 100644 --- a/scripts/remove +++ b/scripts/remove @@ -12,7 +12,7 @@ source /usr/share/yunohost/helpers #================================================= # LOAD SETTINGS #================================================= -ynh_script_progression --message="Loading installation settings..." --time --weight=1 +ynh_script_progression --message="Loading installation settings..." --weight=1 # Get multi-instances specific variables app=$YNH_APP_INSTANCE_NAME @@ -23,10 +23,18 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) #================================================= # STANDARD REMOVE +#================================================= +# REMOVE DEPENDENCIES +#================================================= +ynh_script_progression --message="Removing dependencies..." --weight=2 + +# Remove metapackage and its dependencies +ynh_remove_app_dependencies + #================================================= # REMOVE APP MAIN DIR #================================================= -ynh_script_progression --message="Removing app main directory..." --time --weight=1 +ynh_script_progression --message="Removing app main directory..." --weight=1 # Remove the app directory securely ynh_secure_remove --file="$final_path" @@ -34,7 +42,7 @@ ynh_secure_remove --file="$final_path" #================================================= # REMOVE NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Removing nginx web server configuration..." --time --weight=1 +ynh_script_progression --message="Removing nginx web server configuration..." --weight=1 # Remove the dedicated nginx config ynh_remove_nginx_config @@ -42,7 +50,7 @@ ynh_remove_nginx_config #================================================= # REMOVE PHP-FPM CONFIGURATION #================================================= -ynh_script_progression --message="Removing php-fpm configuration..." --time --weight=1 +ynh_script_progression --message="Removing php-fpm configuration..." --weight=2 # Remove the dedicated php-fpm config ynh_remove_fpm_config @@ -52,7 +60,7 @@ ynh_remove_fpm_config #================================================= # REMOVE DEDICATED USER #================================================= -ynh_script_progression --message="Removing the dedicated system user..." --time --weight=1 +ynh_script_progression --message="Removing the dedicated system user..." --weight=1 # Delete a system user ynh_system_user_delete --username=$app @@ -61,4 +69,4 @@ ynh_system_user_delete --username=$app # END OF SCRIPT #================================================= -ynh_script_progression --message="Removal of $app completed" --time --last +ynh_script_progression --message="Removal of $app completed" --last diff --git a/scripts/restore b/scripts/restore index aaadbe7..2b10646 100644 --- a/scripts/restore +++ b/scripts/restore @@ -32,6 +32,9 @@ domain=$(ynh_app_setting_get --app=$app --key=domain) path_url=$(ynh_app_setting_get --app=$app --key=path) final_path=$(ynh_app_setting_get --app=$app --key=final_path) +fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) +fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) + #================================================= # CHECK IF THE APP CAN BE RESTORED #================================================= @@ -42,7 +45,6 @@ ynh_webpath_available --domain=$domain --path_url=$path_url \ test ! -d $final_path \ || ynh_die --message="There is already a directory: $final_path " - #================================================= # STANDARD RESTORATION STEPS #================================================= @@ -65,6 +67,7 @@ ynh_script_progression --message="Recreating the dedicated system user..." --tim # Create the dedicated user (if not existing) ynh_system_user_create --username=$app + #================================================= # RESTORE USER RIGHTS #================================================= @@ -76,7 +79,11 @@ chown -R $app: $final_path # RESTORE THE PHP-FPM CONFIGURATION #================================================= -ynh_restore_file "/etc/php/${YNH_PHP_VERSION}/fpm/pool.d/$app.conf" +# Restore the file first, so it can have a backup if different +ynh_restore_file --origin_path="/etc/php/$YNH_PHP_VERSION/fpm/pool.d/$app.conf" + +# Recreate a dedicated php-fpm config +ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint --phpversion=$YNH_PHP_VERSION --package="$extra_php_dependencies" #================================================= # GENERIC FINALIZATION diff --git a/scripts/upgrade b/scripts/upgrade index 5279913..c1e5aa4 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -19,10 +19,12 @@ app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get --app=$app --key=domain) path_url=$(ynh_app_setting_get --app=$app --key=path) admin=$(ynh_app_setting_get --app=$app --key=admin) -is_public=$(ynh_app_setting_get --app=$app --key=is_public) final_path=$(ynh_app_setting_get --app=$app --key=final_path) language=$(ynh_app_setting_get --app=$app --key=language) +fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) +fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) + #================================================= # CHECK VERSION #================================================= @@ -52,9 +54,6 @@ if [ -z "$final_path" ]; then ynh_app_setting_set --app=$app --key=final_path --value=$final_path fi -### If nobody installed your app before 3.7, -### then you may safely remove these lines - # Cleaning legacy permissions is_public=$(ynh_app_setting_get --app=$app --key=is_public) @@ -76,6 +75,18 @@ if [ -n "$is_public" ]; then ynh_app_setting_delete --app=$app --key=is_public fi +# If fpm_footprint doesn't exist, create it +if [ -z "$fpm_footprint" ]; then + fpm_footprint=medium + ynh_app_setting_set --app=$app --key=fpm_footprint --value=$fpm_footprint +fi + +# If fpm_usage doesn't exist, create it +if [ -z "$fpm_usage" ]; then + fpm_usage=medium + ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage +fi + #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= @@ -108,7 +119,7 @@ then ynh_script_progression --message="Upgrading source files..." --time --weight=1 # Download, check integrity, uncompress and patch the source from app.src - ynh_setup_source --dest_dir="$final_path" + ynh_setup_source --dest_dir="$final_path" --source_id="app-upgrade" fi #================================================= @@ -133,7 +144,7 @@ ynh_system_user_create --username=$app ynh_script_progression --message="Upgrading php-fpm configuration..." --time --weight=1 # Create a dedicated php-fpm config -ynh_add_fpm_config --usage=medium --footprint=medium --phpversion=$YNH_PHP_VERSION --package="$extra_php_dependencies" +ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint --phpversion=$YNH_PHP_VERSION --package="$extra_php_dependencies" # Delete existing ini configuration file (backward compatibility) if [ -f /etc/php/$YNH_PHP_VERSION/fpm/conf.d/20-$app.ini ]; then @@ -155,7 +166,7 @@ chown -R $app: $final_path ynh_script_progression --message="Updating all plugins..." --time --weight=1 pushd "$final_path" - exec_as $app "php${YNH_PHP_VERSION} bin/gpm update -y" + exec_as $app php${YNH_PHP_VERSION} bin/gpm update -y popd #================================================= @@ -164,9 +175,9 @@ popd ynh_script_progression --message="Installing and configuring LDAP plugin..." --time --weight=1 pushd "$final_path" - exec_as $app "php${YNH_PHP_VERSION} bin/gpm install login-ldap -y" - exec_as $app "mkdir -p user/config/plugins" - exec_as $app "touch user/accounts/admin.yaml" + exec_as $app php${YNH_PHP_VERSION} bin/gpm install login-ldap -y + exec_as $app mkdir -p user/config/plugins/login-ldap + exec_as $app touch user/accounts/admin.yaml popd ynh_secure_remove "$final_path/user/plugins/login-ldap/login-ldap.yaml"