Index: scripts/globals.sh =================================================================== diff -u -rff5794ee387f1e37a01cea349c0085dae5281d5d -rfaf41ef2ba015523623205a84ceb12473f57f022 --- scripts/globals.sh (.../globals.sh) (revision ff5794ee387f1e37a01cea349c0085dae5281d5d) +++ scripts/globals.sh (.../globals.sh) (revision faf41ef2ba015523623205a84ceb12473f57f022) @@ -42,6 +42,12 @@ LOG_OUT_FILE="" LOG_ERR_FILE="" +LOG_BASE=$SDCARD_MNT +LOG_LOC_LOG=log +LOG_LOC_ERR=service +EXT_GZIP=gz +EXT_PEND=u + ERR_MISSING_FOLDER=101 ERR_MISSING_FILE=102 ERR_CONNECTION=103 @@ -53,6 +59,7 @@ ERR_SCP_FAIL=110 ERR_INVALID_IP=111 ERR_SD_CARD=112 +ERR_LOGBACKUP_PATH=113 SRC_FILE_SSHKEY="$HOME/.ssh/id_rsa" SRC_FILE_SSHKEY_PUB=$SRC_FILE_SSHKEY.pub @@ -84,7 +91,6 @@ POSTMSG_BLUETOOTH="Bluetooth" POSTMSG_SHASUM="App shasum" POSTMSG_CLOUDSYNC="CloudSync" -POSTMSG_CLOUDSYNC_RUNNING="CloudSync app IS running" POSTMSG_SETTINGSCRC="SettingsCRC" TDCTL_NTP_USED=$FALSE @@ -109,9 +115,14 @@ SETUP_ENABLE_MANUFACTURING_MODE="ManufacturingMode" SETUP_ENABLE_UpdatingING_MODE="UpdatingMode" -APPLICATION_PARAMS="&" +# Log cli options +# x: enable long name (IMPORTANT: removed for the impact on Test Protocols, and timeline) +# y: enable upload +# z: enable compression +APPLICATION_PARAMS_DEFAULT="-yz" +APPLICATION_PARAMS="" -CloudSync_DRT_SERVER_IP=172.31.99.117 +CloudSync_DRT_SERVER_IP="" CloudSync_DRT_SERVER_PORT=80 CLOUD_USER=cloud @@ -124,6 +135,9 @@ SETTING_CONF_FOLDER_PATH=/var/configurations SETTINGS_CRC_FILE_PATH=$DENALI_HOME/settings.crc +CLOUDSYNC_CONFIG_SRC=$CLOUD_HOME/cloudsync/cloudsync/config/config.json +CLOUDSYNC_CONFIG_DST=$SETTING_CONF_FOLDER_PATH/CloudSync/config/config.json + DEMO_MODE=0 P_CANBUS=can0 V_CANBUS=can1 @@ -509,14 +523,20 @@ # removing the previous treatment logs so the new buff starts with fresh sequence echo "Removing CloudSync I/O buff" local CLOUDSYNC_LOGS="$SDCARD_MNT/$CLOUDSYNC_FOLDER/" + local CLOUDSYNC_CONF="$CLOUDSYNC_PATH/cloudsync/config/" + local CLOUDSYNC_MODE="" + if [[ "$APPLICATION_PARAMS" == *"-E"* ]]; then + CLOUDSYNC_MODE="upgrade" + else + CLOUDSYNC_MODE="update" + fi rm $(find $CLOUDSYNC_LOGS -name "*[_inp,_out].buf" ) 1>> $POSTOUT 2>> $POSTERR - + rm $(find $CLOUDSYNC_CONF -name "config_*.json" ) 1>> $POSTOUT 2>> $POSTERR echo "Executing the CloudSync" cd $CLOUDSYNC_PATH - ./cs.py start debug & - sleep 2 - CLOUDSYNC_STATUS="$(./cs.py status)" - if [ "$CLOUDSYNC_STATUS" == "$POSTMSG_CLOUDSYNC_RUNNING" ]; then + ./cs.py start debug $CLOUDSYNC_MODE & + CLOUDSYNC_STATUS="$(ps ax | grep -e cs.py -e cloud_sync.py | grep -v grep)" + if [ -n "$CLOUDSYNC_STATUS" ]; then post_log_pass "$POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_PASSED" else post_log_fail "$POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_FAILED" @@ -553,9 +573,9 @@ echo "" } -function startCloudSync_local() { - # ----------------------------------------- CloudSync - post_log_dash " CloudSync " +function cleanCloudSyncBufs() { + # ----------------------------------------- CloudSync buffs cleanup + post_log_dash " CloudSync buffs cleanup" local CLOUDSYNC_PATH=$CLOUD_HOME/$CLOUDSYNC_FOLDER local DATE_UTC=$(date -u +%Y_%m_%d) if [ -d $CLOUDSYNC_PATH ]; then @@ -569,12 +589,28 @@ sudo -u $CLOUD_USER touch "$CLOUDSYNC_LOGS/$DATE_UTC"_out.buf sudo -u $DENALI_USER touch "$CLOUDSYNC_LOGS/$DATE_UTC"_inp.buf + fi +} + +function startCloudSync_local() { + # ----------------------------------------- CloudSync + post_log_dash " CloudSync " + local CLOUDSYNC_PATH=$CLOUD_HOME/$CLOUDSYNC_FOLDER + local DATE_UTC=$(date -u +%Y_%m_%d) + if [ -d $CLOUDSYNC_PATH ]; then + post_log "Verify the CloudSync config" + if [ "$( diff $CLOUDSYNC_CONFIG_SRC $CLOUDSYNC_CONFIG_DST )" != "" ]; then + post_log "CloudSync configuration updated" + sudo -u $CLOUD_USER cp $CLOUDSYNC_CONFIG_SRC $CLOUDSYNC_CONFIG_DST 1>> $POSTOUT 2>> $POSTERR + else + post_log "CloudSync configuration verified" + fi + echo "Executing the CloudSync" cd $CLOUDSYNC_PATH sudo -u $CLOUD_USER ./cs.py start - sleep 2 - CLOUDSYNC_STATUS="$(sudo -u $CLOUD_USER ./cs.py status)" - if [ "$CLOUDSYNC_STATUS" == "$POSTMSG_CLOUDSYNC_RUNNING" ]; then + CLOUDSYNC_STATUS="$(ps ax | grep -e cs.py -e cloud_sync.py | grep -v grep)" + if [ -n "$CLOUDSYNC_STATUS" ]; then post_log_pass "$POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_PASSED" else post_log_fail "$POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_FAILED" @@ -596,7 +632,7 @@ if [ $(isDemoMode) -eq $TRUE ]; then APPLICATION_PARAMS="$APPLICATION_PARAMS"" -q -D -A $D_CANBUS" fi - sudo -u $DENALI_USER $DENALI_HOME/$DENALI_BIN $APPLICATION_PARAMS 1>> /tmp/denali.out 2>> /tmp/denali.out & + sudo -u $DENALI_USER $DENALI_HOME/$DENALI_BIN $APPLICATION_PARAMS_DEFAULT $APPLICATION_PARAMS -C 1>> /tmp/denali.out 2>> /tmp/denali.out & else post_log_fail "Unknown Applicaion Version for $DENALI_HOME/$DENALI_BIN" fi @@ -614,6 +650,44 @@ fi } +function log_backup() { + if [[ "$1" == "" ]]; then + post_log "Log Backup failed: Missing log location" + return $ERR_LOGBACKUP_PATH; + fi + local LOG_PATH="$LOG_BASE"/"$1" + cd "$LOG_PATH" + for logname in $(find -type f ! -name "*.$EXT_PEND.*"); do + name=$(basename $logname) + base="${name%%.*}" + ext="${name##*.}" + exts="${name#*.}" + #DEBUG echo name: $base + #DEBUG echo ext : $ext + #DEBUG echo exts: $exts + if [[ "$ext" == "$EXT_GZIP" ]]; then + mv "$name" "$base.u.$exts" + else + echo gzip "$name" + echo mv "$name.$EXT_GZIP" "$base.$EXT_PEND.$exts.$EXT_GZIP" + fi + echo + done +} + +function log_backup_logApp() { + log_backup $LOG_LOC_LOG +} + +function log_backup_logErr() { + log_backup $LOG_LOC_ERR +} + +function backupApplicationLogs() { + log_backup_logApp + log_backup_logErr +} + function timerStart() { time_start=$(date +%s) } @@ -631,6 +705,7 @@ setupConsoleout disableRootSSH cleanupPOSTLogs + backupApplicationLogs checkDemoMode queryOSVersion setupCANBus $1