mirror of
https://gitlab.com/wgp/dougal/software.git
synced 2025-12-06 12:17:08 +00:00
When importing an old project, the first QC run could take a while and cause a bit of backlog, but during normal shooting it is expected that it will finish quite quickly (and this is monitored anyway).
131 lines
2.7 KiB
Bash
Executable File
131 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
DOUGAL_ROOT=${DOUGAL_ROOT:-$(dirname "$0")/..}
|
|
|
|
BINDIR="$DOUGAL_ROOT/bin"
|
|
VARDIR=${VARDIR:-$DOUGAL_ROOT/var}
|
|
LOCKFILE=${LOCKFILE:-$VARDIR/runner.lock}
|
|
|
|
[ -f ~/.profile ] && . ~/.profile
|
|
|
|
function tstamp () {
|
|
date -u +%Y-%m-%dT%H:%M:%SZ
|
|
}
|
|
|
|
function prefix () {
|
|
printf "\033[30;1m$(tstamp)\t"
|
|
}
|
|
|
|
function print_log () {
|
|
printf "$(prefix)\033[36m%s\033[0m\n" "$*"
|
|
}
|
|
|
|
function print_info () {
|
|
printf "$(prefix)\033[0m%s\n" "$*"
|
|
}
|
|
|
|
function print_warning () {
|
|
printf "$(prefix)\033[33;1m%s\033[0m\n" "$*"
|
|
}
|
|
|
|
function print_error () {
|
|
printf "$(prefix)\033[31m%s\033[0m\n" "$*"
|
|
}
|
|
|
|
function run () {
|
|
PROGNAME=$(basename "$1")
|
|
STDOUTLOG="$VARDIR/$PROGNAME.out"
|
|
STDERRLOG="$VARDIR/$PROGNAME.err"
|
|
|
|
"$1" >"$STDOUTLOG" 2>"$STDERRLOG" || {
|
|
print_error "Failed: $PROGNAME"
|
|
cat $STDOUTLOG
|
|
cat $STDERRLOG
|
|
|
|
print_warning "Sending alert (if configured)"
|
|
TITLE="$PROGNAME failed"
|
|
# DESCRIPTION=""
|
|
SERVICE="deferred_imports"
|
|
|
|
$BINDIR/send_alert.py -t "$TITLE" -s "$SERVICE" -l "critical" \
|
|
-O "$(cat $STDOUTLOG)" -E "$(cat $STDERRLOG)"
|
|
|
|
exit 2
|
|
}
|
|
# cat $STDOUTLOG
|
|
|
|
rm $STDOUTLOG $STDERRLOG
|
|
}
|
|
|
|
if [[ -f $LOCKFILE ]]; then
|
|
PID=$(cat "$LOCKFILE")
|
|
if pgrep -F "$LOCKFILE"; then
|
|
print_warning $(printf "The previous process is still running (%d)" $PID)
|
|
exit 1
|
|
else
|
|
rm "$LOCKFILE"
|
|
print_warning $(printf "Previous process (%d) not found. Must have died unexpectedly" $PID)
|
|
fi
|
|
fi
|
|
|
|
echo "$$" > "$LOCKFILE" || {
|
|
print_error "Error creating lock file"
|
|
exit 255
|
|
}
|
|
print_info "Start run"
|
|
|
|
print_log "Purge deleted files"
|
|
run $BINDIR/purge_deleted_files.py
|
|
|
|
print_log "Import survey configurations"
|
|
run $BINDIR/import_survey_config.py
|
|
|
|
print_log "Import preplots"
|
|
run $BINDIR/import_preplots.py
|
|
|
|
print_log "Import raw P1/11"
|
|
run $BINDIR/import_raw_p111.py
|
|
|
|
print_log "Import raw P1/90"
|
|
run $BINDIR/import_raw_p190.py
|
|
|
|
print_log "Import final P1/11"
|
|
run $BINDIR/import_final_p111.py
|
|
|
|
print_log "Import final P1/90"
|
|
run $BINDIR/import_final_p190.py
|
|
|
|
print_log "Import SmartSource data"
|
|
run $BINDIR/import_smsrc.py
|
|
|
|
# if [[ -z "$RUNNER_NOEXPORT" ]]; then
|
|
# print_log "Export system data"
|
|
# run $BINDIR/system_exports.py
|
|
# fi
|
|
|
|
# if [[ -n "$RUNNER_IMPORT" ]]; then
|
|
# print_log "Import system data"
|
|
# run $BINDIR/system_imports.py
|
|
# fi
|
|
|
|
# print_log "Export QC data"
|
|
# run $BINDIR/human_exports_qc.py
|
|
|
|
# print_log "Export sequence data"
|
|
# run $BINDIR/human_exports_seis.py
|
|
|
|
print_log "Process ASAQC queue"
|
|
# Run insecure in test mode:
|
|
# export NODE_TLS_REJECT_UNAUTHORIZED=0
|
|
run $DOUGAL_ROOT/lib/www/server/queues/asaqc/index.js
|
|
|
|
print_log "Run database housekeeping actions"
|
|
run $BINDIR/housekeep_database.py
|
|
|
|
print_log "Run QCs"
|
|
run $DOUGAL_ROOT/lib/www/server/lib/qc/index.js
|
|
|
|
|
|
rm "$LOCKFILE"
|
|
print_info "End run"
|