1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/pgadmin_ynh.git synced 2024-09-03 19:56:38 +02:00

cleanup install

This commit is contained in:
Salamandar 2024-01-30 16:22:11 +01:00
parent 697dd1c305
commit bbc3f1a0ea
4 changed files with 19 additions and 86 deletions

4
conf/setup.exp Normal file → Executable file
View file

@ -11,11 +11,11 @@ expect "Email address:"
send "$user\r"; send "$user\r";
expect "Password:" expect "Password:"
send {__ADMIN_PASSWORD__}; send {__PASSWORD__};
send "\r"; send "\r";
expect "Retype password:" expect "Retype password:"
send {__ADMIN_PASSWORD__}; send {__PASSWORD__};
send "\r"; send "\r";
interact interact

View file

@ -37,7 +37,3 @@ _install_pgadmin_venv() {
cp "$YNH_APP_BASEDIR/conf/requirement_$(lsb_release --codename --short).txt" "$install_dir/requirements.txt" cp "$YNH_APP_BASEDIR/conf/requirement_$(lsb_release --codename --short).txt" "$install_dir/requirements.txt"
ynh_exec_as "$app" "$venvpy" -m pip install --upgrade -r "$install_dir/requirements.txt" ynh_exec_as "$app" "$venvpy" -m pip install --upgrade -r "$install_dir/requirements.txt"
} }
config_pgadmin() {
ynh_add_config --template="config_local.py" --destination="$install_dir/venv/lib/python$python_version/site-packages/pgadmin4/config_local.py"
}

View file

@ -1,55 +0,0 @@
#!/usr/bin/python
from importlib.machinery import SourceFileLoader
import sqlite3
import sys
# Import crypto from pgadmin project __PYTHON_VERSION__
python_version = str(sys.version_info[0]) + "." + str(sys.version_info[1])
crypto = SourceFileLoader('crypto', '/var/www/pgadmin/venv/lib/python' +
python_version + '/site-packages/pgadmin4/pgadmin/utils/crypto.py').load_module()
# Get arguments
username = sys.argv[1]
password = sys.argv[2]
# Connect to sqlite3
conn = sqlite3.connect('/var/lib/pgadmin/pgadmin4.db')
# Get encrypte user password from the database
cursor = conn.execute('SELECT `password`,1 FROM `user`')
user_encrypted_password = cursor.fetchone()[0]
# Encrypt database password
crypted_password = crypto.encrypt(password, user_encrypted_password)
# Declare database data to put in database
data = {'id': 1, 'user_id': 1, 'servergroup_id': 1, 'name': 'Yunohost Server', 'host': 'localhost', 'port': 5432, 'maintenance_db': 'postgres',
'username': username, 'comment': '', 'password': crypted_password, 'role': '', 'discovery_id': '',
'db_res': '', 'bgcolor': '', 'fgcolor': '', 'service': '',
'use_ssh_tunnel': '', 'tunnel_host': '', 'tunnel_port': 22, 'tunnel_username': '', 'tunnel_authentication': '', 'tunnel_identity_file': '', 'tunnel_password': '',
'save_password': 1, 'shared': '', 'kerberos_conn': 0, 'cloud_status': 0, 'passexec_cmd': '', 'passexec_expiration': '',
'connection_params': '''{"sslmode": "prefer", "connect_timeout": 10, "sslcert": "<STORAGE_DIR>/.postgresql/postgresql.crt", "sslkey": "<STORAGE_DIR>/.postgresql/postgresql.key"}'''}
# Insert new data in database
cursor = conn.cursor()
cursor.execute('''
INSERT INTO `server` (
`id`,`user_id`,`servergroup_id`,`name`,`host`,`port`,`maintenance_db`,
`username`,`comment`,`password`,`role`,`discovery_id`,
`db_res`,`bgcolor`,`fgcolor`,`service`,
`use_ssh_tunnel`,`tunnel_host`,`tunnel_port`,`tunnel_username`,`tunnel_authentication`,`tunnel_identity_file`,`tunnel_password`,
`save_password`,`shared`,`kerberos_conn`,`cloud_status`,`passexec_cmd`,`passexec_expiration`,
`connection_params`
) VALUES (
:id,:user_id,:servergroup_id,:name,:host,:port,:maintenance_db,
:username,:comment,:password,:role,:discovery_id,
:db_res,:bgcolor,:fgcolor,:service,
:use_ssh_tunnel,:tunnel_host,:tunnel_port,:tunnel_username,:tunnel_authentication,:tunnel_identity_file,:tunnel_password,
:save_password,:shared,:kerberos_conn,:cloud_status,:passexec_cmd,:passexec_expiration,
:connection_params
);''', data)
conn.commit()
# Close connection
conn.close()

View file

@ -21,43 +21,32 @@ email=$(ynh_user_get_info --username $admin --key 'mail')
#================================================= #=================================================
ynh_script_progression --message="Setting up source files..." ynh_script_progression --message="Setting up source files..."
# Download, check integrity, uncompress and patch the source from app.src _install_pgadmin_venv
ynh_script_progression --message="Installing sources files..." --weight=10
setup_dir setup_dir
_install_pgadmin_venv
#================================================= #=================================================
# SPECIFIC SETUP # ADD A CONFIGURATION
#================================================= #=================================================
# ... ynh_script_progression --message="Adding a configuration file..." --weight=1
#=================================================
ynh_script_progression --message="Configuring application..."
# CONFIGURE PGADMIN # CONFIGURE PGADMIN
config_pgadmin ynh_add_config --template="config_local.py" --destination="$install_dir/venv/lib/python$python_version/site-packages/pgadmin4/config_local.py"
# Config uwsgi ynh_script_progression --message="Configuring $app..."
ynh_add_uwsgi_service "python_version"
ynh_script_progression --message="Configuring sqlite database..." ynh_add_config --template="setup.exp" --destination="$install_dir/setup.exp"
"$install_dir/setup.exp" "$install_dir/venv/bin/python3" "$install_dir/venv/lib/python$python_version/site-packages/pgadmin4/setup.py" "$email"
# initialisation sqlite database for pgadmin #=================================================
chmod +x ../conf/setup.exp # Postgresql superuser
#=================================================
ynh_replace_special_string --match_string "__ADMIN_PASSWORD__" --replace_string "$password" --target_file "../conf/setup.exp" ynh_script_progression --message="Configuring Postgresql superuser..."
../conf/setup.exp "$install_dir/venv/bin/python3" "$install_dir/venv/lib/python$python_version/site-packages/pgadmin4/setup.py" "$email" ynh_psql_execute_as_root --sql "CREATE USER $db_user WITH PASSWORD '$db_pwd' SUPERUSER CREATEDB CREATEROLE REPLICATION"
# POPULATE THE DATABASE
ynh_script_progression --message="Configuring Postgresql database..."
#REMOVEME? ynh_psql_test_if_first_run
ynh_psql_execute_as_root \
--sql "CREATE USER ${db_user} WITH PASSWORD '${db_pwd}' SUPERUSER CREATEDB CREATEROLE REPLICATION"
# Add Server In PGadmin database # Add Server In PGadmin database
$install_dir/venv/bin/python3 config_database.py "$db_user" "$db_pwd" ynh_add_config --template="setup_database.py" --destination "$install_dir/setup_database.py"
"$install_dir/venv/bin/python3" "$install_dir/setup_database.py" "$db_user" "$db_pwd"
# Set permission after initialisation # Set permission after initialisation
ynh_script_progression --message="Protecting directory" ynh_script_progression --message="Protecting directory"
@ -71,6 +60,9 @@ ynh_script_progression --message="Adding system configurations related to $app..
# Create a dedicated NGINX config # Create a dedicated NGINX config
ynh_add_nginx_config ynh_add_nginx_config
# Config uwsgi
ynh_add_uwsgi_service "python_version"
ynh_use_logrotate --logfile="/var/log/pgadmin" ynh_use_logrotate --logfile="/var/log/pgadmin"
#================================================= #=================================================