From e30a8b987be3cd56a625496b7eceacdfdae67e8a Mon Sep 17 00:00:00 2001
From: Anthony SUZANNE <a.suzanne@alkante.com>
Date: Fri, 7 Mar 2025 17:48:38 +0100
Subject: [PATCH] Upgrade Move prodige URL DB with command from Admin

---
 bin/move_prodige_url_db.sh | 115 ++++++++++++-------------------------
 1 file changed, 37 insertions(+), 78 deletions(-)

diff --git a/bin/move_prodige_url_db.sh b/bin/move_prodige_url_db.sh
index 53b3e8a..dcb1ec0 100755
--- a/bin/move_prodige_url_db.sh
+++ b/bin/move_prodige_url_db.sh
@@ -389,69 +389,39 @@ function validation {
 
 }
 
-function get_db_parameters {
-    logOkStep "Get parameters from configuration files"
-    PARAM_FILE="${DOCKERDIR}/data/conf/global.env.local"
-    user_bdd=$(eval echo $(awk -F'=' '/CATALOGUE_USER/ { print $2 }' ${PARAM_FILE}))
-    pass_bdd=$(eval echo $(awk -F'=' '/CATALOGUE_PASSWORD/ { print $2 }' ${PARAM_FILE}))
-    CATALOGUE_DB=$(eval echo $(awk -F'=' '/CATALOGUE_NAME/ { print $2 }' ${PARAM_FILE}))
-    PRODIGE_DB=$(eval echo $(awk -F'=' '/PRODIGE_NAME/ { print $2 }' ${PARAM_FILE}))
-    host_bdd=$(eval echo $(awk -F'=' '/PRODIGE_HOST/ { print $2 }' ${PARAM_FILE}))
-    echo "user_bdd=$user_bdd"
-    echo "CATALOGUE_DB=$CATALOGUE_DB"
-    echo "PRODIGE_DB=$PRODIGE_DB"
-    echo "host_bdd=$host_bdd"
-}
-
-function set_db {
-    logOkStep "(${CATALOGUE_DB}) Setting system/server/host in public.settings"
-    docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select value from public.settings where name='system/server/host'"
-    docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "update public.settings set value='${CATALOGUE}${DOMAIN}' where name='system/server/host';"
-    docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select value from public.settings where name='system/server/host'"
-
-    logOkStep "(${CATALOGUE_DB}) Setting metadata/resourceIdentifierPrefix in public.settings"
-    docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select value from public.settings where name='metadata/resourceIdentifierPrefix'"
-    docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "update public.settings set value='https://${CATALOGUE}${DOMAIN}/geonetwork/srv/' where name='metadata/resourceIdentifierPrefix';"
-    docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select value from public.settings where name='metadata/resourceIdentifierPrefix'"
-
-    logOkStep "(${PRODIGE_DB}) Setting account_hostpostgres, account_passwordpostgres, account_userpostgres, account_dbpostgres in carmen.account"
-    docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select account_hostpostgres, account_passwordpostgres, account_userpostgres, account_dbpostgres from carmen.account"
-    docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "update carmen.account set account_hostpostgres = '${host_bdd}', account_passwordpostgres = '${pass_bdd}',  account_userpostgres = '${user_bdd}' where account_dbpostgres = '${PRODIGE_DB}';"
-    docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select account_hostpostgres, account_passwordpostgres, account_userpostgres, account_dbpostgres from carmen.account"
-
-    TRAILINGDOMAIN=${DOMAIN:1:${#DOMAIN}}
-    logOkStep "(${PRODIGE_DB}) Setting dns_url in carmen.lex_dns"
-    docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select dns_url from carmen.lex_dns"
-    docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "update carmen.lex_dns set dns_url = '${TRAILINGDOMAIN}';"
-    docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select dns_url from carmen.lex_dns"
-}
-
-function change_db {
-    OLD=(${OLDADMINCARTO} ${OLDADMIN} ${OLDCARTO} ${OLDCAS} ${OLDCATALOGUE} ${OLDCONTRIBUTION} ${OLDDATACARTO} ${OLDDATAVIZ} ${OLDMAPSERV} ${OLDPRINT} ${OLDTABLE} ${OLDTELECHARGEMENT} ${OLDTRAITEMENT} ${OLDVUES})
-    NEW=(${ADMINCARTO} ${ADMIN} ${CARTO} ${CAS} ${CATALOGUE} ${CONTRIBUTION} ${DATACARTO} ${DATAVIZ} ${MAPSERV} ${PRINT} ${TABLE} ${TELECHARGEMENT} ${TRAITEMENT} ${VUES})
-    # Before
-    # docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select data from public.metadata"
-    logOkStep "(${PRODIGE_DB} before) layer_metadata_file from carmen.layer"
-    docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select layer_metadata_file from carmen.layer"
-    logOkStep "(${PRODIGE_DB} before) wxs_url from carmen.wxs"
-    docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select wxs_url from carmen.wxs"
-    for i in ${!OLD[@]}; do
-        logOkStep "(${CATALOGUE_DB}) Replacing ${OLD[i]}$OLDDOMAIN by ${NEW[i]}$DOMAIN in public.metadata"
-        # docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select data from public.metadata"
-        docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "update public.metadata set data = replace(data, '${OLD[i]}$OLDDOMAIN', '${NEW[i]}$DOMAIN');"
-
-        logOkStep "(${PRODIGE_DB}) Replacing ${OLD[i]}$OLDDOMAIN by ${NEW[i]}$DOMAIN in layer_metadata_file from carmen.layer"
-        docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "update carmen.layer set layer_metadata_file = replace(layer_metadata_file, '${OLD[i]}$OLDDOMAIN', '${NEW[i]}$DOMAIN');"
-
-        logOkStep "(${PRODIGE_DB}) Replacing ${OLD[i]}$OLDDOMAIN by ${NEW[i]}$DOMAIN in wxs_url from carmen.wxs"
-        docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "update carmen.wxs set wxs_url = replace(wxs_url, '${OLD[i]}$OLDDOMAIN', '${NEW[i]}$DOMAIN');"
-    done
-    # After
-    # docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select data from public.metadata"
-    logOkStep "(${PRODIGE_DB} after) layer_metadata_file from carmen.layer"
-    docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select layer_metadata_file from carmen.layer"
-    logOkStep "(${PRODIGE_DB} after) wxs_url from carmen.wxs"
-    docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select wxs_url from carmen.wxs"
+function run_command_admin {
+    docker exec -u www-data -w /var/www/html/site ppr_prodige_admin_web php bin/console admin:move_url_db \
+      --domain=$DOMAIN\
+      --admin=$ADMIN\
+      --admincarto=$ADMINCARTO\
+      --carto=$CARTO\
+      --cas=$CAS\
+      --catalogue=$CATALOGUE\
+      --contribution=$CONTRIBUTION\
+      --datacarto=$DATACARTO\
+      --dataviz=$DATAVIZ\
+      --mapserv=$MAPSERV\
+      --print=$PRINT\
+      --table=$TABLE\
+      --traitement=$TRAITEMENT\
+      --telechargement=$TELECHARGEMENT\
+      --vues=$VUES\
+      --olddomain=$OLDDOMAIN\
+      --oldadmin=$OLDADMIN\
+      --oldadmincarto=$OLDADMINCARTO\
+      --oldcarto=$OLDCARTO\
+      --oldcas=$OLDCAS\
+      --oldcatalogue=$OLDCATALOGUE\
+      --oldcontribution=$OLDCONTRIBUTION\
+      --olddatacarto=$OLDDATACARTO\
+      --olddataviz=$OLDDATAVIZ\
+      --oldmapserv=$OLDMAPSERV\
+      --oldprint=$OLDPRINT\
+      --oldtable=$OLDTABLE\
+      --oldtraitement=$OLDTRAITEMENT\
+      --oldtelechargement=$OLDTELECHARGEMENT\
+      --oldvues=$OLDVUES
+    ifCmdFailStep "ppr_prodige_admin container is not running. Please start appropriate docker-compose."
 }
 
 ########################################################################################################################################
@@ -606,8 +576,7 @@ if [[ $(id -u) -ne 0 ]] ; then
 fi
 
 # Step
-
-NB_STEP_AL=4
+NB_STEP_AL=3
 
 STEP_AL=1
 MODE="Validation"
@@ -615,19 +584,9 @@ logOkStep "Validation of variables"
 validation
 
 STEP_AL=2
-MODE="GetDatabaseParameters"
-logOkStep "Get database parameters"
-get_db_parameters
-
-STEP_AL=3
-MODE="SetDatabaseValues"
-logOkStep "Set database values"
-set_db
-
-STEP_AL=4
-MODE="ReplaceDatabaseValues"
-logOkStep "Replace database values"
-change_db
+MODE="RunCommand"
+logOkStep "Run command from Admin service"
+run_command_admin
 
 logOk "End of ${SCRIPTNAME}"
 # End
-- 
GitLab