diff --git a/src/warden-server/sh/update.sh b/src/warden-server/sh/update.sh index 73ea5625773c76110382825c80cd33990bfcc263..0081bab834e0f12c88b2824518b7c175ae9c71b8 100755 --- a/src/warden-server/sh/update.sh +++ b/src/warden-server/sh/update.sh @@ -149,7 +149,7 @@ modulesChck() backup() { echo -n "Making Warden server backup ... " - mkdir "$backup" + mkdir "$backup" 2> "$err" || err if cp -R "${basedir}/"* "$backup" 2> "$err"; then echo "OK" else @@ -167,6 +167,8 @@ updateWardenDir() [[ ! -d "$dir" ]] && mkdir -p "$dir" cp "$file" "${basedir}/$file" 2> "$err" || errClean done + rm -f "${basedir}/uninstall.sh" 2> /dev/null + ln -s "${sh}/uninstall.sh" "$basedir" echo "OK" } @@ -189,7 +191,7 @@ doTemplate() cleanOldFiles() { - echo -n "Cleaning old files ... " + echo -n "Removing old package files ... " rm -f "${etc}/warden-client.conf" 2> /dev/null rm -f "${doc}/warden20to21.patch" 2> /dev/null rm -f "${lib}/WardenConf.pm" 2> /dev/null @@ -246,12 +248,16 @@ hostname=$(hostname -f || echo "unspecified.server") dirname=${0%/*} doc="${basedir}/doc" etc="${basedir}/etc" +sh="${basedir}/sh" server_conf="${etc}/warden-server.conf" apache_conf="${etc}/warden-apache.conf" watchdog_conf="${etc}/warden-watchdog.conf" -server_conf_tmpl="${dirname}/etc/warden-server.conf.tmpl.update" -apache_conf_tmpl="${dirname}/etc/warden-apache.conf.tmpl.update" -watchdog_conf_tmpl="${dirname}/etc/warden-watchdog.conf.tmpl.update" +server_conf_tmpl="${dirname}/etc/warden-server.conf.tmpl" +server_conf_tmpl_update="${dirname}/etc/warden-server.conf.tmpl.update" +apache_conf_tmpl="${dirname}/etc/warden-apache.conf.tmpl" +apache_conf_tmpl_update="${dirname}/etc/warden-apache.conf.tmpl.update" +watchdog_conf_tmpl="${dirname}/etc/warden-watchdog.conf.tmpl" +watchdog_conf_tmpl_update="${dirname}/etc/warden-watchdog.conf.tmpl.update" package_version=$(<"${dirname}/etc/package_version") manifest="${dirname}/doc/MANIFEST" @@ -281,65 +287,109 @@ backup updateWardenDir || exit 1 # update server configuration file -echo -n "Updating Warden server configuration file ... " -syslog=$(getConfValue "$server_conf" SYSLOG) -syslog_verbose=$(getConfValue "$server_conf" SYSLOG_VERBOSE) -syslog_facility=$(getConfValue "$server_conf" SYSLOG_FACILITY) -db_name=$(getConfValue "$server_conf" DB_NAME) -db_user=$(getConfValue "$server_conf" DB_USER) -db_pass=$(getConfValue "$server_conf" DB_PASS) -db_host=$(getConfValue "$server_conf" DB_HOST) -max_events_limit=$(getConfValue "$server_conf" MAX_EVENTS_LIMIT) -valid_strings=$(perl -e "use updateCommon; updateCommon::getConfHash(\"$server_conf\");") -doTemplate \ - _BASEDIR_ "$basedir" \ - _SYSLOG_ "$syslog" \ - _SYSLOG_VERBOSE_ "$syslog_verbose" \ - _SYSLOG_FACILITY_ "$syslog_facility" \ - _DB_NAME_ "$db_name" \ - _DB_USER_ "$db_user" \ - _DB_PASS_ "$db_pass" \ - _DB_HOST_ "$db_host" \ - _MAX_EVENTS_LIMIT_ "$max_events_limit" \ - _VALID_STRINGS_ "$valid_strings" \ - < $server_conf_tmpl \ - > $server_conf && echo "OK" || errClean +echo -n "Checking Warden server configuration file ... " +if [[ -r "$server_conf" ]]; then + echo "OK" + echo -n " -> Updating Warden server configuration file ... " + syslog=$(getConfValue "$server_conf" SYSLOG) + syslog_verbose=$(getConfValue "$server_conf" SYSLOG_VERBOSE) + syslog_facility=$(getConfValue "$server_conf" SYSLOG_FACILITY) + db_name=$(getConfValue "$server_conf" DB_NAME) + db_user=$(getConfValue "$server_conf" DB_USER) + db_pass=$(getConfValue "$server_conf" DB_PASS) + db_host=$(getConfValue "$server_conf" DB_HOST) + max_events_limit=$(getConfValue "$server_conf" MAX_EVENTS_LIMIT) + valid_strings=$(perl -e "use updateCommon; updateCommon::getConfHash(\"$server_conf\");") + doTemplate \ + _BASEDIR_ "$basedir" \ + _SYSLOG_ "$syslog" \ + _SYSLOG_VERBOSE_ "$syslog_verbose" \ + _SYSLOG_FACILITY_ "$syslog_facility" \ + _DB_NAME_ "$db_name" \ + _DB_USER_ "$db_user" \ + _DB_PASS_ "$db_pass" \ + _DB_HOST_ "$db_host" \ + _MAX_EVENTS_LIMIT_ "$max_events_limit" \ + _VALID_STRINGS_ "$valid_strings" \ + < $server_conf_tmpl_update \ + > $server_conf && echo "OK" || errClean +else + echo "FAILED!" + echo -n " -> Creating Warden server configuration file ... " + doTemplate \ + _BASEDIR_ "$basedir" \ + < $server_conf_tmpl \ + > $server_conf && echo "OK" || errClean +fi + # update Apache configuration file -echo -n "Updating Apache configuration file ... " -cert_file_tmp=`fgrep SSLCertificateFile $apache_conf` -key_file_tmp=`fgrep SSLCertificateKeyFile $apache_conf` -ca_file_tmp=`fgrep SSLCACertificateFile $apache_conf` -lib_tmp=`fgrep PerlSwitches $apache_conf` -cert_file=${cert_file_tmp##*" "} -key_file=${key_file_tmp##*" "} -ca_file=${ca_file_tmp##*" "} -lib=${lib_tmp##*" "} -doTemplate \ - _CERT_FILE_ "$cert_file" \ - _KEY_FILE_ "$key_file" \ - _CA_FILE_ "$ca_file" \ - _LIB_ "$lib" \ - < $apache_conf_tmpl \ - > $apache_conf && echo "OK" || errClean +echo -n "Checking Apache configuration file ... " +if [[ -r "$apache_conf" ]]; then + echo "OK" + echo -n " -> Updating Apache configuration file ... " + cert_file_tmp=`fgrep SSLCertificateFile $apache_conf` + key_file_tmp=`fgrep SSLCertificateKeyFile $apache_conf` + ca_file_tmp=`fgrep SSLCACertificateFile $apache_conf` + lib_tmp=`fgrep PerlSwitches $apache_conf` + cert_file=${cert_file_tmp##*" "} + key_file=${key_file_tmp##*" "} + ca_file=${ca_file_tmp##*" "} + lib=${lib_tmp##*" "} + doTemplate \ + _CERT_FILE_ "$cert_file" \ + _KEY_FILE_ "$key_file" \ + _CA_FILE_ "$ca_file" \ + _LIB_ "$lib" \ + < $apache_conf_tmpl_update \ + > $apache_conf && echo "OK" || errClean +else + echo "FAILED!" + echo -n " -> Creating Apache configuration file ... " + cert_file="unspecified.cert" + key_file="unspecified.key" + ca_file="unspecified.ca_cert" + lib="unspecified.lib_path" + doTemplate \ + _CERT_FILE_ "$cert_file" \ + _KEY_FILE_ "$key_file" \ + _CA_FILE_ "$ca_file" \ + _LIB_ "$lib" \ + < $apache_conf_tmpl \ + > $apache_conf && echo "OK" || errClean +fi # update wardenWatchdog configuration file -echo -n "Updating Warden Watchdog configuration file ... " -domain_name=$(getConfValue "$watchdog_conf" DOMAIN_NAME) -email_subject=$(getConfValue "$warden_conf" EMAIL_SUBJECT) -email_server_conf=$(getConfValue "$warden_conf" EMAIL_SERVER_CONF) -sql_precondition=$(perl -e "use updateCommon; updateCommon::getConfArrayPre(\"$watchdog_conf\");") -sql_queries=$(perl -e "use updateCommon; updateCommon::getConfArrayQueries(\"$watchdog_conf\");") -sql_postcondition=$(perl -e "use updateCommon; updateCommon::getConfArrayPost(\"$watchdog_conf\");") -doTemplate \ - _DOMAIN_NAME_ "$domain_name" \ - _EMAIL_SUBJECT_ "$email_subject" \ - _EMAIL_SERVER_CONF_ "$email_server_conf" \ - _SQL_PRECONDITION_ "$sql_precondition" \ - _SQL_QUERIES_ "$sql_queries" \ - _SQL_POSTCONDITION_ "$sql_postcondition" \ - < $watchdog_conf_tmpl \ - > $watchdog_conf && echo "OK" || errClean +echo -n "Checking Warden Watchdog configuration file ... " +if [[ -r "$watchdog_conf" ]]; then + echo "OK" + echo -n " -> Updating Warden Watchdog configuration file ... " + domain_name=$(getConfValue "$watchdog_conf" DOMAIN_NAME) + email_subject=$(getConfValue "$warden_conf" EMAIL_SUBJECT) + email_server_conf=$(getConfValue "$warden_conf" EMAIL_SERVER_CONF) + sql_precondition=$(perl -e "use updateCommon; updateCommon::getConfArrayPre(\"$watchdog_conf\");") + sql_queries=$(perl -e "use updateCommon; updateCommon::getConfArrayQueries(\"$watchdog_conf\");") + sql_postcondition=$(perl -e "use updateCommon; updateCommon::getConfArrayPost(\"$watchdog_conf\");") + doTemplate \ + _DOMAIN_NAME_ "$domain_name" \ + _EMAIL_SUBJECT_ "$email_subject" \ + _EMAIL_SERVER_CONF_ "$email_server_conf" \ + _SQL_PRECONDITION_ "$sql_precondition" \ + _SQL_QUERIES_ "$sql_queries" \ + _SQL_POSTCONDITION_ "$sql_postcondition" \ + < $watchdog_conf_tmpl_update \ + > $watchdog_conf && echo "OK" || errClean +else + echo "FAILED!" + echo -n " -> Creating Warden Watchdog configuration file ... " + domain_name=$(hostname -f || echo "unspecified.server") + contact="unspecified.contact" + doTemplate \ + _DOMAIN_NAME_ "$domain_name" \ + _CONTACT_ "$contact" \ + < $watchdog_conf_tmpl \ + > $watchdog_conf && echo "OK" || errClean +fi # cleaning of files from old package - depend on package version cleanOldFiles @@ -351,7 +401,7 @@ createManifest [[ ! -z "$symbin" ]] && [[ -d "$symbin" ]] && [[ -w "$symbin" ]] && createSymlinks echo -echo "Please check updated configuration files:" +echo "Please check updated/created configuration files:" echo " - $server_conf" echo " - $server_conf" echo " - $watchdog_conf" @@ -364,6 +414,7 @@ echo "Please follow post-update steps in ${doc}/UPDATE!" echo # cleanup section -rm -f "$err" "$backup" +rm -f "$err" +rm -rf "$backup" exit 0