#!/bin/bash -e

#
# serviceRestore.sh
#
# Effettua il restore di un servizio, in particolare del container 
# che lo eroga e dell'eventuale area dati da questo gestita.
#

#
# Parametri
#
# caller:		nome dello script chiamante
# serviceName:  nome del servizio
# container:    identificativo del container che eroga il
#               servizio
# pathOfData:   path dell'area dati gestita dal servizio, se presente,
#               "NULL" altrimenti
# dataBackupAbsolutePath:
#               path assoluto del file di backup dell'area dati, se
#               presente
# containerBackupAbsolutePath:
#               path assoluto del file per il backup del container
# logFilePath:
#               path del file di log per il backup
#

#########################################################################
#
# Predispone l'ambiente di esecuzione
#

#
# Attenzione!!!!
#    la variabile pmxBackupRestorePath e' valorizzata all'interno
#    del file /etc/profile
#

# Importa la definizione delle costanti simboliche
source $pmxBackupRestorePath/scripts/symbolicConstantsSetup.sh

# Importa la definizione delle utilities
source $UTILITIES

# Importa la definizione dei messaggi di log
source $LOG_MESSAGES
#
########################################################################

# Controlla che il numero dei parametri sia corretto
checkParams $# 7 "$(dateTime) $msgIncorrectParameterNumber \
                                            <caller> \
                                            <serviceName> \
                                            <container> \
                                            <pathOfData> \
                                            <dataBackupAbsolutePath> \
                                            <containerBackupAbsolutePath> \
                                            <logFilePath>"
                                        
# Inizializza le variabili mnemoniche per i parametri
caller=$1
serviceName=$2
container=$3
pathOfData=$4            
dataBackupAbsolutePath=$5
containerBackupAbsolutePath=$6
logFilePath=$7
          
# Traccia l'ingresso nello script
appendToLog "$(dateTime) $msgIntoTheScript" \
            "$logFilePath"

# Traccia il chiamante lo script
appendToLog "$(dateTime) $msgScriptCaller $caller" \
            "$logFilePath"

# Traccia il container e il nome del servizio erogato
appendToLog "$(dateTime) $msgContainerId $container - $serviceName" \
            "$logFilePath"                 

# Assegna alla variabile caller il proprio nome
caller=$(basename $0)

# Effettua il restore dell'area dati gestita dal servizio, 
# quando presente
if test "$pathOfData" != "NULL"
  then
  # Effettua il restore dell'area dati gestita dal servizio
  $PATH_OF_SCRIPTS/dataRestore.sh \
                          "$caller" \
                          "$pathOfData" \
                          "$dataBackupAbsolutePath" \
                          "$logFilePath"
fi

# Effettua il restore del container
$PATH_OF_SCRIPTS/containerRestore.sh \
                             "$caller" \
                             "$container" \
                             "$containerBackupAbsolutePath" \
                             "$logFilePath"
                             
# Traccia l'uscita dallo script
appendToLog "$(dateTime) $msgOutOfTheScript" \
            "$logFilePath" 

exit


                                 
