Ignore:
Timestamp:
09/01/21 07:56:42 (3 years ago)
Author:
maslowski
Message:
Added better error handeling and tracking in the databas.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Mars/hawc/processing/DiskToDB/run-root2sql2.sh

    r20093 r20103  
    8989fi
    9090
     91function UpdateStatus()
     92{
     93        local tel="${1}"
     94        local night="${2}"
     95        local runid="${3}"
     96        local suf="${4}"
     97        local stat="${5}"
     98
     99        if [ $suf = I ]
     100        then
     101                local col=star
     102        elif [ $suf = Y ]
     103        then
     104                local col=callisto
     105        fi
     106
     107        mysql --defaults-file=${CRED} \
     108                --compress \
     109                -e "UPDATE DataOnDisk \
     110                SET DataOnDisk.${col} = ${stat} \
     111                WHERE DataOnDisk.Telescope = ${tel} \
     112                AND DataOnDisk.NIGHT = ${night} \
     113                AND DataOnDisk.RUNID = ${runid};"
     114}
     115
     116function PropagateStatus()
     117{
     118        local tel="${1}"
     119        local night="${2}"
     120        local suf="${3}"
     121
     122        if [ $suf = I ]
     123        then
     124                local col=star
     125        elif [ $suf = Y ]
     126        then
     127                local col=callisto
     128        fi
     129
     130        mysql --defaults-file=${CRED} \
     131                --compress \
     132                -e "UPDATE DataOnDisk \
     133                SET DataOnDisk.${col} = 6 \
     134                WHERE DataOnDisk.Telescope = ${tel} \
     135                AND DataOnDisk.NIGHT = ${night} \
     136                AND DataOnDisk.calibration != 0;"
     137
     138        mysql --defaults-file=${CRED} \
     139                --compress \
     140                -e "UPDATE DataOnDisk \
     141                SET DataOnDisk.${col} = 3 \
     142                WHERE DataOnDisk.Telescope = ${tel} \
     143                AND DataOnDisk.NIGHT = ${night} \
     144                AND DataOnDisk.calibration = 0 \
     145                AND DataOnDisk.${col} IS NULL;"
     146}
     147
    91148# Get all runs that can (and should) be calibrated
    92149# Pipe the output to mysql and read the
     
    95152"\
    96153SELECT
    97         NIGHT, RUNID
     154        Calibration.NIGHT,
     155        Calibration.RUNID
    98156FROM
    99157        Calibration
     158INNER JOIN
     159        DataOnDisk
     160ON
     161        DataOnDisk.Telescope = Calibration.Telescope
     162AND
     163        DataOnDisk.NIGHT = Calibration.NIGHT
     164AND
     165        DataOnDisk.RUNID = Calibration.RUNID
    100166WHERE
    101         Telescope = ${TEL}
     167        Calibration.Telescope = ${TEL}
     168AND     
     169        Calibration.NIGHT = ${NIGHT}
    102170AND
    103         NIGHT = ${NIGHT}
     171        DataOnDisk.calibration = 0
    104172ORDER BY
    105         NIGHT, RUNID\
    106 
     173        Calibration.NIGHT, Calibration.RUNID;\
    107174"\
    108175 |  mysql \
     
    139206
    140207                echo RC=${PIPESTATUS[0]} >> "${DIR}"/${PREFIX}-root2sql.log
     208
     209                UpdateStatus ${TEL} ${NIGHT} ${RUNID} ${SUFFIX} 0
     210
    141211        else
    142212                echo Skipped.
     213                UpdateStatus ${TEL} ${NIGHT} ${RUNID} ${SUFFIX} 2
    143214        fi
    144215
    145216done
     217
     218PropagateStatus ${TEL} ${NIGHT} ${SUFFIX}
Note: See TracChangeset for help on using the changeset viewer.