IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 16, 2008, 1:27:58 PM (18 years ago)
Author:
eugene
Message:

extensive changes from eam_branch_20080719:

  • added the 'cleanup' options to camtool, faketool, warptool, difftool, stacktool
  • added corresponding sql code
  • changed the states for camera, fake, warp, diff, and stack to the new set of states: new, full, goto_cleaned, cleaned, update, goto_purged, and purged
  • added 'data_state' entries to the detrend tables and the detRunSummary
  • added 'cleanup' options to dettool using the detRunSummary data_state as the control
  • moved dettool supporting code to dettool_STAGE, where stage is processedimfile, processedexp, etc.
  • converted dettool to use S64 for det_id and exp_id entries
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/warptool.c

    r18976 r19092  
    4646static bool maskedMode(pxConfig *config);
    4747static bool unblockMode(pxConfig *config);
     48static bool pendingcleanuprunMode(pxConfig *config);
     49static bool pendingcleanupwarpMode(pxConfig *config);
     50static bool donecleanupMode(pxConfig *config);
    4851
    4952static bool parseAndInsertSkyCellMap(pxConfig *config, const char *mapfile);
     
    6972
    7073    switch (config->mode) {
    71         MODECASE(WARPTOOL_MODE_DEFINERUN,         definerunMode);
    72         MODECASE(WARPTOOL_MODE_UPDATERUN,         updaterunMode);
    73         MODECASE(WARPTOOL_MODE_EXP,               expMode);
    74         MODECASE(WARPTOOL_MODE_IMFILE,            imfileMode);
    75         MODECASE(WARPTOOL_MODE_TOOVERLAP,         tooverlapMode);
    76         MODECASE(WARPTOOL_MODE_ADDOVERLAP,        addoverlapMode);
    77         MODECASE(WARPTOOL_MODE_SCMAP,             scmapMode);
    78         MODECASE(WARPTOOL_MODE_TOWARPED,          towarpedMode);
    79         MODECASE(WARPTOOL_MODE_ADDWARPED,         addwarpedMode);
    80         MODECASE(WARPTOOL_MODE_WARPED,            warpedMode);
    81         MODECASE(WARPTOOL_MODE_REVERTWARPED,      revertwarpedMode);
    82         MODECASE(WARPTOOL_MODE_BLOCK,             blockMode);
    83         MODECASE(WARPTOOL_MODE_MASKED,            maskedMode);
    84         MODECASE(WARPTOOL_MODE_UNBLOCK,           unblockMode);
     74        MODECASE(WARPTOOL_MODE_DEFINERUN,          definerunMode);
     75        MODECASE(WARPTOOL_MODE_UPDATERUN,          updaterunMode);
     76        MODECASE(WARPTOOL_MODE_EXP,                expMode);
     77        MODECASE(WARPTOOL_MODE_IMFILE,             imfileMode);
     78        MODECASE(WARPTOOL_MODE_TOOVERLAP,          tooverlapMode);
     79        MODECASE(WARPTOOL_MODE_ADDOVERLAP,         addoverlapMode);
     80        MODECASE(WARPTOOL_MODE_SCMAP,              scmapMode);
     81        MODECASE(WARPTOOL_MODE_TOWARPED,           towarpedMode);
     82        MODECASE(WARPTOOL_MODE_ADDWARPED,          addwarpedMode);
     83        MODECASE(WARPTOOL_MODE_WARPED,             warpedMode);
     84        MODECASE(WARPTOOL_MODE_REVERTWARPED,       revertwarpedMode);
     85        MODECASE(WARPTOOL_MODE_BLOCK,              blockMode);
     86        MODECASE(WARPTOOL_MODE_MASKED,             maskedMode);
     87        MODECASE(WARPTOOL_MODE_UNBLOCK,            unblockMode);
     88        MODECASE(WARPTOOL_MODE_PENDINGCLEANUPRUN,  pendingcleanuprunMode);
     89        MODECASE(WARPTOOL_MODE_PENDINGCLEANUPSKYFILE, pendingcleanupwarpMode);
     90        MODECASE(WARPTOOL_MODE_DONECLEANUP,        donecleanupMode);
    8591
    8692        default:
     
    131137            fake_id,
    132138            mode,
    133             "run",      // state
     139            "new",      // state
    134140            workdir,
    135141            "dirty",    // workdir_state
     
    11221128}
    11231129
    1124 
    11251130static bool unblockMode(pxConfig *config)
    11261131{
     
    11391144}
    11401145
     1146static bool pendingcleanuprunMode(pxConfig *config)
     1147{
     1148    PS_ASSERT_PTR_NON_NULL(config, NULL);
     1149
     1150    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1151    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1152
     1153    psMetadata *where = psMetadataAlloc();
     1154    PXOPT_COPY_STR(config->args, where, "-label", "label", "==");
     1155
     1156    psString query = pxDataGet("warptool_pendingcleanuprun.sql");
     1157    if (!query) {
     1158        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1159        return false;
     1160    }
     1161
     1162    if (where && psListLength(where->list)) {
     1163        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1164        psStringAppend(&query, " AND %s", whereClause);
     1165        psFree(whereClause);
     1166    }
     1167    psFree(where);
     1168
     1169    // treat limit == 0 as "no limit"
     1170    if (limit) {
     1171        psString limitString = psDBGenerateLimitSQL(limit);
     1172        psStringAppend(&query, " %s", limitString);
     1173        psFree(limitString);
     1174    }
     1175
     1176    if (!p_psDBRunQuery(config->dbh, query)) {
     1177        psError(PS_ERR_UNKNOWN, false, "database error");
     1178        psFree(query);
     1179        return false;
     1180    }
     1181    psFree(query);
     1182
     1183    psArray *output = p_psDBFetchResult(config->dbh);
     1184    if (!output) {
     1185        psError(PS_ERR_UNKNOWN, false, "database error");
     1186        return false;
     1187    }
     1188    if (!psArrayLength(output)) {
     1189        psTrace("warptool", PS_LOG_INFO, "no rows found");
     1190        psFree(output);
     1191        return true;
     1192    }
     1193
     1194    // negative simple so the default is true
     1195    if (!ippdbPrintMetadatas(stdout, output, "warpPendingCleanupRun", !simple)) {
     1196        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1197        psFree(output);
     1198        return false;
     1199    }
     1200
     1201    psFree(output);
     1202
     1203    return true;
     1204}
     1205
     1206
     1207static bool pendingcleanupwarpMode(pxConfig *config)
     1208{
     1209    PS_ASSERT_PTR_NON_NULL(config, NULL);
     1210
     1211    PXOPT_LOOKUP_S64(warp_id, config->args, "-warp_id", false, false);
     1212    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1213    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1214
     1215    psMetadata *where = psMetadataAlloc();
     1216    if (warp_id) {
     1217        PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "==");
     1218    }
     1219    PXOPT_COPY_STR(config->args, where, "-label", "label", "==");
     1220
     1221    psString query = pxDataGet("warptool_pendingcleanupskyfile.sql");
     1222    if (!query) {
     1223        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1224        return false;
     1225    }
     1226
     1227    if (where && psListLength(where->list)) {
     1228        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1229        psStringAppend(&query, " AND %s", whereClause);
     1230        psFree(whereClause);
     1231    }
     1232    psFree(where);
     1233
     1234    // treat limit == 0 as "no limit"
     1235    if (limit) {
     1236        psString limitString = psDBGenerateLimitSQL(limit);
     1237        psStringAppend(&query, " %s", limitString);
     1238        psFree(limitString);
     1239    }
     1240
     1241    if (!p_psDBRunQuery(config->dbh, query)) {
     1242        psError(PS_ERR_UNKNOWN, false, "database error");
     1243        psFree(query);
     1244        return false;
     1245    }
     1246    psFree(query);
     1247
     1248    psArray *output = p_psDBFetchResult(config->dbh);
     1249    if (!output) {
     1250        psError(PS_ERR_UNKNOWN, false, "database error");
     1251        return false;
     1252    }
     1253    if (!psArrayLength(output)) {
     1254        psTrace("warptool", PS_LOG_INFO, "no rows found");
     1255        psFree(output);
     1256        return true;
     1257    }
     1258
     1259    // negative simple so the default is true
     1260    if (!ippdbPrintMetadatas(stdout, output, "warpPendingCleanupWarp", !simple)) {
     1261        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1262        psFree(output);
     1263        return false;
     1264    }
     1265
     1266    psFree(output);
     1267
     1268    return true;
     1269}
     1270
     1271
     1272static bool donecleanupMode(pxConfig *config)
     1273{
     1274    PS_ASSERT_PTR_NON_NULL(config, NULL);
     1275
     1276    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1277    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1278
     1279    psMetadata *where = psMetadataAlloc();
     1280    PXOPT_COPY_STR(config->args, where, "-label", "label", "==");
     1281
     1282    psString query = pxDataGet("warptool_donecleanup.sql");
     1283    if (!query) {
     1284        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1285        return false;
     1286    }
     1287
     1288    if (where && psListLength(where->list)) {
     1289        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1290        psStringAppend(&query, " AND %s", whereClause);
     1291        psFree(whereClause);
     1292    }
     1293    psFree(where);
     1294
     1295    // treat limit == 0 as "no limit"
     1296    if (limit) {
     1297        psString limitString = psDBGenerateLimitSQL(limit);
     1298        psStringAppend(&query, " %s", limitString);
     1299        psFree(limitString);
     1300    }
     1301
     1302    if (!p_psDBRunQuery(config->dbh, query)) {
     1303        psError(PS_ERR_UNKNOWN, false, "database error");
     1304        psFree(query);
     1305        return false;
     1306    }
     1307    psFree(query);
     1308
     1309    psArray *output = p_psDBFetchResult(config->dbh);
     1310    if (!output) {
     1311        psError(PS_ERR_UNKNOWN, false, "database error");
     1312        return false;
     1313    }
     1314    if (!psArrayLength(output)) {
     1315        psTrace("warptool", PS_LOG_INFO, "no rows found");
     1316        psFree(output);
     1317        return true;
     1318    }
     1319
     1320    // negative simple so the default is true
     1321    if (!ippdbPrintMetadatas(stdout, output, "warpDoneCleanup", !simple)) {
     1322        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1323        psFree(output);
     1324        return false;
     1325    }
     1326
     1327    psFree(output);
     1328
     1329    return true;
     1330}
    11411331
    11421332static bool isValidMode(pxConfig *config, const char *mode)
Note: See TracChangeset for help on using the changeset viewer.