1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/grafana_ynh.git synced 2024-09-03 20:36:29 +02:00

[autopatch] Automatic patch attempt for helpers 2.1

This commit is contained in:
Yunohost-Bot 2024-08-30 23:29:26 +02:00 committed by Alexandre Aubin
parent 9e7c0e5e6a
commit e9bcc82e98
8 changed files with 80 additions and 147 deletions

View file

@ -16,7 +16,8 @@ demo = "https://play.grafana.org"
code = "https://github.com/grafana/grafana" code = "https://github.com/grafana/grafana"
[integration] [integration]
yunohost = ">= 11.2" yunohost = ">= 11.2.18"
helpers_version = "2.1"
architectures = "all" architectures = "all"
multi_instance = false multi_instance = false

View file

@ -1,17 +1,5 @@
#!/bin/bash #!/bin/bash
#================================================= #=================================================
# COMMON VARIABLES # COMMON VARIABLES AND CUSTOM HELPERS
#=================================================
#=================================================
# PERSONAL HELPERS
#=================================================
#=================================================
# EXPERIMENTAL HELPERS
#=================================================
#=================================================
# FUTURE OFFICIAL HELPERS
#================================================= #=================================================

View file

@ -1,30 +1,21 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts # Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
source ../settings/scripts/_common.sh source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
#================================================= ynh_print_info "Declaring files to be backed up..."
# DECLARE DATA AND CONF FILES TO BACKUP
#=================================================
ynh_print_info --message="Declaring files to be backed up..."
#================================================= #=================================================
# BACKUP THE NGINX CONFIGURATION # BACKUP THE NGINX CONFIGURATION
#================================================= #=================================================
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf" ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"
#================================================= #=================================================
# SPECIFIC BACKUP # SPECIFIC BACKUP
#================================================= #=================================================
ynh_print_info --message="Backing up the InfluxDB database..." ynh_print_info "Backing up the InfluxDB database..."
# Backup InfluxDB data # Backup InfluxDB data
# Source: http://stackoverflow.com/questions/39501416/how-to-restore-data-base-using-influxd # Source: http://stackoverflow.com/questions/39501416/how-to-restore-data-base-using-influxd
@ -32,16 +23,17 @@ mkdir influxdb_data
# Backup only if database exists (compatible with automated tests where NetData is not present) # Backup only if database exists (compatible with automated tests where NetData is not present)
# and if BACKUP_CORE_ONY/do_not_backup_data not set # and if BACKUP_CORE_ONY/do_not_backup_data not set
BACKUP_CORE_ONLY=${BACKUP_CORE_ONLY:-0} BACKUP_CORE_ONLY=${BACKUP_CORE_ONLY:-0}
do_not_backup_data=$(ynh_app_setting_get --app=$app --key=do_not_backup_data) do_not_backup_data=$(ynh_app_setting_get --key=do_not_backup_data)
if [ -d "/var/lib/influxdb/data/opentsdb" ]; then if [ -d "/var/lib/influxdb/data/opentsdb" ]; then
if ( [ ${do_not_backup_data:-0} -eq 1 ] || [ $BACKUP_CORE_ONLY -eq 1 ] ) if ( [ ${do_not_backup_data:-0} -eq 1 ] || [ $BACKUP_CORE_ONLY -eq 1 ] )
then then
if [ $BACKUP_CORE_ONLY -eq 1 ] if [ $BACKUP_CORE_ONLY -eq 1 ]
then then
ynh_print_warn --message="The InfluxDB database will not be saved, because 'BACKUP_CORE_ONLY' is set." ynh_print_warn "The InfluxDB database will not be saved, because 'BACKUP_CORE_ONLY' is set."
else else
ynh_print_warn --message="The InfluxDB database will not be saved, because 'do_not_backup_data' is set." ynh_print_warn "The InfluxDB database will not be saved, because 'do_not_backup_data' is set."
fi fi
else else
influxd backup -portable influxdb_data influxd backup -portable influxdb_data
@ -52,19 +44,19 @@ fi
# BACKUP VARIOUS FILES # BACKUP VARIOUS FILES
#================================================= #=================================================
ynh_backup --src_path="/etc/influxdb" ynh_backup "/etc/influxdb"
ynh_backup --src_path="/etc/$app" ynh_backup "/etc/$app"
ynh_backup --src_path="/var/lib/grafana/plugins" --not_mandatory ynh_backup "/var/lib/grafana/plugins" || true
#================================================= #=================================================
# BACKUP THE MYSQL DATABASE # BACKUP THE MYSQL DATABASE
#================================================= #=================================================
ynh_print_info --message="Backing up the MySQL database..." ynh_print_info "Backing up the MySQL database..."
ynh_mysql_dump_db --database="$db_name" > db.sql ynh_mysql_dump_db > db.sql
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================
ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)." ynh_print_info "Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."

View file

@ -1,36 +1,28 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC STARTING
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh source _common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
#=================================================
# STANDARD MODIFICATIONS
#================================================= #=================================================
# STOP SYSTEMD SERVICE # STOP SYSTEMD SERVICE
#================================================= #=================================================
ynh_script_progression --message="Stopping a systemd service..." --weight=2 ynh_script_progression "Stopping $app's systemd service..."
ynh_systemd_action --service_name=grafana-server --action="stop" --log_path="/var/log/grafana/grafana.log" ynh_systemctl --service=grafana-server --action="stop" --log_path="/var/log/grafana/grafana.log"
#================================================= #=================================================
# MODIFY URL IN NGINX CONF # MODIFY URL IN NGINX CONF
#================================================= #=================================================
ynh_script_progression --message="Updating NGINX web server configuration..." --weight=1 ynh_script_progression "Updating NGINX web server configuration..."
ynh_change_url_nginx_config ynh_config_change_url_nginx
#================================================= #=================================================
# SPECIFIC MODIFICATIONS # SPECIFIC MODIFICATIONS
#================================================= #=================================================
# UPDATE GRAFANA CONFIGURATION # UPDATE GRAFANA CONFIGURATION
#================================================= #=================================================
ynh_script_progression --message="Updating Grafana configuration..." --weight=1 ynh_script_progression "Updating Grafana configuration..."
grafana_conf="/etc/grafana/grafana.ini" grafana_conf="/etc/grafana/grafana.ini"
# Set domain # Set domain
@ -44,18 +36,16 @@ else
sed -i "/^\[server\]$/,/^\[/ s@serve_from_sub_path = .*@serve_from_sub_path = false@" $grafana_conf sed -i "/^\[server\]$/,/^\[/ s@serve_from_sub_path = .*@serve_from_sub_path = false@" $grafana_conf
fi fi
#=================================================
# GENERIC FINALISATION
#================================================= #=================================================
# START SYSTEMD SERVICE # START SYSTEMD SERVICE
#================================================= #=================================================
ynh_script_progression --message="Starting a systemd service..." --weight=2 ynh_script_progression "Starting $app's systemd service..."
systemctl daemon-reload systemctl daemon-reload
ynh_systemd_action --service_name=grafana-server --action="start" --log_path="/var/log/grafana/grafana.log" --line_match="HTTP Server Listen" --timeout=600 ynh_systemctl --service=grafana-server --action="start" --log_path="/var/log/grafana/grafana.log" --wait_until="HTTP Server Listen" --timeout=600
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================
ynh_script_progression --message="Change of URL completed for $app" --last ynh_script_progression "Change of URL completed for $app"

View file

@ -1,28 +1,22 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh source _common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
#================================================= #=================================================
# NGINX CONFIGURATION # NGINX CONFIGURATION
#================================================= #=================================================
ynh_script_progression --message="Configuring NGINX web server..." --weight=1 ynh_script_progression "Configuring NGINX web server..."
# Create a dedicated NGINX config # Create a dedicated NGINX config
ynh_add_nginx_config ynh_config_add_nginx
#================================================= #=================================================
# SPECIFIC SETUP # SPECIFIC SETUP
#================================================= #=================================================
# CONFIGURING GRAFANA AND INFLUXDB # CONFIGURING GRAFANA AND INFLUXDB
#================================================= #=================================================
ynh_script_progression --message="Configuring Grafana and InfluxDB..." --weight=30 ynh_script_progression "Configuring Grafana and InfluxDB..."
# If NetData is installed, configure it to feed InfluxDB # If NetData is installed, configure it to feed InfluxDB
if [ -d "/var/www/netdata/etc/netdata" ] ; then if [ -d "/var/www/netdata/etc/netdata" ] ; then
@ -51,36 +45,36 @@ if [ -d "/var/www/netdata/etc/netdata" ] ; then
EOF EOF
fi fi
# Restart NetData # Restart NetData
ynh_systemd_action --service_name=netdata --action="restart" ynh_systemctl --service=netdata --action="restart"
fi fi
# Configure InfluxDB # Configure InfluxDB
sed -i '/^\[\[opentsdb\]\]$/,/^\[/ s/^.* enabled = false/enabled = true/' /etc/influxdb/influxdb.conf sed -i '/^\[\[opentsdb\]\]$/,/^\[/ s/^.* enabled = false/enabled = true/' /etc/influxdb/influxdb.conf
# Start InfluxDB server # Start InfluxDB server
ynh_systemd_action --service_name=influxdb --action="restart" ynh_systemctl --service=influxdb --action="restart"
# Configure Grafana # Configure Grafana
ynh_add_config --template="ldap.toml" --destination="/etc/grafana/ldap.toml" ynh_config_add --template="ldap.toml" --destination="/etc/grafana/ldap.toml"
ynh_add_config --template="grafana.ini" --destination="/etc/grafana/grafana.ini" ynh_config_add --template="grafana.ini" --destination="/etc/grafana/grafana.ini"
chmod 650 "/etc/grafana/grafana.ini" chmod 650 "/etc/grafana/grafana.ini"
chown $app:$app "/etc/grafana/grafana.ini" chown $app:$app "/etc/grafana/grafana.ini"
# Calculate and store the config file checksum into the app settings # Calculate and store the config file checksum into the app settings
ynh_store_file_checksum --file="/etc/grafana/grafana.ini" ynh_store_file_checksum "/etc/grafana/grafana.ini"
# Start Grafana and wait for it to be fully started # Start Grafana and wait for it to be fully started
systemctl daemon-reload systemctl daemon-reload
ynh_systemd_action --service_name=grafana-server --action="restart" --log_path="/var/log/grafana/grafana.log" --line_match="HTTP Server Listen" --timeout=600 ynh_systemctl --service=grafana-server --action="restart" --log_path="/var/log/grafana/grafana.log" --wait_until="HTTP Server Listen" --timeout=600
# Change admin name to the specified one # Change admin name to the specified one
mail=$(ynh_user_get_info "$admin" 'mail') mail=$(ynh_user_get_info "$admin" 'mail')
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name <<< "UPDATE user SET login=\"$admin\", email=\"$mail\" WHERE login=\"admin\";" ynh_mysql_db_shell <<< "UPDATE user SET login=\"$admin\", email=\"$mail\" WHERE login=\"admin\";"
# Create InfluxDB data source # Create InfluxDB data source
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name <<< "INSERT INTO data_source (id, org_id, version, type, name, access, url, password, user, \`database\`, basic_auth, basic_auth_user, basic_auth_password, is_default, json_data, created, updated, with_credentials, secure_json_data) VALUES (99999, 1, 0, 'influxdb', 'InfluxDB', 'proxy', 'http://localhost:8086', '', '', 'opentsdb', 0, '', '', 0, '{\"tsdbResolution\":1,\"tsdbVersion\":1}', '2017-02-12 14:35:33', '2017-02-12 14:36:27', 0, '{}');" ynh_mysql_db_shell <<< "INSERT INTO data_source (id, org_id, version, type, name, access, url, password, user, \`database\`, basic_auth, basic_auth_user, basic_auth_password, is_default, json_data, created, updated, with_credentials, secure_json_data) VALUES (99999, 1, 0, 'influxdb', 'InfluxDB', 'proxy', 'http://localhost:8086', '', '', 'opentsdb', 0, '', '', 0, '{\"tsdbResolution\":1,\"tsdbVersion\":1}', '2017-02-12 14:35:33', '2017-02-12 14:36:27', 0, '{}');"
# Import default dashboard for NetData (source: https://grafana.com/grafana/dashboards/2701) # Import default dashboard for NetData (source: https://grafana.com/grafana/dashboards/2701)
# Remove new lines # Remove new lines
@ -91,21 +85,19 @@ sed -i 's/${DS_CENTCOM-INFLUXDB}/InfluxDB/g' dashboard.json
dashboard=$(cat dashboard.json) dashboard=$(cat dashboard.json)
printf -v escaped_dashboard "%q" "$dashboard" printf -v escaped_dashboard "%q" "$dashboard"
# Import dashboard into MySQL # Import dashboard into MySQL
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name <<< "INSERT INTO dashboard (id, version, slug, title, data, org_id, created, updated, uid) VALUES ynh_mysql_db_shell <<< "INSERT INTO dashboard (id, version, slug, title, data, org_id, created, updated, uid) VALUES
(99999, 0, 'NetData', 'NetData', \"$escaped_dashboard\", 1, '2020-05-16 14:36:50', '2020-05-16 14:36:50', 'yunohost');" (99999, 0, 'NetData', 'NetData', \"$escaped_dashboard\", 1, '2020-05-16 14:36:50', '2020-05-16 14:36:50', 'yunohost');"
# Add dashboard version # Add dashboard version
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name <<< "INSERT INTO dashboard_version (id, dashboard_id, parent_version, restored_from, version, created, created_by, message, data) VALUES (99999, 99999, 0, 0, 1, '2020-05-16 14:36:50', 1, 'YunoHost installer', \"$escaped_dashboard\");" ynh_mysql_db_shell <<< "INSERT INTO dashboard_version (id, dashboard_id, parent_version, restored_from, version, created, created_by, message, data) VALUES (99999, 99999, 0, 0, 1, '2020-05-16 14:36:50', 1, 'YunoHost installer', \"$escaped_dashboard\");"
# Enable the systemd service so that InfluxDB and Grafana start at boot # Enable the systemd service so that InfluxDB and Grafana start at boot
systemctl enable influxdb.service --quiet systemctl enable influxdb.service --quiet
systemctl enable grafana-server.service --quiet systemctl enable grafana-server.service --quiet
#=================================================
# GENERIC FINALIZATION
#================================================= #=================================================
# INTEGRATE SERVICE IN YUNOHOST # INTEGRATE SERVICE IN YUNOHOST
#================================================= #=================================================
ynh_script_progression --message="Integrating service in YunoHost..." ynh_script_progression "Integrating service in YunoHost..."
yunohost service add influxdb --description="open source time series database" --log="/var/log/grafana/grafana.log" yunohost service add influxdb --description="open source time series database" --log="/var/log/grafana/grafana.log"
yunohost service add grafana-server --description="open source analytics and monitoring solution" --log="/var/log/grafana/grafana.log" yunohost service add grafana-server --description="open source analytics and monitoring solution" --log="/var/log/grafana/grafana.log"
@ -113,13 +105,13 @@ yunohost service add grafana-server --description="open source analytics and mon
#================================================= #=================================================
# START SYSTEMD SERVICE # START SYSTEMD SERVICE
#================================================= #=================================================
ynh_script_progression --message="Starting a systemd service..." --weight=2 ynh_script_progression "Starting $app's systemd service..."
systemctl daemon-reload systemctl daemon-reload
ynh_systemd_action --service_name=grafana-server --action="restart" --log_path="/var/log/grafana/grafana.log" --line_match="HTTP Server Listen" --timeout=600 ynh_systemctl --service=grafana-server --action="restart" --log_path="/var/log/grafana/grafana.log" --wait_until="HTTP Server Listen" --timeout=600
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================
ynh_script_progression --message="Installation of $app completed" --last ynh_script_progression "Installation of $app completed"

View file

@ -1,11 +1,5 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh source _common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
@ -16,9 +10,9 @@ source /usr/share/yunohost/helpers
#================================================= #=================================================
# Remove the service from the list of services known by YunoHost (added from `yunohost service add`) # Remove the service from the list of services known by YunoHost (added from `yunohost service add`)
if ynh_exec_warn_less yunohost service status grafana-server >/dev/null if ynh_hide_warnings yunohost service status grafana-server >/dev/null
then then
ynh_script_progression --message="Removing $app service integration..." --weight=1 ynh_script_progression "Removing $app service integration..."
yunohost service remove grafana-server yunohost service remove grafana-server
yunohost service remove influxdb yunohost service remove influxdb
fi fi
@ -26,17 +20,17 @@ fi
#================================================= #=================================================
# REMOVE NGINX CONFIGURATION # REMOVE NGINX CONFIGURATION
#================================================= #=================================================
ynh_script_progression --message="Removing NGINX web server configuration..." --weight=1 ynh_script_progression "Removing NGINX web server configuration..."
# Remove the dedicated NGINX config # Remove the dedicated NGINX config
ynh_remove_nginx_config ynh_config_remove_nginx
#================================================= #=================================================
# SPECIFIC REMOVE # SPECIFIC REMOVE
#================================================= #=================================================
# REMOVE VARIOUS FILES # REMOVE VARIOUS FILES
#================================================= #=================================================
ynh_script_progression --message="Removing various files..." ynh_script_progression "Removing various files..."
# If NetData is installed, configure it not to feed InfluxDB any more # If NetData is installed, configure it not to feed InfluxDB any more
netdata_conf="/var/www/netdata/etc/netdata/exporting.conf" netdata_conf="/var/www/netdata/etc/netdata/exporting.conf"
@ -47,10 +41,10 @@ if [[ -f "$netdata_conf" ]] ; then
}' $netdata_conf }' $netdata_conf
fi fi
ynh_secure_remove --file="/etc/grafana/grafana.ini" ynh_safe_rm "/etc/grafana/grafana.ini"
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================
ynh_script_progression --message="Removal of $app completed" --last ynh_script_progression "Removal of $app completed"

View file

@ -1,11 +1,5 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts # Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
source ../settings/scripts/_common.sh source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
@ -13,36 +7,36 @@ source /usr/share/yunohost/helpers
#================================================= #=================================================
# CHECK IF THE APP CAN BE RESTORED # CHECK IF THE APP CAN BE RESTORED
#================================================= #=================================================
#ynh_script_progression --message="Validating restoration parameters..." --weight=1 #ynh_script_progression "Validating restoration parameters..."
# #
# This old test doesn't seem to make sense in packaging v2 anymore, because at this stage the apt dependencies are already installed, so yes /etc/influxdb exists ... # This old test doesn't seem to make sense in packaging v2 anymore, because at this stage the apt dependencies are already installed, so yes /etc/influxdb exists ...
# it's not clear what was really the intent # it's not clear what was really the intent
#test ! -d "/etc/influxdb" || ynh_die --message="InfluxDB/Grafana are already installed" #test ! -d "/etc/influxdb" || ynh_die "InfluxDB/Grafana are already installed"
#================================================= #=================================================
# STANDARD RESTORATION STEPS # STANDARD RESTORATION STEPS
#================================================= #=================================================
# RESTORE THE NGINX CONFIGURATION # RESTORE THE NGINX CONFIGURATION
#================================================= #=================================================
ynh_script_progression --message="Restoring the NGINX web server configuration..." ynh_script_progression "Restoring the NGINX web server configuration..."
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" ynh_restore "/etc/nginx/conf.d/$domain.d/$app.conf"
#================================================= #=================================================
# RESTORE THE MYSQL DATABASE # RESTORE THE MYSQL DATABASE
#================================================= #=================================================
ynh_script_progression --message="Restoring the MySQL database..." --weight=2 ynh_script_progression "Restoring the MySQL database..."
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql ynh_mysql_db_shell < ./db.sql
#================================================= #=================================================
# RESTORE VARIOUS FILES # RESTORE VARIOUS FILES
#================================================= #=================================================
ynh_script_progression --message="Restoring various files..." --weight=2 ynh_script_progression "Restoring various files..."
ynh_restore_file --origin_path="/etc/influxdb" ynh_restore "/etc/influxdb"
ynh_restore_file --origin_path="/etc/grafana" ynh_restore "/etc/grafana"
ynh_restore_file --origin_path="/var/lib/grafana/plugins" --not_mandatory ynh_restore "/var/lib/grafana/plugins" || true
# Set permission with the new grafana user (id could have been changed) # Set permission with the new grafana user (id could have been changed)
chown -R root:grafana "/etc/grafana" chown -R root:grafana "/etc/grafana"
@ -53,11 +47,11 @@ fi
#================================================= #=================================================
# RESTORE THE INFLUXDB DATABASE # RESTORE THE INFLUXDB DATABASE
#================================================= #=================================================
ynh_script_progression --message="Restoring the InfluxDB database..." --weight=10 ynh_script_progression "Restoring the InfluxDB database..."
# Restore InfluxDB data (only if backup not empty) # Restore InfluxDB data (only if backup not empty)
# That happens when passing automated tests (NetData not present) # That happens when passing automated tests (NetData not present)
ynh_systemd_action --service_name=influxdb --action="stop" ynh_systemctl --service=influxdb --action="stop"
if [ "$(ls -A ./influxdb_data)" ] ; then if [ "$(ls -A ./influxdb_data)" ] ; then
influxd restore -portable ./influxdb_data influxd restore -portable ./influxdb_data
fi fi
@ -65,7 +59,7 @@ fi
#================================================= #=================================================
# INTEGRATE SERVICE IN YUNOHOST # INTEGRATE SERVICE IN YUNOHOST
#================================================= #=================================================
ynh_script_progression --message="Integrating service in YunoHost..." ynh_script_progression "Integrating service in YunoHost..."
yunohost service add influxdb --description="open source time series database" --log="/var/log/grafana/grafana.log" yunohost service add influxdb --description="open source time series database" --log="/var/log/grafana/grafana.log"
yunohost service add grafana-server --description="open source analytics and monitoring solution" --log="/var/log/grafana/grafana.log" yunohost service add grafana-server --description="open source analytics and monitoring solution" --log="/var/log/grafana/grafana.log"
@ -73,27 +67,25 @@ yunohost service add grafana-server --description="open source analytics and mon
#================================================= #=================================================
# START SYSTEMD SERVICE # START SYSTEMD SERVICE
#================================================= #=================================================
ynh_script_progression --message="Starting a systemd service..." --weight=1 ynh_script_progression "Starting $app's systemd service..."
# Enable the systemd service so that InfluxDB and Grafana start at boot # Enable the systemd service so that InfluxDB and Grafana start at boot
systemctl enable influxdb.service --quiet systemctl enable influxdb.service --quiet
systemctl enable grafana-server.service --quiet systemctl enable grafana-server.service --quiet
systemctl daemon-reload systemctl daemon-reload
ynh_systemd_action --service_name=influxdb --action="start" ynh_systemctl --service=influxdb --action="start"
ynh_systemd_action --service_name=grafana-server --action="start" --log_path="/var/log/grafana/grafana.log" --line_match="HTTP Server Listen" --timeout=600 ynh_systemctl --service=grafana-server --action="start" --log_path="/var/log/grafana/grafana.log" --wait_until="HTTP Server Listen" --timeout=600
#=================================================
# GENERIC FINALIZATION
#================================================= #=================================================
# RELOAD NGINX AND PHP-FPM # RELOAD NGINX AND PHP-FPM
#================================================= #=================================================
ynh_script_progression --message="Reloading NGINX web server..." --weight=1 ynh_script_progression "Reloading NGINX web server..."
ynh_systemd_action --service_name=nginx --action=reload ynh_systemctl --service=nginx --action=reload
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================
ynh_script_progression --message="Restoration completed for $app" --last ynh_script_progression "Restoration completed for $app"

View file

@ -1,24 +1,12 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh source _common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
#=================================================
# CHECK VERSION
#=================================================
upgrade_type=$(ynh_check_app_version_changed)
#================================================= #=================================================
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
#================================================= #=================================================
ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=4 ynh_script_progression "Backing up the app before upgrading (may take a while)..."
# Workaround for missing "/var/lib/grafana/plugins" # Workaround for missing "/var/lib/grafana/plugins"
mkdir -p "/var/lib/grafana/plugins" mkdir -p "/var/lib/grafana/plugins"
@ -27,17 +15,15 @@ chown -R $app:$app "/var/lib/grafana/plugins"
#================================================= #=================================================
# NGINX CONFIGURATION # NGINX CONFIGURATION
#================================================= #=================================================
ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=1 ynh_script_progression "Upgrading NGINX web server configuration..."
# Create a dedicated NGINX config # Create a dedicated NGINX config
ynh_add_nginx_config ynh_config_add_nginx
#=================================================
# SPECIFIC UPGRADE
#================================================= #=================================================
# CONFIGURING GRAFANA AND INFLUXDB # CONFIGURING GRAFANA AND INFLUXDB
#================================================= #=================================================
ynh_script_progression --message="Configuring Grafana and InfluxDB..." --weight=3 ynh_script_progression "Configuring Grafana and InfluxDB..."
# If NetData is installed, configure it to feed InfluxDB # If NetData is installed, configure it to feed InfluxDB
if [ -d "/var/www/netdata" ] ; then if [ -d "/var/www/netdata" ] ; then
@ -84,14 +70,14 @@ EOF
fi fi
fi fi
# Restart NetData # Restart NetData
ynh_systemd_action --service_name=netdata --action="restart" ynh_systemctl --service=netdata --action="restart"
fi fi
# Fix configuration for Grafana instances existing prior to version 10 # Fix configuration for Grafana instances existing prior to version 10
sed -i "/^\[server\]$/,/^\[/ s@serve_from_sub_path = .*@serve_from_sub_path = false@" "/etc/grafana/grafana.ini" sed -i "/^\[server\]$/,/^\[/ s@serve_from_sub_path = .*@serve_from_sub_path = false@" "/etc/grafana/grafana.ini"
# Update Grafana LDAP authentication configuration # Update Grafana LDAP authentication configuration
ynh_add_config --template="ldap.toml" --destination="/etc/grafana/ldap.toml" ynh_config_add --template="ldap.toml" --destination="/etc/grafana/ldap.toml"
# Update default dashboard for NetData (source: https://grafana.com/grafana/dashboards/2701) # Update default dashboard for NetData (source: https://grafana.com/grafana/dashboards/2701)
# Remove new lines # Remove new lines
@ -102,16 +88,14 @@ sed -i 's/${DS_CENTCOM-INFLUXDB}/InfluxDB/g' dashboard.json
dashboard=$(cat dashboard.json) dashboard=$(cat dashboard.json)
printf -v escaped_dashboard "%q" "$dashboard" printf -v escaped_dashboard "%q" "$dashboard"
# Import dashboard into MySQL # Import dashboard into MySQL
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name <<< "UPDATE dashboard set data=\"$escaped_dashboard\" WHERE id=99999;" ynh_mysql_db_shell <<< "UPDATE dashboard set data=\"$escaped_dashboard\" WHERE id=99999;"
# Insert dashboard version if non existent (for downward compatibility) # Insert dashboard version if non existent (for downward compatibility)
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name <<< "INSERT INTO dashboard_version (id, dashboard_id, parent_version, restored_from, version, created, created_by, message, data) VALUES (99999, 99999, 0, 0, 1, '2020-05-16 14:36:50', 1, 'YunoHost installer', \"$escaped_dashboard\");" > /dev/null 2>&1 || true ynh_mysql_db_shell <<< "INSERT INTO dashboard_version (id, dashboard_id, parent_version, restored_from, version, created, created_by, message, data) VALUES (99999, 99999, 0, 0, 1, '2020-05-16 14:36:50', 1, 'YunoHost installer', \"$escaped_dashboard\");" > /dev/null 2>&1 || true
#=================================================
# GENERIC FINALIZATION
#================================================= #=================================================
# INTEGRATE SERVICE IN YUNOHOST # INTEGRATE SERVICE IN YUNOHOST
#================================================= #=================================================
ynh_script_progression --message="Integrating service in YunoHost..." ynh_script_progression "Integrating service in YunoHost..."
yunohost service add influxdb --description="open source time series database" --log="/var/log/grafana/grafana.log" yunohost service add influxdb --description="open source time series database" --log="/var/log/grafana/grafana.log"
yunohost service add grafana-server --description="open source analytics and monitoring solution" --log="/var/log/grafana/grafana.log" yunohost service add grafana-server --description="open source analytics and monitoring solution" --log="/var/log/grafana/grafana.log"
@ -119,13 +103,13 @@ yunohost service add grafana-server --description="open source analytics and mon
#================================================= #=================================================
# START SYSTEMD SERVICE # START SYSTEMD SERVICE
#================================================= #=================================================
ynh_script_progression --message="Restarting a systemd service..." --weight=2 ynh_script_progression "Restarting a systemd service..."
systemctl daemon-reload systemctl daemon-reload
ynh_systemd_action --service_name=grafana-server --action="restart" --log_path="/var/log/grafana/grafana.log" --line_match="HTTP Server Listen" --timeout=600 ynh_systemctl --service=grafana-server --action="restart" --log_path="/var/log/grafana/grafana.log" --wait_until="HTTP Server Listen" --timeout=600
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================
ynh_script_progression --message="Upgrade of $app completed" --last ynh_script_progression "Upgrade of $app completed"