IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 27956


Ignore:
Timestamp:
May 13, 2010, 6:44:53 PM (16 years ago)
Author:
heather
Message:

changes for May 13th (finishing up ippTOols)

Location:
branches/haf_branches/ipp.20100512/ippTools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/haf_branches/ipp.20100512/ippTools/share/Makefile.am

    r27936 r27956  
    99     addtool_find_pendingmergeprocess.sql \
    1010     addtool_find_processedexp.sql \
     11     addtool_find_minidvodbprocessed.sql \
    1112     addtool_find_minidvodbrun.sql \
    1213     addtool_find_minidvodbrun2.sql \
     
    1516     addtool_queue_cam_id.sql \
    1617     addtool_queue_minidvodbrun.sql \
     18     addtool_reset_faulted_minidvodbruns.sql \
    1719     addtool_reset_faulted_runs.sql \
     20     addtool_revertminidvodbprocessed.sql \
    1821     addtool_revertprocessedexp.sql \
    1922     camtool_donecleanup.sql \
  • branches/haf_branches/ipp.20100512/ippTools/src/addtool.c

    r27936 r27956  
    10971097   
    10981098static bool listminidvodbprocessedMode(pxConfig *config) {
     1099  psMetadata *where = psMetadataAlloc();
     1100  PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodbProcessed.minidvodb_name", "==");
     1101  PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "addRun.minidvodb_group", "==");
     1102  PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1103  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1104  PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false);
     1105  if (!psListLength(where->list)) {
     1106        psFree(where);
     1107        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     1108        return false;
     1109    } 
     1110
     1111  psString query = pxDataGet("addtool_find_minidvodbprocessed.sql");
     1112    if (!query) {
     1113        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1114        return false;
     1115    }
     1116
     1117if (psListLength(where->list)) {
     1118        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1119        psStringAppend(&query, " WHERE %s", whereClause);
     1120        psFree(whereClause);
     1121    }
     1122
     1123// we either add AND (condition) or WHERE (condition):
     1124    if (where->list && faulted) {
     1125        // list only faulted rows
     1126        psStringAppend(&query, " %s", " AND minidvodbProcessed.fault != 0");
     1127    }
     1128    if (where->list && !faulted) {
     1129        // don't list faulted rows
     1130        psStringAppend(&query, " %s", " AND minidvodbProcessed.fault = 0");
     1131    }
     1132    if (!where->list && faulted) {
     1133        // list only faulted rows
     1134        psStringAppend(&query, " %s", " WHERE minidvodbProcessed.fault != 0");
     1135    }
     1136    if (!where->list && !faulted) {
     1137        // don't list faulted rows
     1138        psStringAppend(&query, " %s", " WHERE minidvodbProcessed.fault = 0");
     1139    }
     1140    psFree(where);
     1141   
     1142    //grou by minidvodb_name to not show all the addRuns
     1143    psStringAppend(&query, " GROUP BY minidvodb_name");
     1144
     1145    // order by epoch
     1146    psStringAppend(&query, " ORDER BY epoch");
     1147
     1148    // treat limit == 0 as "no limit"
     1149    if (limit) {
     1150        psString limitString = psDBGenerateLimitSQL(limit);
     1151        psStringAppend(&query, " %s", limitString);
     1152        psFree(limitString);
     1153    }
     1154
     1155    if (!p_psDBRunQuery(config->dbh, query)) {
     1156      psError(PS_ERR_UNKNOWN, false, "database error %s ", query);
     1157        psFree(query);
     1158        return false;
     1159    }
     1160    psFree(query);
     1161
     1162    psArray *output = p_psDBFetchResult(config->dbh);
     1163    if (!output) {
     1164        psError(PS_ERR_UNKNOWN, false, "database error");
     1165        return false;
     1166    }
     1167    if (!psArrayLength(output)) {
     1168        psTrace("addtool", PS_LOG_INFO, "no rows found");
     1169        psFree(output);
     1170        return true;
     1171    }
     1172
     1173    // negate simple so the default is true
     1174    if (!ippdbPrintMetadatas(stdout, output, "minidvodbProcessed", !simple)) {
     1175        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1176        psFree(output);
     1177        return false;
     1178    }
     1179
     1180    psFree(output);
     1181
    10991182return true;
    11001183}
    11011184
    11021185static bool revertminidvodbprocessedMode(pxConfig *config) {
     1186  psMetadata *where = psMetadataAlloc();
     1187 PS_ASSERT_PTR_NON_NULL(config, false);
     1188 PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodbProcessed.minidvodb_name", "==");
     1189 PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "addRun.minidvodb_group", "==");
     1190 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
     1191        psFree(where);
     1192        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     1193        return false;
     1194    }
     1195
     1196    if (!psDBTransaction(config->dbh)) {
     1197        psError(PS_ERR_UNKNOWN, false, "database error");
     1198        psFree(where);
     1199        return false;
     1200    }
     1201
     1202{
     1203        psString query = pxDataGet("addtool_reset_faulted_minidvodbruns.sql");
     1204        if (!query) {
     1205            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1206            psFree(where);
     1207            return false;
     1208        }
     1209
     1210        // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE
     1211   
     1212    if (where && psListLength(where->list)) {
     1213            psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1214            psStringAppend(&query, " AND %s", whereClause);
     1215            psFree(whereClause);
     1216    }
     1217
     1218        if (!p_psDBRunQuery(config->dbh, query)) {
     1219            // rollback
     1220          if (!psDBRollback(config->dbh)) {
     1221                psError(PS_ERR_UNKNOWN, false, "database error");
     1222            }
     1223            psError(PS_ERR_UNKNOWN, false, "database error");
     1224            psFree(query);
     1225            psFree(where);
     1226            return false;
     1227        }
     1228        psFree(query);
     1229    }
     1230{
     1231        psString query = pxDataGet("addtool_revertminidvodbprocessed.sql");
     1232        if (!query) {
     1233            // rollback
     1234            if (!psDBRollback(config->dbh)) {
     1235                psError(PS_ERR_UNKNOWN, false, "database error");
     1236            }
     1237            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1238            psFree(where);
     1239            return false;
     1240        }
     1241
     1242        // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE
     1243        if (where && psListLength(where->list)) {
     1244            psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1245            psStringAppend(&query, " AND %s", whereClause);
     1246            psFree(whereClause);
     1247        }
     1248
     1249        if (!p_psDBRunQuery(config->dbh, query)) {
     1250            // rollback
     1251            if (!psDBRollback(config->dbh)) {
     1252                psError(PS_ERR_UNKNOWN, false, "database error");
     1253            }
     1254            psError(PS_ERR_UNKNOWN, false, "database error");
     1255            psFree(query);
     1256            psFree(where);
     1257            return false;
     1258        }
     1259        psFree(query);
     1260    }
     1261    psFree(where);
     1262
     1263    if (!psDBCommit(config->dbh)) {
     1264        psError(PS_ERR_UNKNOWN, false, "database error");
     1265        return false;
     1266    }
     1267
     1268
     1269
    11031270return true;
    11041271}
    11051272
    11061273static bool updateminidvodbprocessedMode(pxConfig *config) {
     1274  PS_ASSERT_PTR_NON_NULL(config, false);
     1275
     1276    psMetadata *where = psMetadataAlloc();
     1277    PXOPT_COPY_STR(config->args, where, "-minidvodb_name",     "minidvodb_name", "==");
     1278    PXOPT_LOOKUP_STR(minidvodb_name,  config->args, "-minidvodb_name", true, false);
     1279
     1280    PXOPT_LOOKUP_U64(merge_order,  config->args, "-set_merge_order", false, false);
     1281    PXOPT_LOOKUP_S16(fault,  config->args, "-set_fault", false, false);
     1282    PXOPT_LOOKUP_F32(dtime_relphot,  config->args, "-set_dtime_relphot", false, false);
     1283    PXOPT_LOOKUP_F32(dtime_resort,  config->args, "-set_dtime_resort", false, false);
     1284    PXOPT_LOOKUP_F32(dtime_merge,  config->args, "-set_dtime_merge", false, false);
     1285
     1286
     1287
     1288    if (!psListLength(where->list)) {
     1289        psFree(where);
     1290        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     1291        return false;
     1292    }
     1293
     1294    psString query = psStringCopy("UPDATE minidvodbProcessed SET ");
     1295    int cnt = 0;
     1296    psString comma = ",";
     1297    if (fault) {
     1298  psStringAppend(&query, " fault = %d", fault);
     1299  cnt++;
     1300 }
     1301
     1302if (merge_order) {
     1303  if (cnt) {
     1304    psStringAppend(&query,comma);
     1305  }
     1306
     1307  psStringAppend(&query, " merge_order = %" PRId64, merge_order);
     1308 cnt++;
     1309}
     1310
     1311if (dtime_relphot) {
     1312if (cnt) {
     1313    psStringAppend(&query,comma);
     1314  }
     1315  psStringAppend(&query, " dtime_relphot = %f", dtime_relphot);
     1316 cnt++;
     1317 }
     1318
     1319if (dtime_resort) {
     1320if (cnt) {
     1321    psStringAppend(&query,comma);
     1322  }
     1323  psStringAppend(&query, " dtime_resort = %f", dtime_resort);
     1324cnt++;
     1325 }
     1326
     1327if (dtime_merge) {
     1328if (cnt) {
     1329    psStringAppend(&query,comma);
     1330  }
     1331  psStringAppend(&query, " dtime_merge = %f", dtime_merge);
     1332cnt++;
     1333 }
     1334   
     1335    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1336    psStringAppend(&query, " WHERE %s", whereClause);
     1337
     1338 if (!p_psDBRunQuery(config->dbh, query)) {
     1339   psError(PS_ERR_UNKNOWN, false, "database error %s", query);
     1340        psFree(query);
     1341        return false;
     1342    }
     1343
     1344
     1345
     1346    psFree(query);
     1347    psFree(where);
     1348
     1349
     1350
     1351
    11071352return true;
    11081353}
  • branches/haf_branches/ipp.20100512/ippTools/src/addtoolConfig.c

    r27936 r27956  
    168168    psMetadataAddBool(listminidvodbrunArgs, PS_LIST_TAIL, "-finished_addrun",        0, "limit to minidvodbs with completed addRuns (none in new state)", false);
    169169
    170 
    171170    psMetadata *addminidvodbprocessedArgs = psMetadataAlloc();
    172171    psMetadataAddStr(addminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_name", 0,    "define minidvodb_name (required)", NULL);
     
    179178    psMetadataAddS16(addminidvodbprocessedArgs, PS_LIST_TAIL, "-fault",          0,    "set fault code", 0);
    180179
    181 
    182 
    183180    psMetadata *listminidvodbprocessedArgs = psMetadataAlloc();
     181    psMetadataAddStr(listminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_name",        0, "search by minidvodb_name", NULL);
     182    psMetadataAddStr(listminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_group",        0, "search by addRun.minidvodb_group", NULL);
     183    psMetadataAddU64(listminidvodbprocessedArgs, PS_LIST_TAIL, "-limit",        0, "limit to N items", 0);
     184    psMetadataAddBool(listminidvodbprocessedArgs, PS_LIST_TAIL, "-simple",        0, "simple output", false);
     185    psMetadataAddBool(listminidvodbprocessedArgs, PS_LIST_TAIL, "-faulted",        0, "limit to faulted state", false);
     186
    184187    psMetadata *revertminidvodbprocessedArgs = psMetadataAlloc();
     188    psMetadataAddStr(revertminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_name",        0, "search by minidvodb_name", NULL);
     189    psMetadataAddStr(revertminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_group",        0, "search by addRun.minidvodb_group", NULL);
     190
    185191    psMetadata *updateminidvodbprocessedArgs = psMetadataAlloc();
     192    psMetadataAddStr(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_name",        0, "search by minidvodb_name", NULL);
     193    psMetadataAddS16(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_fault",  0,            "set fault code", 0);
     194    psMetadataAddU64(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_merge_order",    0,    "define merge order", 0);
     195    psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_relphot",  0,    "define elapsed time for relphot (seconds)", 0);
     196    psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_resort", 0,    "define elapsed time for resort (seconds)", 0);
     197    psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_merge",    0,    "define elapsed time for DVO merge (seconds)", 0);
    186198   
    187 
    188 
    189199    psMetadata *argSets = psMetadataAlloc();
    190200    psMetadata *modes = psMetadataAlloc();
Note: See TracChangeset for help on using the changeset viewer.