Changeset 33415 for branches/meh_branches/ppstack_test/ippTools/src
- Timestamp:
- Mar 5, 2012, 5:19:48 PM (14 years ago)
- Location:
- branches/meh_branches/ppstack_test
- Files:
-
- 40 edited
- 8 copied
-
. (modified) (1 prop)
-
ippTools/src (modified) (2 props)
-
ippTools/src/Makefile.am (modified) (6 diffs)
-
ippTools/src/addtool.c (modified) (35 diffs)
-
ippTools/src/addtoolConfig.c (modified) (5 diffs)
-
ippTools/src/bgtoolConfig.c (modified) (2 diffs)
-
ippTools/src/camtool.c (modified) (1 diff)
-
ippTools/src/camtoolConfig.c (modified) (1 diff)
-
ippTools/src/chiptool.c (modified) (14 diffs)
-
ippTools/src/chiptool.h (modified) (1 diff)
-
ippTools/src/chiptoolConfig.c (modified) (4 diffs)
-
ippTools/src/difftool.c (modified) (4 diffs)
-
ippTools/src/difftoolConfig.c (modified) (1 diff)
-
ippTools/src/disttool.c (modified) (13 diffs)
-
ippTools/src/disttool.h (modified) (1 diff)
-
ippTools/src/disttoolConfig.c (modified) (7 diffs)
-
ippTools/src/faketool.c (modified) (2 diffs)
-
ippTools/src/flatcorr.c (modified) (1 diff)
-
ippTools/src/laptool.c (modified) (7 diffs)
-
ippTools/src/laptool.h (modified) (1 diff)
-
ippTools/src/laptoolConfig.c (modified) (4 diffs)
-
ippTools/src/magicdstool.c (modified) (8 diffs)
-
ippTools/src/magicdstoolConfig.c (modified) (2 diffs)
-
ippTools/src/magictool.c (modified) (2 diffs, 1 prop)
-
ippTools/src/magictoolConfig.c (modified) (1 diff)
-
ippTools/src/mergetool.c (copied) (copied from trunk/ippTools/src/mergetool.c )
-
ippTools/src/mergetool.h (copied) (copied from trunk/ippTools/src/mergetool.h )
-
ippTools/src/mergetoolConfig.c (copied) (copied from trunk/ippTools/src/mergetoolConfig.c )
-
ippTools/src/minidvodbtool.c (modified) (1 diff)
-
ippTools/src/pstamptool.c (modified) (13 diffs)
-
ippTools/src/pstamptool.h (modified) (1 diff)
-
ippTools/src/pstamptoolConfig.c (modified) (5 diffs)
-
ippTools/src/pxadd.c (modified) (3 diffs)
-
ippTools/src/pxadd.h (modified) (1 diff)
-
ippTools/src/pxchip.c (modified) (1 diff)
-
ippTools/src/pxmerge.c (copied) (copied from trunk/ippTools/src/pxmerge.c )
-
ippTools/src/pxmerge.h (copied) (copied from trunk/ippTools/src/pxmerge.h )
-
ippTools/src/pxtools.c (modified) (1 diff)
-
ippTools/src/regtool.c (modified) (5 diffs)
-
ippTools/src/regtoolConfig.c (modified) (1 diff)
-
ippTools/src/staticskytool.c (modified) (8 diffs)
-
ippTools/src/staticskytool.h (modified) (1 diff)
-
ippTools/src/staticskytoolConfig.c (modified) (4 diffs)
-
ippTools/src/vptool.c (copied) (copied from trunk/ippTools/src/vptool.c )
-
ippTools/src/vptool.h (copied) (copied from trunk/ippTools/src/vptool.h )
-
ippTools/src/vptoolConfig.c (copied) (copied from trunk/ippTools/src/vptoolConfig.c )
-
ippTools/src/warptool.c (modified) (8 diffs)
-
ippTools/src/warptoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/meh_branches/ppstack_test
- Property svn:mergeinfo changed
-
branches/meh_branches/ppstack_test/ippTools/src
- Property svn:ignore
- Property svn:mergeinfo changed
/branches/eam_branches/ipp-20110710/ippTools/src (added) merged: 32337 /branches/eam_branches/ipp-20110906/ippTools/src (added) merged: 32630 /branches/eam_branches/ipp-20111110/ippTools/src (added) merged: 32694 /branches/haf_add201112/ippTools/src (added) merged: 32980,32986,33003,33023,33027
-
branches/meh_branches/ppstack_test/ippTools/src/Makefile.am
r31435 r33415 29 29 diffphottool \ 30 30 minidvodbtool \ 31 laptool 31 mergetool \ 32 laptool \ 33 vptool 32 34 33 35 pkginclude_HEADERS = \ … … 42 44 pxmagic.h \ 43 45 pxminidvodb.h \ 46 pxmerge.h \ 44 47 pxregister.h \ 45 48 pxspace.h \ … … 78 81 diffphottool.h \ 79 82 minidvodbtool.h \ 80 laptool.h 83 mergetool.h \ 84 laptool.h \ 85 vptool.h 81 86 82 87 lib_LTLIBRARIES = libpxtools.la … … 96 101 pxmagic.c \ 97 102 pxminidvodb.c \ 103 pxmerge.c \ 98 104 pxregister.c \ 99 105 pxspace.c \ … … 292 298 minidvodbtoolConfig.c 293 299 300 mergetool_CFLAGS = $(PSLIB_CFLAGS) $(PSMODULES_CFLAGS) $(IPPDB_CFLAGS) 301 mergetool_LDADD = $(PSLIB_LIBS) $(PSMODULES_LIBS) $(IPPDB_LIBS) libpxtools.la 302 mergetool_SOURCES = \ 303 mergetool.c \ 304 mergetoolConfig.c 305 294 306 laptool_CFLAGS = $(PSLIB_CFLAGS) $(PSMODULES_CFLAGS) $(IPPDB_CFLAGS) 295 307 laptool_LDADD = $(PSLIB_LIBS) $(PSMODULES_LIBS) $(IPPDB_LIBS) libpxtools.la … … 298 310 laptoolConfig.c 299 311 312 vptool_CFLAGS = $(PSLIB_CFLAGS) $(PSMODULES_CFLAGS) $(IPPDB_CFLAGS) 313 vptool_LDADD = $(PSLIB_LIBS) $(PSMODULES_LIBS) $(IPPDB_LIBS) libpxtools.la 314 vptool_SOURCES = \ 315 vptool.c \ 316 vptoolConfig.c 317 300 318 clean-local: 301 319 -rm -f TAGS -
branches/meh_branches/ppstack_test/ippTools/src/addtool.c
r31680 r33415 143 143 pxAddLabelSearchArgs (config, where, "-filter", "stackRun.filter", "=="); // define using camRun label 144 144 } 145 145 if (strcmp(stage, "staticsky_multi")== 0) { 146 147 pxAddLabelSearchArgs (config, where, "-label", "staticskyRun.label", "=="); // define using camRun label 148 pxAddLabelSearchArgs (config, where, "-data_group","staticskyRun.data_group", "=="); // define using camRun label 149 PXOPT_COPY_STR(config->args, where, "-reduction", "staticskyyRun.reduction", "=="); 150 //no filter here 151 } 146 152 if (!psListLength(where->list)) { 147 153 psFree(where); … … 237 243 } 238 244 239 245 if (strcmp(stage,"staticsky_multi") == 0) { 246 if (dvodb ) { 247 psTrace("addtool.c", PS_LOG_INFO, "dvodb argument found (%s) using addtool_find_sky_id_multi_dvo.sql\n%s\n", dvodb,stage); 248 // find the cam_id of all the exposures that we want to queue up. 249 bare_query = pxDataGet("addtool_find_sky_id_multi_dvo.sql"); 250 // user supplied dvodb 251 psStringAppend(&dvodb_string, "addRun.dvodb = '%s'", dvodb); 252 } else { 253 psTrace("addtool.c", PS_LOG_INFO, "dvodb argument not found using addtool_find_sky_id_multi.sql\n%s\n",stage); 254 // find the cam_id of all the exposures that we want to queue up. 255 bare_query = pxDataGet("addtool_find_sky_id_multi.sql"); 256 // inherit dvodb from camRun, avoid matching NULL 257 psStringAppend(&dvodb_string, "(staticskyRun.dvodb IS NOT NULL AND previous_dvodb = staticskyRun.dvodb)"); 258 } 259 } 240 260 241 261 if (!bare_query) { … … 272 292 } else { 273 293 //This picks only the unmagicked/uncensored ones 274 if (strcmp(stage,"cam") == 0) { 275 psStringAppend(&query, " AND (camRun.magicked = 0)"); 276 } 294 //if (strcmp(stage,"cam") == 0) { 295 //we can now properly handle the magicked case in ippScripts, so we queue camRuns in any magic state now if -uncensored. 296 //psStringAppend(&query, " AND (camRun.magicked = 0)"); 297 //} 277 298 if (strcmp(stage,"stack") == 0) { 278 299 psStringAppend(&query, " AND (stackRun.magicked = 0)"); … … 280 301 281 302 } 303 304 //if we grab a group of camRun/stackRuns that have multiple camRun/stackRun pointing to the same exp_id/stack_id, and that exp_id/stack_id has never before been added to addRun, we need to group by exp_id/stack_id to ensure that only 1 of the camRun/stackRun for that exp_id is added to the addRun stage. 305 306 if (strcmp(stage,"cam") == 0) { 307 psStringAppend(&query, " GROUP BY exp_id"); 308 } 309 if (strcmp(stage,"stack") == 0) { 310 psStringAppend(&query, " GROUP BY stack_id"); 311 } 312 if (strcmp(stage,"staticsky") == 0) { 313 psStringAppend(&query, " GROUP BY stack_id"); 314 } 315 if (strcmp(stage,"staticsky_multi") == 0) { 316 psStringAppend(&query, " GROUP BY sky_id"); //some reason it needs this 317 } 318 282 319 283 320 psTrace("addtool.c", PS_LOG_INFO,"query: \n\n%s\n\n",query); … … 391 428 } 392 429 } 430 if (strcmp(stage,"staticsky_multi") == 0) { 431 for (long i = 0; i < psArrayLength(output); i++) { 432 psMetadata *md = output->data[i]; 433 bool status = false; 434 psS32 num_inputs = psMetadataLookupS32(&status, md, "num_inputs"); 435 if (!status) { 436 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item num_inputs"); 437 return false; 438 } 439 if (num_inputs < 0) { 440 psError(PS_ERR_UNKNOWN, true, "invalid value for num_inputs"); 441 return false; 442 } 443 444 staticskyRunRow *row = staticskyRunObjectFromMetadata(md); 445 446 if (!row) { 447 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun"); 448 psFree(output); 449 return false; 450 } 451 452 if (!dvodb) { //there's no staticsky.dvodb 453 psError(PS_ERR_UNKNOWN, false, "cannot queue addstar run without a defined dvodb: label: %s, sky_id %" PRId64, row->label, row->sky_id); 454 psFree(output); 455 return false; 456 } 457 if (!workdir && !row->workdir) { 458 psError(PS_ERR_UNKNOWN, false, "cannot queue addstar run without a defined workdir: label: %s, sky_id %" PRId64, row->label, row->sky_id); 459 psFree(output); 460 return false; 461 } 462 463 psFree(row); 464 } 465 } 466 467 468 393 469 394 470 // start a transaction so we don't end up with an exp without any associted … … 424 500 stage, 425 501 stage_id, 502 0, 426 503 workdir ? workdir : row->workdir, 427 504 reduction ? reduction : row->reduction, … … 465 542 stage, 466 543 stage_id, 544 0, 467 545 workdir ? workdir : row->workdir, 468 546 reduction ? reduction : row->reduction, … … 506 584 stage, 507 585 stage_id, 586 0, 508 587 workdir ? workdir : row->workdir, 509 588 reduction ? reduction : row->reduction, … … 530 609 } 531 610 611 if (strcmp(stage,"staticsky_multi") == 0) { 612 for (long i = 0; i < psArrayLength(output); i++) { 613 psMetadata *md = output->data[i]; 614 psS64 stage_id =0; 615 bool status = false; 616 psS32 num_inputs = psMetadataLookupS32(&status, md, "num_inputs"); 617 if (!status) { 618 psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item num_inputs"); 619 return false; 620 } 621 staticskyRunRow *row = staticskyRunObjectFromMetadata(md); 622 stage_id = row->sky_id; 623 624 if (!row) { 625 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun"); 626 psFree(output); 627 return false; 628 } 629 630 // queue the exp 631 for (int filter_id = 0; filter_id < num_inputs; filter_id++) { 632 if (!pxaddQueueByCamID(config, 633 stage, 634 stage_id, 635 filter_id, 636 workdir ? workdir : row->workdir, 637 reduction ? reduction : row->reduction, 638 label ? label : row->label, 639 data_group ? data_group : (row->data_group ? row->data_group : (label ? label : row->label)), 640 dvodb ? dvodb : NULL, 641 note ? note : NULL, 642 image_only, 643 minidvodb, 644 minidvodb_group, 645 minidvodb_name 646 )) { 647 if (!psDBRollback(config->dbh)) { 648 psError(PS_ERR_UNKNOWN, false, "database error sfg"); 649 } 650 psError(PS_ERR_UNKNOWN, false, 651 "failed to trying to queue stage %s %" PRId64,stage, stage_id); 652 psFree(row); 653 psFree(output); 654 return false; 655 } 656 } 657 psFree(row); 658 } 659 } 660 661 662 663 532 664 psFree(output); 533 665 … … 571 703 } 572 704 if (strcmp(stage, "staticsky")==0) { 705 query = psStringCopy("UPDATE addRun JOIN staticskyRun on sky_id = stage_id"); 706 } 707 if (strcmp(stage, "staticsky_multi")==0) { 573 708 query = psStringCopy("UPDATE addRun JOIN staticskyRun on sky_id = stage_id"); 574 709 } … … 612 747 query = pxDataGet("addtool_find_pendingexp_staticsky.sql"); 613 748 } 614 749 if (strcmp(stage, "staticsky_multi")==0) { 750 query = pxDataGet("addtool_find_pendingexp_staticsky_multi.sql"); 751 } 752 615 753 616 754 if (!query) { … … 634 772 psStringAppend(&query, " GROUP BY %s", "sky_id"); 635 773 } 636 774 if (strcmp(stage, "staticsky_multi") == 0) { 775 //this group by is needed to join against all the warps (to get camera) 776 psStringAppend(&query, " GROUP BY %s", "sky_id, stage_extra1"); 777 } 637 778 // treat limit == 0 as "no limit" 638 779 if (limit) { … … 684 825 PXOPT_LOOKUP_STR(minidvodb_name, config->args, "-minidvodb_name", false, false); 685 826 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 686 827 PXOPT_LOOKUP_S64(stage_extra1, config->args, "-stage_extra1", false, false); 687 828 // generate restrictions 688 829 psMetadata *where = psMetadataAlloc(); … … 762 903 } 763 904 } 764 905 //if there is a stage_extra1, set it in addRun (it's not known until it is processed) 906 if (stage_extra1) { 907 psString setExtra = NULL; 908 psStringAppend (&setExtra, "UPDATE addRun set stage_extra1 = %" PRId64, stage_extra1); 909 psStringAppend (&setExtra, " where add_id = %" PRId64, row->add_id); 910 911 if (!p_psDBRunQuery(config->dbh, setExtra)) { 912 if (!psDBRollback(config->dbh)) { 913 psError(PS_ERR_UNKNOWN, false, "database error"); 914 } 915 psError(PS_ERR_UNKNOWN, false, "database error"); 916 917 return false; 918 } 919 } 765 920 766 921 … … 824 979 query = pxDataGet("addtool_find_processedexp_staticsky.sql"); 825 980 } 981 if (strcmp (stage,"staticsky_multi") == 0) { 982 query = pxDataGet("addtool_find_processedexp_staticsky_multi.sql"); 983 } 984 826 985 827 986 if (!query) { … … 905 1064 PXOPT_COPY_S64(config->args, where, "-add_id", "addRun.add_id", "=="); 906 1065 PXOPT_COPY_S64(config->args, where, "-stage_id", "addRun.stage_id", "=="); 907 PXOPT_LOOKUP_STR(stage, config->args, "-stage", false, false);1066 PXOPT_LOOKUP_STR(stage, config->args, "-stage", true, false); 908 1067 pxcamGetSearchArgs (config, where); 909 1068 pxAddLabelSearchArgs (config, where, "-label", "addRun.label", "=="); … … 934 1093 query = pxDataGet("addtool_revertprocessedexp_staticsky.sql"); 935 1094 } 1095 if (strcmp(stage, "staticsky_multi") == 0) { 1096 query = pxDataGet("addtool_revertprocessedexp_staticsky_multi.sql"); 1097 } 1098 1099 1100 936 1101 if (!query) { 937 1102 // rollback … … 1071 1236 1072 1237 PXOPT_LOOKUP_STR(minidvodb_group, config->args, "-set_minidvodb_group", true, false); 1073 PXOPT_LOOKUP_STR(mergedvodb_path, config->args, "-set_mergedvodb_path", true, false); 1074 1075 //optional 1238 //optional 1076 1239 PXOPT_LOOKUP_STR(minidvodb_name, config->args, "-set_minidvodb_name", false, false); 1077 1240 PXOPT_LOOKUP_STR(minidvodb_path, config->args, "-set_minidvodb_path", false, false); … … 1088 1251 if (minidvodb_path) { 1089 1252 minidvodbpath = minidvodb_path; 1253 } else { 1254 psError(PS_ERR_UNKNOWN, false, "require minidvodb_path"); 1255 return false; 1090 1256 } 1091 1257 … … 1095 1261 minidvodb_group, 1096 1262 minidvodbpath, 1097 mergedvodb_path, 1098 "new", 1263 "new", 1099 1264 0 1100 1265 )) { … … 1118 1283 psStringAppend(&minidvodb_name, "%s.%" PRIu64,minidvodb_group,minidvodb_id); 1119 1284 } 1120 1121 if (!minidvodb_path) {1122 psStringAppend(&minidvodb_path,"%s/%s",mergedvodb_path,minidvodb_name);1123 }1124 1125 1285 if (minidvodb_path) { 1126 1286 psStringAppend(&minidvodb_path,"/%s",minidvodb_name); … … 1154 1314 PXOPT_COPY_STR(config->args, where, "-state", "state", "=="); 1155 1315 PXOPT_COPY_STR(config->args, where, "-minidvodb_path", "minidvodb_path", "=="); 1156 PXOPT_COPY_STR(config->args, where, "-mergedvodb_path", "mergedvodb_path", "==");1157 1316 PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "minidvodb_group", "=="); 1158 1317 … … 1160 1319 PXOPT_LOOKUP_STR(minidvodb_path, config->args, "-set_minidvodb_path", false, false); 1161 1320 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 1162 PXOPT_LOOKUP_STR(mergedvodb_path, config->args, "-set_mergedvodb_path", false, false);1163 1321 PXOPT_LOOKUP_STR(minidvodb_group, config->args, "-set_minidvodb_group", false, false); 1164 1322 … … 1195 1353 } 1196 1354 1197 if (mergedvodb_path) {1198 if (cnt) {1199 psStringAppend(&query, "%s", comma);1200 }1201 psStringAppend(&query, " mergedvodb_path = '%s'", mergedvodb_path);1202 cnt++;1203 }1204 1205 1355 if (minidvodb_group) { 1206 1356 if (cnt) { … … 1246 1396 } 1247 1397 1248 psString firstquery = psStringCopy("SELECT * from minidvodbRun where state = 'new' and minidvodb_name is NOT NULL and minidvodb_group IS NOT NULL and minidvodb_path IS NOT NULL and mergedvodb_path IS NOT NULL");1398 psString firstquery = psStringCopy("SELECT * from minidvodbRun where state = 'new' and minidvodb_name is NOT NULL and minidvodb_group IS NOT NULL and minidvodb_path IS NOT NULL"); 1249 1399 1250 1400 psString firstwhereClause = psDBGenerateWhereConditionSQL(where, NULL); … … 1294 1444 1295 1445 //now flip new -> active 1296 psString query2 = psStringCopy("UPDATE minidvodbRun SET state = 'active' WHERE state = 'new' AND minidvodb_name is NOT NULL and minidvodb_group IS NOT NULL and minidvodb_path IS NOT NULL and mergedvodb_path IS NOT NULL");1446 psString query2 = psStringCopy("UPDATE minidvodbRun SET state = 'active' WHERE state = 'new' AND minidvodb_name is NOT NULL and minidvodb_group IS NOT NULL and minidvodb_path IS NOT NULL "); 1297 1447 psStringAppend(&query2, " AND minidvodb_group = '%s' limit 1;", minidvodb_group); 1298 1448 if (!p_psDBRunQuery(config->dbh, query2)) { … … 1471 1621 // required 1472 1622 PXOPT_LOOKUP_U64(minidvodb_id, config->args, "-minidvodb_id", true, false); 1473 PXOPT_LOOKUP_STR(mergedvodb_path, config->args, "-mergedvodb_path", true, false);1474 1623 PXOPT_LOOKUP_STR(minidvodb_group, config->args, "-minidvodb_group", true, false); 1475 1624 1476 1625 // optional 1477 PXOPT_LOOKUP_U64(merge_order, config->args, "-merge_order", false, false);1478 1626 PXOPT_LOOKUP_F32(dtime_relphot, config->args, "-dtime_relphot", false, false); 1479 1627 PXOPT_LOOKUP_F32(dtime_resort, config->args, "-dtime_resort", false, false); 1480 PXOPT_LOOKUP_F32(dtime_merge, config->args, "-dtime_merge", false, false);1481 PXOPT_LOOKUP_F32(dtime_verify, config->args, "-dtime_verify", false, false);1482 1628 PXOPT_LOOKUP_F32(dtime_script, config->args, "-dtime_script", false, false); 1483 1629 … … 1530 1676 minidvodbProcessedRow *row = minidvodbProcessedRowAlloc( 1531 1677 pendingRow->minidvodb_id, 1532 merge_order,1533 1678 dtime_resort, 1534 1679 dtime_relphot, 1535 dtime_verify,1536 dtime_merge,1537 1680 dtime_script, 1538 1681 epoch, 1539 mergedvodb_path,1540 1682 fault 1541 1683 ); … … 1552 1694 } 1553 1695 1554 1555 1556 1557 //this finds the # of merged things (for the merge order)1558 psString query3 = NULL;1559 psStringAppend(&query3, "select count(*) from minidvodbRun join minidvodbProcessed using (minidvodb_id) where state = 'merged' and minidvodb_group = '%s';", minidvodb_group);1560 1561 if (!p_psDBRunQuery(config->dbh, query3)) {1562 // rollback1563 if (!psDBRollback(config->dbh)) {1564 psError(PS_ERR_UNKNOWN, false, "database error");1565 }1566 psError(PS_ERR_UNKNOWN, false, "database error");1567 psFree(query3);1568 return false;1569 }1570 psArray *output2 = p_psDBFetchResult(config->dbh);1571 if (!output2) {1572 psError(PS_ERR_UNKNOWN, false, "database error");1573 return false;1574 }1575 if (!psArrayLength(output2)) {1576 psTrace("addtool", PS_LOG_INFO, "no rows found");1577 psFree(output);1578 return true;1579 }1580 bool status;1581 psS64 m_order = psMetadataLookupS64(&status, output2->data[0], "count(*)");1582 if (!status) {1583 1584 psAbort("failed to lookup value for count column");1585 return false;1586 }1587 psString final = NULL;1588 psStringAppend(&final, "%" PRIu64, m_order);1589 //return false;1590 psFree(query3);1591 psFree(output2);1592 1593 1594 1595 //update the merge_order1596 1597 psString query4 = NULL;1598 psStringAppend(&query4, "update minidvodbProcessed set merge_order = %"PRIu64,m_order);1599 psStringAppend(&query4," where minidvodb_id = %" PRIu64, minidvodb_id);1600 //printf("%s", query4);1601 if (!p_psDBRunQuery(config->dbh, query4)) {1602 // rollback1603 if (!psDBRollback(config->dbh)) {1604 psError(PS_ERR_UNKNOWN, false, "database error");1605 }1606 psError(PS_ERR_UNKNOWN, false, "database error");1607 psFree(query4);1608 return false;1609 }1610 //1611 psFree(query4);1612 1613 1614 1615 // since there is only one exp per 'new' set mindvodbRun.state = 'merged'1616 1617 1696 psString query2 = NULL ; 1618 1697 psStringAppend(&query2, "UPDATE minidvodbRun SET state = 'merged' WHERE minidvodb_id = %'" PRIu64, row->minidvodb_id); … … 1627 1706 return false; 1628 1707 } 1629 1630 1631 1632 1633 1634 1635 1636 1637 1708 psFree(row); 1638 1709 psFree(pendingRow); … … 1647 1718 return false; 1648 1719 } 1649 1650 1651 //print the merge_order (why not!)1652 printf("%s", final);1653 psFree(final);1654 1655 1720 return true; 1656 1721 } … … 1661 1726 psMetadata *where = psMetadataAlloc(); 1662 1727 PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbProcessed.minidvodb_id", "=="); 1663 PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodb Processed.minidvodb_name", "==");1664 PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "minidvodb Processed.minidvodb_group", "==");1728 PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodbRun.minidvodb_name", "=="); 1729 PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "minidvodbRun.minidvodb_group", "=="); 1665 1730 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1666 1731 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); … … 1811 1876 1812 1877 PXOPT_LOOKUP_U64(minidvodb_id, config->args, "-minidvodb_id", true, false); 1813 PXOPT_LOOKUP_U64(merge_order, config->args, "-set_merge_order", false, false);1814 1878 PXOPT_LOOKUP_S16(fault, config->args, "-set_fault", false, false); 1815 1879 PXOPT_LOOKUP_F32(dtime_relphot, config->args, "-set_dtime_relphot", false, false); 1816 1880 PXOPT_LOOKUP_F32(dtime_resort, config->args, "-set_dtime_resort", false, false); 1817 PXOPT_LOOKUP_F32(dtime_merge, config->args, "-set_dtime_merge", false, false);1818 PXOPT_LOOKUP_F32(dtime_verify, config->args, "-set_dtime_verify", false, false);1819 1881 PXOPT_LOOKUP_F32(dtime_script, config->args, "-set_dtime_script", false, false); 1820 1882 PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbProcessed.minidvodb_id", "=="); … … 1836 1898 } 1837 1899 1838 if (merge_order) {1839 if (cnt) {1840 psStringAppend(&query, "%s", comma);1841 }1842 1843 psStringAppend(&query, " merge_order = %" PRId64, merge_order);1844 cnt++;1845 }1846 1847 1900 if (dtime_relphot) { 1848 1901 if (cnt) { … … 1861 1914 } 1862 1915 1863 if (dtime_merge) { 1864 if (cnt) { 1865 psStringAppend(&query, "%s", comma); 1866 } 1867 psStringAppend(&query, " dtime_merge = %f", dtime_merge); 1868 cnt++; 1869 } 1870 if (dtime_verify) { 1871 if (cnt) { 1872 psStringAppend(&query, "%s", comma); 1873 } 1874 psStringAppend(&query, " dtime_verify = %f", dtime_verify); 1875 cnt++; 1876 } 1877 if (dtime_script) { 1916 if (dtime_script) { 1878 1917 if (cnt) { 1879 1918 psStringAppend(&query, "%s", comma); -
branches/meh_branches/ppstack_test/ippTools/src/addtoolConfig.c
r31680 r33415 115 115 psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-dtime_addstar", 0, "define elapsed time for DVO insertion (seconds)", NAN); 116 116 psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 117 psMetadataAddS64(addprocessedexpArgs, PS_LIST_TAIL, "-stage_extra1", 0, "set stage_extra1", 0); 118 117 119 118 120 // -processedexp … … 165 167 psMetadataAddStr(addminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_group", 0, "define minidvodb_group (required)", NULL); 166 168 psMetadataAddStr(addminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_path", 0, "define path for minidvodb", NULL); 167 psMetadataAddStr(addminidvodbrunArgs, PS_LIST_TAIL, "-set_mergedvodb_path", 0, "define path for the merged dvodb (required)", NULL);168 169 psMetadataAddStr(addminidvodbrunArgs, PS_LIST_TAIL, "-set_state", 0, "define state", NULL); 169 170 … … 174 175 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-minidvodb_name", 0, "search by minidvodb_name (LIKE)", NULL); 175 176 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-minidvodb_path", 0, "search by path for minidvodb", NULL); 176 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-mergedvodb_path", 0, "search by path for the merged dvodb", NULL);177 177 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL); 178 178 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_name", 0, "define minidvodb_name", NULL); 179 179 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_path", 0, "define path for minidvodb", NULL); 180 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_mergedvodb_path", 0, "define path for minidvodb", NULL);181 180 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_group", 0, "define path for the merged dvodb", NULL); 182 181 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_state", 0, "define state", NULL); … … 205 204 psMetadata *addminidvodbprocessedArgs = psMetadataAlloc(); 206 205 psMetadataAddU64(addminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_id", 0, "define minidvodb_id (required)", 0); 207 psMetadataAddU64(addminidvodbprocessedArgs, PS_LIST_TAIL, "-merge_order", 0, "define merge order", 0);208 206 psMetadataAddF32(addminidvodbprocessedArgs, PS_LIST_TAIL, "-dtime_relphot", 0, "define elapsed time for relphot (seconds)", NAN); 209 207 psMetadataAddF32(addminidvodbprocessedArgs, PS_LIST_TAIL, "-dtime_resort", 0, "define elapsed time for resort (seconds)", NAN); 210 psMetadataAddF32(addminidvodbprocessedArgs, PS_LIST_TAIL, "-dtime_verify", 0, "define elapsed time for DVO verify (seconds)", NAN);211 psMetadataAddF32(addminidvodbprocessedArgs, PS_LIST_TAIL, "-dtime_merge", 0, "define elapsed time for DVO merge (seconds)", NAN);212 208 psMetadataAddF32(addminidvodbprocessedArgs, PS_LIST_TAIL, "-dtime_script", 0, "define elapsed time for script (seconds)", NAN); 213 209 psMetadataAddTime(addminidvodbprocessedArgs, PS_LIST_TAIL, "-epoch", 0, "time merge is finished", NULL); 214 psMetadataAddStr(addminidvodbprocessedArgs, PS_LIST_TAIL, "-mergedvodb_path",0, "path of merged dvodb", NULL);215 210 psMetadataAddStr(addminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_group",0, "minidvodb_group", NULL); 216 211 psMetadataAddS16(addminidvodbprocessedArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); … … 232 227 psMetadataAddStr(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_name", 0, "search by minidvodb_name", NULL); 233 228 psMetadataAddS16(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_fault", 0, "set fault code", 0); 234 psMetadataAddU64(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_merge_order", 0, "define merge order", 0);235 229 psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_relphot", 0, "define elapsed time for relphot (seconds)", 0); 236 230 psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_resort", 0, "define elapsed time for resort (seconds)", 0); 237 psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_verify", 0, "define elapsed time for DVO verify (seconds)", 0);238 psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_merge", 0, "define elapsed time for DVO merge (seconds)", 0);239 231 psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_script", 0, "define elapsed time for script (seconds)", 0); 240 232 psMetadata *argSets = psMetadataAlloc(); -
branches/meh_branches/ppstack_test/ippTools/src/bgtoolConfig.c
r29671 r33415 113 113 psMetadataAddTime(updatechipArgs, PS_LIST_TAIL, "-registered_end", 0, "search by registration time (<)", NULL); 114 114 psMetadataAddBool(updatechipArgs, PS_LIST_TAIL, "-destreaked", 0, "search for runs that have been destreaked", false); 115 psMetadataAddS64(updatechipArgs, PS_LIST_TAIL, "-magicked", 0, "define magicked status", 0); 116 psMetadataAddS64(updatechipArgs, PS_LIST_TAIL, "-not_destreaked", 0, "define magicked status", 0); 115 117 psMetadataAddBool(updatechipArgs, PS_LIST_TAIL, "-pretend", 0, "only pretend to run the query", false); 116 118 psMetadataAddStr(updatechipArgs, PS_LIST_TAIL, "-set_state", 0, "define new state", NULL); … … 298 300 psMetadataAddTime(updatewarpArgs, PS_LIST_TAIL, "-registered_end", 0, "search by registration time (<)", NULL); 299 301 psMetadataAddBool(updatewarpArgs, PS_LIST_TAIL, "-destreaked", 0, "search for runs that have been destreaked", false); 302 psMetadataAddBool(updatewarpArgs, PS_LIST_TAIL, "-not_destreaked", 0, "search for runs that have been destreaked", false); 303 psMetadataAddS64(updatewarpArgs, PS_LIST_TAIL, "-magicked", 0, "define magicked status", 0); 300 304 psMetadataAddBool(updatewarpArgs, PS_LIST_TAIL, "-pretend", 0, "only pretend to run the query", false); 301 305 psMetadataAddStr(updatewarpArgs, PS_LIST_TAIL, "-set_state", 0, "define new state", NULL); -
branches/meh_branches/ppstack_test/ippTools/src/camtool.c
r30907 r33415 112 112 PXOPT_COPY_STR(config->args, where, "-reduction", "chipRun.reduction", "=="); 113 113 PXOPT_COPY_STR(config->args, where, "-data_group", "chipRun.data_group", "=="); 114 PXOPT_COPY_STR(config->args, where, "-obs_mode", "rawExp.obs_mode", "=="); 114 115 115 116 if (!psListLength(where->list) && -
branches/meh_branches/ppstack_test/ippTools/src/camtoolConfig.c
r30907 r33415 55 55 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-reduction", 0, "search by chipRun reduction class", NULL); 56 56 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-data_group", 0, "search by chipRun data_group", NULL); 57 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-obs_mode", 0, "search by rawExp obs_mode", NULL); 57 58 58 59 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir", NULL); -
branches/meh_branches/ppstack_test/ippTools/src/chiptool.c
r31954 r33415 43 43 static bool revertprocessedimfileMode(pxConfig *config); 44 44 static bool updateprocessedimfileMode(pxConfig *config); 45 static bool dropprocessedimfileMode(pxConfig *config); 45 46 static bool advanceexpMode(pxConfig *config); 46 47 static bool blockMode(pxConfig *config); … … 88 89 MODECASE(CHIPTOOL_MODE_REVERTPROCESSEDIMFILE, revertprocessedimfileMode); 89 90 MODECASE(CHIPTOOL_MODE_UPDATEPROCESSEDIMFILE, updateprocessedimfileMode); 91 MODECASE(CHIPTOOL_MODE_DROPPROCESSEDIMFILE, dropprocessedimfileMode); 90 92 MODECASE(CHIPTOOL_MODE_ADVANCEEXP, advanceexpMode); 91 93 MODECASE(CHIPTOOL_MODE_BLOCK, blockMode); … … 196 198 GET_VALUE (psS64, S64, exp_id, "exp_id"); 197 199 GET_VALUE (psString, Str, raw_workdir, "workdir"); 200 #ifdef notyet 201 GET_VALUE (psString, Str, old_workdir, "old_workdir"); 202 GET_VALUE (psString, Str, old_data_group, "old_data_group"); 203 #else 204 const char *old_workdir = NULL; 205 const char *old_data_group = NULL; 206 #endif 198 207 GET_VALUE (psString, Str, raw_label, "label"); 199 208 GET_VALUE (psString, Str, raw_reduction, "reduction"); … … 211 220 if (!pxchipQueueByExpTag(config, 212 221 exp_id, 213 workdir ? workdir : raw_workdir,222 workdir ? workdir : (old_workdir ? old_workdir : raw_workdir), 214 223 label ? label : raw_label, 215 data_group ? data_group : ( label ? label : raw_label),224 data_group ? data_group : (old_data_group ? old_data_group : (label ? label : raw_label)), 216 225 dist_group, 217 226 reduction ? reduction : raw_reduction, … … 343 352 pxAddLabelSearchArgs (config, where, "-label", "chipOld.label", "LIKE"); 344 353 pxAddLabelSearchArgs (config, where, "-data_group", "chipOld.data_group", "LIKE"); 354 PXOPT_COPY_STR(config->args, where, "-state", "chipOld.state", "=="); 345 355 346 356 // psListLength(where->list) is at least 1 because exp_type defaults to "object" … … 352 362 } 353 363 354 PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", true, false);364 PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", false, false); 355 365 PXOPT_LOOKUP_STR(label, config->args, "-set_label", true, false); 356 366 PXOPT_LOOKUP_STR(reduction, config->args, "-set_reduction", false, false); … … 466 476 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "=="); 467 477 pxAddLabelSearchArgs (config, where, "-label", "chipRun.label", "=="); 478 PXOPT_COPY_STR(config->args, where, "-class_id", "rawImfile.class_id", "=="); 468 479 469 480 psString query = pxDataGet("chiptool_pendingimfile.sql"); … … 883 894 } 884 895 psFree(query); 896 int numDeleted = psDBAffectedRows(config->dbh); 897 psLogMsg("chiptool", PS_LOG_INFO, "Deleted %d chipProcessedImfiles", numDeleted); 885 898 886 899 if (!fault) { … … 896 909 } 897 910 psFree(query_update); 911 int numUpdated = psDBAffectedRows(config->dbh); 912 psLogMsg("chiptool", PS_LOG_INFO, "Updated %d chipProcessedImfiles", numUpdated); 913 898 914 899 915 return true; … … 962 978 PXOPT_COPY_S64(config->args, where, "-chip_id", "chip_id", "=="); 963 979 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 964 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, NULL);980 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 965 981 if (psListLength(where->list) == 0) { 966 982 psError(PS_ERR_UNKNOWN, true, "search parameters are required"); … … 986 1002 987 1003 1004 return true; 1005 } 1006 1007 // "drop" previously processed components as though the original processing 1008 // had poor quality. Sets quality, data_state, clears fault and magicked 1009 // Deletes corresponding magicDSFile (if one exists) 1010 static bool dropprocessedimfileMode(pxConfig *config) 1011 { 1012 PS_ASSERT_PTR_NON_NULL(config, false); 1013 1014 psMetadata *where = psMetadataAlloc(); 1015 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipProcessedImfile.chip_id", "=="); 1016 PXOPT_COPY_STR(config->args, where, "-class_id", "chipProcessedImfile.class_id", "=="); 1017 PXOPT_LOOKUP_S64(chip_id, config->args, "-chip_id", true, false); 1018 PXOPT_LOOKUP_S64(class_id, config->args, "-class_id", true, false); 1019 PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", true, false); 1020 1021 if (!quality) { 1022 psError(PXTOOLS_ERR_CONFIG, true, "non-zero quality value is required"); 1023 return false; 1024 } 1025 1026 if (psListLength(where->list) == 0) { 1027 // won't get here 1028 psError(PXTOOLS_ERR_CONFIG, true, "-chip_id and -class_id are required"); 1029 return false; 1030 } 1031 1032 psString query = pxDataGet("chiptool_dropprocessedimfile_update.sql"); 1033 if (!query) { 1034 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1035 return false; 1036 } 1037 psString delete_query = pxDataGet("chiptool_dropprocessedimfile_delete.sql"); 1038 if (!delete_query) { 1039 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1040 return false; 1041 } 1042 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1043 psStringAppend(&query, " WHERE %s", whereClause); 1044 psFree(where); 1045 1046 if (!psDBTransaction(config->dbh)) { 1047 psError(PS_ERR_UNKNOWN, false, "database error"); 1048 return false; 1049 } 1050 if (!p_psDBRunQueryF(config->dbh, query, quality)) { 1051 if (!psDBRollback(config->dbh)) { 1052 psError(PS_ERR_UNKNOWN, false, "database error on rollback"); 1053 } 1054 psError(PS_ERR_UNKNOWN, false, "database error"); 1055 psFree(query); 1056 return false; 1057 } 1058 psFree(query); 1059 1060 psStringAppend(&delete_query, " AND %s", whereClause); 1061 psFree(whereClause); 1062 if (!p_psDBRunQuery(config->dbh, delete_query)) { 1063 if (!psDBRollback(config->dbh)) { 1064 psError(PS_ERR_UNKNOWN, false, "database error on rollback"); 1065 } 1066 psError(PS_ERR_UNKNOWN, false, "database error"); 1067 psFree(delete_query); 1068 return false; 1069 } 1070 psFree(delete_query); 1071 1072 if (!psDBCommit(config->dbh)) { 1073 psError(PS_ERR_UNKNOWN, false, "database error"); 1074 return false; 1075 } 988 1076 return true; 989 1077 } … … 1418 1506 psMetadata *where = psMetadataAlloc(); 1419 1507 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 1420 1508 PXOPT_COPY_S64(config->args, where, "-chip_id", "chip_id", "=="); 1421 1509 // look for completed chipPendingExp 1422 1510 // migrate them to chipProccessedExp & camPendingExp … … 1432 1520 psFree(whereClause); 1433 1521 } 1522 1523 psTrace("chiptool", 10, "%s\n", query); 1434 1524 psFree(where); 1435 1525 … … 1943 2033 return false; 1944 2034 } 1945 1946 2035 psFree(setHook); 1947 2036 psFree(query); 2037 2038 // if we are updating a whole chipRun set lingering chips with poor quality to full data_state 2039 if (!class_id) { 2040 query = "UPDATE chipProcessedImfile SET data_state ='full', fault = 0 WHERE chip_id = %" PRId64 " AND quality != 0 AND (data_state ='cleaned' OR data_state = 'update')"; 2041 2042 if (!p_psDBRunQueryF(config->dbh, query, chip_id)) { 2043 psError(PS_ERR_UNKNOWN, false, "database error"); 2044 return false; 2045 } 2046 } 1948 2047 1949 2048 return true; -
branches/meh_branches/ppstack_test/ippTools/src/chiptool.h
r29416 r33415 33 33 CHIPTOOL_MODE_REVERTPROCESSEDIMFILE, 34 34 CHIPTOOL_MODE_UPDATEPROCESSEDIMFILE, 35 CHIPTOOL_MODE_DROPPROCESSEDIMFILE, 35 36 CHIPTOOL_MODE_SETIMFILETOUPDATE, 36 37 CHIPTOOL_MODE_ADVANCEEXP, -
branches/meh_branches/ppstack_test/ippTools/src/chiptoolConfig.c
r31954 r33415 72 72 73 73 psMetadataAddStr(definecopyArgs, PS_LIST_TAIL, "-exp_type", PS_META_REPLACE, "search by exp_type", "object"); 74 75 psMetadataAddStr(definecopyArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir (required)", NULL); 74 psMetadataAddStr(definecopyArgs, PS_LIST_TAIL, "-state", 0, "search by chipRun.state", NULL); 75 76 psMetadataAddStr(definecopyArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir", NULL); 76 77 psMetadataAddStr(definecopyArgs, PS_LIST_TAIL, "-set_label", 0, "define label (required)", NULL); 77 78 psMetadataAddStr(definecopyArgs, PS_LIST_TAIL, "-set_reduction", 0, "define reduction class", NULL); … … 111 112 psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip ID", 0); 112 113 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", 0); 114 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search by class_id", 0); 113 115 pxchipSetSearchArgs(pendingimfileArgs); 114 116 psMetadataAddU64(pendingimfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 237 239 psMetadataAddStr(updateprocessedimfileArgs, PS_LIST_TAIL, "-set_state", 0, "set state", NULL); 238 240 psMetadataAddS16(updateprocessedimfileArgs, PS_LIST_TAIL, "-set_quality", 0, "set quality", 0); 239 // -processedExp 241 242 // -dropprocessedimfile 243 psMetadata *dropprocessedimfileArgs = psMetadataAlloc(); 244 psMetadataAddS64(dropprocessedimfileArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip ID (required)", 0); 245 psMetadataAddStr(dropprocessedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID (required)", NULL); 246 psMetadataAddS16(dropprocessedimfileArgs, PS_LIST_TAIL, "-set_quality", 0, "set quality (required)", 0); 247 248 // -listrun 240 249 psMetadata *listrunArgs = psMetadataAlloc(); 241 250 pxchipSetSearchArgs(listrunArgs); … … 372 381 PXOPT_ADD_MODE("-processedimfile", "show processed imfiles", CHIPTOOL_MODE_PROCESSEDIMFILE, processedimfileArgs); 373 382 PXOPT_ADD_MODE("-updateprocessedimfile","change procesed imfile properties", CHIPTOOL_MODE_UPDATEPROCESSEDIMFILE,updateprocessedimfileArgs); 383 PXOPT_ADD_MODE("-dropprocessedimfile","drop previously procesed imfile", CHIPTOOL_MODE_DROPPROCESSEDIMFILE, dropprocessedimfileArgs); 374 384 PXOPT_ADD_MODE("-revertprocessedimfile","undo a processed imfile", CHIPTOOL_MODE_REVERTPROCESSEDIMFILE,revertprocessedimfileArgs); 375 385 PXOPT_ADD_MODE("-runstate", "list the states of chip run", CHIPTOOL_MODE_RUNSTATE, runstateArgs); -
branches/meh_branches/ppstack_test/ippTools/src/difftool.c
r31435 r33415 1634 1634 PXOPT_COPY_F32(config->args, selectWhere, "-timediff", 1635 1635 "ABS(TIME_TO_SEC(TIMEDIFF(inputRawExp.dateobs, templateRawExp.dateobs)))", "<="); 1636 PXOPT_COPY_F32(config->args, selectWhere, "-mintimediff", 1637 "ABS(TIME_TO_SEC(TIMEDIFF(inputRawExp.dateobs, templateRawExp.dateobs)))", ">="); 1636 1638 1637 1639 // other where restrictions: … … 1867 1869 const char *tess_id = psMetadataLookupStr(NULL, row, "tess_id"); 1868 1870 psString input_data_group = psMetadataLookupStr(NULL, row, "input_data_group"); 1869 if ( input_data_group) {1871 if (!data_group) { 1870 1872 data_group = input_data_group; 1871 1873 } … … 1934 1936 return false; 1935 1937 } 1938 psS64 numSkycells = psDBAffectedRows(config->dbh); 1939 if (numSkycells > 0) { 1940 if (!setdiffRunState(config, run->diff_id, "new", false)) { 1941 psError(PS_ERR_UNKNOWN, false, "Failed to change diffRun.state for diff_id: %" PRId64, 1942 run->diff_id); 1943 psFree(input); 1944 psFree(diff); 1945 psFree(run); 1946 psFree(list); 1947 psFree(insert); 1948 psFree(results); 1949 if (!psDBRollback(config->dbh)) { 1950 psError(PS_ERR_UNKNOWN, false, "database error"); 1951 } 1952 return false; 1953 } 1954 run->state = psStringCopy("new"); 1955 } else { 1956 // No overlap between the warps. Insert a dummy skycell which will complete this pair of warps 1957 // XXX: we'd like to use diffInputSkyfileRowAlloc and diffInputSkyfileInsert but there doesn't 1958 // seem to be a way to pass in NULL for skycell_id, stack1 and stack2 1959 psString dummyQuery = NULL; 1960 psStringAppend(&dummyQuery, 1961 "INSERT INTO diffInputSkyfile VALUES(%" PRId64 ", NULL, %s, NULL, %s, NULL, '%s', 0)", 1962 run->diff_id, 1963 input, // warp1 1964 template, // warp2 1965 tess_id); 1966 if (!p_psDBRunQuery(config->dbh, dummyQuery)) { 1967 psError(PS_ERR_UNKNOWN, false, "database error"); 1968 psFree(dummyQuery); 1969 psFree(input); 1970 psFree(diff); 1971 psFree(run); 1972 psFree(list); 1973 psFree(insert); 1974 psFree(results); 1975 if (!psDBRollback(config->dbh)) { 1976 psError(PS_ERR_UNKNOWN, false, "database error"); 1977 } 1978 return false; 1979 } 1980 psFree(dummyQuery); 1981 psString finishQuery = NULL; 1982 psStringAppend( &finishQuery, 1983 "UPDATE diffRun set state ='full', dist_group = NULL, note = 'dummy run - no overlap' WHERE diff_id = %" PRId64, 1984 run->diff_id); 1985 if (!p_psDBRunQuery(config->dbh, finishQuery)) { 1986 psError(PS_ERR_UNKNOWN, false, "database error"); 1987 psFree(finishQuery); 1988 psFree(input); 1989 psFree(diff); 1990 psFree(run); 1991 psFree(list); 1992 psFree(insert); 1993 psFree(results); 1994 if (!psDBRollback(config->dbh)) { 1995 psError(PS_ERR_UNKNOWN, false, "database error"); 1996 } 1997 return false; 1998 } 1999 psFree(finishQuery); 2000 run->state = psStringCopy("full"); 2001 } 1936 2002 psFree(input); 1937 2003 psFree(diff); 1938 1939 if (!setdiffRunState(config, run->diff_id, "new", false)) {1940 psError(PS_ERR_UNKNOWN, false, "Failed to change diffRun.state for diff_id: %" PRId64,1941 run->diff_id);1942 psFree(run);1943 psFree(list);1944 psFree(insert);1945 psFree(results);1946 if (!psDBRollback(config->dbh)) {1947 psError(PS_ERR_UNKNOWN, false, "database error");1948 }1949 return false;1950 }1951 2004 1952 2005 psArrayAdd(list, list->n, run); … … 2461 2514 psString limitString = psDBGenerateLimitSQL(limit); 2462 2515 psStringAppend(&query, " %s", limitString); 2516 psStringSubstitute(&query,limitString,"@INNERLIMITS@"); 2463 2517 psFree(limitString); 2518 2519 } 2520 else { 2521 psStringSubstitute(&query,NULL,"@INNERLIMITS@"); 2464 2522 } 2465 2523 // fprintf(stderr,"%s",query); -
branches/meh_branches/ppstack_test/ippTools/src/difftoolConfig.c
r31435 r33415 283 283 psMetadataAddStr(definewarpwarpArgs, PS_LIST_TAIL, "-obs_mode", 0, "search by observation mode", NULL); 284 284 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-timediff", 0, "limit time difference between input and template", NAN); 285 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-mintimediff", 0, "limit time difference between input and template to be greater than this", NAN); 285 286 psMetadataAddBool(definewarpwarpArgs, PS_LIST_TAIL, "-backwards", 0, "Template comes after input?", false); 286 287 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-rotdiff", 0, "limit rotator difference between input and template", NAN); -
branches/meh_branches/ppstack_test/ippTools/src/disttool.c
r31564 r33415 34 34 static bool updaterunMode(pxConfig *config); 35 35 static bool revertrunMode(pxConfig *config); 36 static bool rerunMode(pxConfig *config);36 static bool startoverMode(pxConfig *config); 37 37 static bool pendingcomponentMode(pxConfig *config); 38 38 static bool addprocessedcomponentMode(pxConfig *config); 39 static bool updateprocessedcomponentMode(pxConfig *config); 40 static bool revertcomponentMode(pxConfig *config); 39 41 static bool revertcomponentMode(pxConfig *config); 40 42 static bool processedcomponentMode(pxConfig *config); … … 84 86 MODECASE(DISTTOOL_MODE_UPDATERUN, updaterunMode); 85 87 MODECASE(DISTTOOL_MODE_REVERTRUN, revertrunMode); 86 MODECASE(DISTTOOL_MODE_ RERUN, rerunMode);88 MODECASE(DISTTOOL_MODE_STARTOVER, startoverMode); 87 89 MODECASE(DISTTOOL_MODE_PENDINGCOMPONENT, pendingcomponentMode); 88 90 MODECASE(DISTTOOL_MODE_ADDPROCESSEDCOMPONENT, addprocessedcomponentMode); 91 MODECASE(DISTTOOL_MODE_UPDATEPROCESSEDCOMPONENT, updateprocessedcomponentMode); 89 92 MODECASE(DISTTOOL_MODE_PROCESSEDCOMPONENT, processedcomponentMode); 90 93 MODECASE(DISTTOOL_MODE_REVERTCOMPONENT, revertcomponentMode); … … 141 144 PXOPT_LOOKUP_BOOL(use_alternate, config->args, "-use_alternate", false); 142 145 PXOPT_LOOKUP_BOOL(no_magic, config->args, "-no_magic", false); 143 PXOPT_LOOKUP_BOOL(i_am_sure, config->args, "-i_am_sure", false);144 146 PXOPT_LOOKUP_STR(set_label, config->args, "-set_label", false, false); 145 147 PXOPT_LOOKUP_STR(set_data_group, config->args, "-set_data_group", false, false); … … 165 167 PXOPT_LOOKUP_STR(dist_group, config->args, "-dist_group", false, false); 166 168 167 // queuing no_magic runs can be quite dangerous. Require confirmation 168 if (no_magic && !pretend && !i_am_sure) { 169 psError(PXTOOLS_ERR_SYS, true, "-i_am_sure required to queue no_magic distribution runs"); 170 return false; 171 } 172 169 PXOPT_LOOKUP_BOOL(single, config->args, "-singlefilter", false); 170 PXOPT_LOOKUP_BOOL(rerun, config->args, "-rerun", false); 171 173 172 if (use_alternate) { 174 173 if (strcmp(stage, "raw")) { … … 361 360 } else if (!strcmp(stage, "sky")) { 362 361 magicRunType = "staticskyRun"; 363 query = pxDataGet("disttool_definebyquery_sky.sql"); 362 if (single) { 363 query = pxDataGet("disttool_definebyquery_sky_singlefilter.sql"); 364 } else { 365 query = pxDataGet("disttool_definebyquery_sky.sql"); 366 } 364 367 if (!query) { 365 368 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); … … 406 409 } 407 410 } 411 if (!rerun) { 412 psStringAppend(&query, " AND (distRun.dist_id IS NULL)"); 413 } 408 414 409 415 if (psListLength(where->list)) { … … 418 424 if (!no_magic) { 419 425 psStringAppend(&query, " AND (%s.magicked > 0)", magicRunType); 426 } 427 428 if (!strcmp(stage, "sky")) { 429 if (single) { 430 psStringAppend(&query, "\nGROUP BY sky_id HAVING count(stack_id) = 1"); 431 } else { 432 psStringAppend(&query, "\nGROUP BY sky_id HAVING count(stack_id) > 1"); 433 } 420 434 } 421 435 … … 636 650 } 637 651 638 static bool rerunMode(pxConfig *config)652 static bool startoverMode(pxConfig *config) 639 653 { 640 654 psMetadata *where = psMetadataAlloc(); … … 646 660 647 661 // require data_group or dist_id to be supplied 648 PXOPT_LOOKUP_STR(data_group, config->args, "-data_group", true, false);662 PXOPT_LOOKUP_STR(data_group, config->args, "-data_group", false, false); 649 663 PXOPT_LOOKUP_S64(dist_id, config->args, "-dist_id", false, false); 650 664 if (!data_group && !dist_id) { … … 771 785 PXOPT_COPY_S64(config->args, where, "-stage_id", "stage_id", "=="); 772 786 PXOPT_COPY_STR(config->args, where, "-state", "state", "=="); 773 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");787 pxAddLabelSearchArgs(config, where, "-label", "distRun.label", "=="); 774 788 775 789 PXOPT_COPY_S16(config->args, where, "-fault", "distRun.fault", "=="); … … 962 976 return true; 963 977 } 978 static bool updateprocessedcomponentMode(pxConfig *config) 979 { 980 981 // required values 982 PXOPT_LOOKUP_S64(dist_id, config->args, "-dist_id", true, false); 983 PXOPT_LOOKUP_STR(component, config->args, "-component", true, false); 984 985 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 986 PXOPT_LOOKUP_BOOL(clearfault, config->args, "-clearfault", false); 987 PXOPT_LOOKUP_S32(bytes, config->args, "-bytes", false, false); 988 PXOPT_LOOKUP_STR(md5sum, config->args, "-md5sum", false, false); 989 PXOPT_LOOKUP_STR(outdir, config->args, "-outdir", false, false); 990 PXOPT_LOOKUP_STR(name, config->args, "-name", false, false); 991 992 bool setfault = clearfault || fault; 993 994 if (!bytes && !md5sum && !outdir && !name && !setfault && !fault) { 995 psError(PS_ERR_UNKNOWN, true, "at least one of bytes md5sum outdir name fault or setfault is required"); 996 return false; 997 } 998 999 char *sep = ""; 1000 psString query = psStringCopy("UPDATE distComponent SET "); 1001 if (setfault) { 1002 psStringAppend(&query, "%s fault = %d", sep, fault ? 1 : 0); 1003 sep = ", "; 1004 } 1005 if (bytes) { 1006 psStringAppend(&query, "%s bytes = %d", sep, bytes); 1007 sep = ", "; 1008 } 1009 if (md5sum) { 1010 psStringAppend(&query, "%s md5sum = '%s'", sep, md5sum); 1011 sep = ", "; 1012 } 1013 if (outdir) { 1014 psStringAppend(&query, "%s outdir = '%s'", sep, outdir); 1015 sep = ", "; 1016 } 1017 if (name) { 1018 psStringAppend(&query, "%s name = '%s'", sep, name); 1019 sep = ", "; 1020 } 1021 1022 psStringAppend(&query, "\nWHERE dist_id = %"PRId64 " AND component = '%s'", 1023 dist_id, component); 1024 1025 if (!p_psDBRunQuery(config->dbh, query)) { 1026 psError(PS_ERR_UNKNOWN, false, "database error"); 1027 psFree(query); 1028 return false; 1029 } 1030 psFree(query); 1031 1032 return true; 1033 } 964 1034 965 1035 static bool toadvanceMode(pxConfig *config) … … 1041 1111 psMetadata *where = psMetadataAlloc(); 1042 1112 PXOPT_COPY_S64(config->args, where, "-dist_id", "dist_id", "=="); 1113 PXOPT_COPY_STR(config->args, where, "-component", "component", "=="); 1043 1114 1044 1115 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 2178 2249 psMetadata *where = psMetadataAlloc(); 2179 2250 PXOPT_COPY_S64(config->args, where, "-fs_id", "fs_id", "=="); 2251 PXOPT_COPY_S64(config->args, where, "-dist_id", "dist_id", "=="); 2180 2252 2181 2253 if (!psListLength(where->list)) { -
branches/meh_branches/ppstack_test/ippTools/src/disttool.h
r28938 r33415 28 28 DISTTOOL_MODE_UPDATERUN, 29 29 DISTTOOL_MODE_REVERTRUN, 30 DISTTOOL_MODE_ RERUN,30 DISTTOOL_MODE_STARTOVER, 31 31 DISTTOOL_MODE_PENDINGCOMPONENT, 32 32 DISTTOOL_MODE_ADDPROCESSEDCOMPONENT, 33 33 DISTTOOL_MODE_REVERTCOMPONENT, 34 34 DISTTOOL_MODE_PROCESSEDCOMPONENT, 35 DISTTOOL_MODE_UPDATEPROCESSEDCOMPONENT, 35 36 DISTTOOL_MODE_TOADVANCE, 36 37 DISTTOOL_MODE_PENDINGCLEANUP, -
branches/meh_branches/ppstack_test/ippTools/src/disttoolConfig.c
r30906 r33415 49 49 50 50 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-no_magic", 0, "magic is not needed", false); 51 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-i_am_sure", 0, "confirmation needed when -no_magic is supplied", false);52 51 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-use_alternate", 0, "use alternate inputs", false); 53 52 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_label", 0, "define label for run", NULL); … … 64 63 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", 0, "select by run label", NULL); 65 64 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-dist_group", 0, "select by dist_group", NULL); 66 65 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-singlefilter", 0, "select single filter runs (sky stage only)", false); 66 67 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-rerun", 0, "queue a new distRun even if one already exists", false); 67 68 psMetadataAddU64(definebyqueryArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 68 69 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 87 88 psMetadataAddS16(updaterunArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 88 89 89 // - rerun90 psMetadata * rerunArgs = psMetadataAlloc();91 psMetadataAddStr( rerunArgs, PS_LIST_TAIL, "-data_group", 0, "define data_group (required)", NULL);92 psMetadataAddS64( rerunArgs, PS_LIST_TAIL, "-dist_id", 0, "search by dist_id", 0);93 psMetadataAddStr( rerunArgs, PS_LIST_TAIL, "-stage", 0, "search by stage", NULL);94 psMetadataAddS64( rerunArgs, PS_LIST_TAIL, "-stage_id", 0, "search by stage_id", 0);95 psMetadataAddStr( rerunArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL);96 psMetadataAddStr( rerunArgs, PS_LIST_TAIL, "-set_label", 0, "define new label", NULL);97 psMetadataAddBool( rerunArgs, PS_LIST_TAIL, "-pretend", 0, "don't queue runs just display what would be selected", false);98 psMetadataAddU64( rerunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);99 psMetadataAddBool( rerunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);90 // -startover 91 psMetadata *startoverArgs = psMetadataAlloc(); 92 psMetadataAddStr(startoverArgs, PS_LIST_TAIL, "-data_group", 0, "define data_group", NULL); 93 psMetadataAddS64(startoverArgs, PS_LIST_TAIL, "-dist_id", 0, "search by dist_id", 0); 94 psMetadataAddStr(startoverArgs, PS_LIST_TAIL, "-stage", 0, "search by stage", NULL); 95 psMetadataAddS64(startoverArgs, PS_LIST_TAIL, "-stage_id", 0, "search by stage_id", 0); 96 psMetadataAddStr(startoverArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL); 97 psMetadataAddStr(startoverArgs, PS_LIST_TAIL, "-set_label", 0, "define new label", NULL); 98 psMetadataAddBool(startoverArgs, PS_LIST_TAIL, "-pretend", 0, "don't queue runs just display what would be selected", false); 99 psMetadataAddU64(startoverArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 100 psMetadataAddBool(startoverArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 100 101 101 102 // -revertrun … … 105 106 psMetadataAddS64(revertrunArgs, PS_LIST_TAIL, "-stage_id", 0, "define stage_id", 0); 106 107 psMetadataAddStr(revertrunArgs, PS_LIST_TAIL, "-state", 0, "define state", NULL); 107 psMetadataAddStr(revertrunArgs, PS_LIST_TAIL, "-label", 0, "define label", NULL);108 psMetadataAddStr(revertrunArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "define label", NULL); 108 109 psMetadataAddS16(revertrunArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 109 110 psMetadataAddBool(revertrunArgs, PS_LIST_TAIL, "-all", 0, "revert all faulted runs", NULL); … … 151 152 psMetadata *processedcomponentArgs = psMetadataAlloc(); 152 153 psMetadataAddS64(processedcomponentArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 154 psMetadataAddStr(processedcomponentArgs, PS_LIST_TAIL, "-component", 0, "define component", NULL); 153 155 psMetadataAddU64(processedcomponentArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 154 156 psMetadataAddBool(processedcomponentArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 157 158 // -updateprocessedcomponentArgs 159 psMetadata *updateprocessedcomponentArgs = psMetadataAlloc(); 160 psMetadataAddS64(updateprocessedcomponentArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 161 psMetadataAddStr(updateprocessedcomponentArgs, PS_LIST_TAIL, "-component", 0, "define component (required)", NULL); 162 psMetadataAddStr(updateprocessedcomponentArgs, PS_LIST_TAIL, "-outdir", 0, "define output directory", NULL); 163 psMetadataAddStr(updateprocessedcomponentArgs, PS_LIST_TAIL, "-name", 0, "define file name", NULL); 164 psMetadataAddS32(updateprocessedcomponentArgs, PS_LIST_TAIL, "-bytes", 0, "define file size", 0); 165 psMetadataAddStr(updateprocessedcomponentArgs, PS_LIST_TAIL, "-md5sum", 0, "define stage for bundle", NULL); 166 psMetadataAddS32(updateprocessedcomponentArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 167 psMetadataAddBool(updateprocessedcomponentArgs, PS_LIST_TAIL, "-clearfault", 0, "set fault to zero", false); 155 168 156 169 // -toadvance … … 180 193 psMetadata *updatefilesetArgs = psMetadataAlloc(); 181 194 psMetadataAddS64(updatefilesetArgs, PS_LIST_TAIL, "-fs_id", 0, "define fs_id", 0); 182 //psMetadataAddS64(updatefilesetArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0);195 psMetadataAddS64(updatefilesetArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 183 196 psMetadataAddStr(updatefilesetArgs, PS_LIST_TAIL, "-set_state",0, "new value for state", NULL); 184 197 psMetadataAddS32(updatefilesetArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); … … 343 356 PXOPT_ADD_MODE("-definebyquery", "define distribution run", DISTTOOL_MODE_DEFINEBYQUERY, definebyqueryArgs); 344 357 PXOPT_ADD_MODE("-updaterun", "update distRun", DISTTOOL_MODE_UPDATERUN, updaterunArgs); 345 PXOPT_ADD_MODE("- rerun", "reprocess a cleaned distribution run", DISTTOOL_MODE_RERUN, rerunArgs);358 PXOPT_ADD_MODE("-startover", "reprocess a cleaned distribution run", DISTTOOL_MODE_STARTOVER, startoverArgs); 346 359 PXOPT_ADD_MODE("-revertrun", "revert distRun.faults", DISTTOOL_MODE_REVERTRUN, revertrunArgs); 347 360 PXOPT_ADD_MODE("-pendingcomponent", "", DISTTOOL_MODE_PENDINGCOMPONENT, pendingcomponentArgs); 348 361 PXOPT_ADD_MODE("-addprocessedcomponent", "", DISTTOOL_MODE_ADDPROCESSEDCOMPONENT, addprocessedcomponentArgs); 362 PXOPT_ADD_MODE("-updateprocessedcomponent", "", DISTTOOL_MODE_UPDATEPROCESSEDCOMPONENT, updateprocessedcomponentArgs); 349 363 PXOPT_ADD_MODE("-revertcomponent", "revert faulted components", DISTTOOL_MODE_REVERTCOMPONENT, revertcomponentArgs); 350 364 PXOPT_ADD_MODE("-processedcomponent", "", DISTTOOL_MODE_PROCESSEDCOMPONENT, processedcomponentArgs); -
branches/meh_branches/ppstack_test/ippTools/src/faketool.c
r30907 r33415 335 335 PXOPT_COPY_F32(config->args, where, "-sun_angle_max", "sun_angle", "<"); 336 336 PXOPT_COPY_STR(config->args, where, "-label", "fakeRun.label", "=="); 337 PXOPT_COPY_STR(config->args, where, "-state", "fakeRun.state", "=="); 337 338 PXOPT_COPY_STR(config->args, where, "-data_group", "fakeRun.data_group", "=="); 338 339 PXOPT_COPY_STR(config->args, where, "-dist_group", "fakeRun.dist_group", "=="); … … 625 626 psMetadata *where = psMetadataAlloc(); 626 627 pxAddLabelSearchArgs (config, where, "-label", "fakeRun.label", "=="); 627 PXOPT_COPY_S64(config->args, where, "-fake_id", "fake _id", "==");628 PXOPT_COPY_S64(config->args, where, "-exp_id", " exp_id", "==");629 PXOPT_COPY_STR(config->args, where, "-exp_name", " exp_name", "==");630 PXOPT_COPY_STR(config->args, where, "-inst", " camera", "==");631 PXOPT_COPY_STR(config->args, where, "-telescope", " telescope", "==");628 PXOPT_COPY_S64(config->args, where, "-fake_id", "fakeRun.fake_id", "=="); 629 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); 630 PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "=="); 631 PXOPT_COPY_STR(config->args, where, "-inst", "rawExp..camera", "=="); 632 PXOPT_COPY_STR(config->args, where, "-telescope", "rawExp.telescope", "=="); 632 633 PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "dateobs", ">="); 633 634 PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "dateobs", "<="); -
branches/meh_branches/ppstack_test/ippTools/src/flatcorr.c
r31375 r33415 666 666 "cam", 667 667 row->cam_id, 668 0, 668 669 row->workdir, 669 670 row->reduction, -
branches/meh_branches/ppstack_test/ippTools/src/laptool.c
r31827 r33415 30 30 static bool updateexpMode(pxConfig *config); 31 31 32 static bool diffcheckMode(pxConfig *config); 33 32 34 static bool inactiveexpMode(pxConfig *config); 33 35 … … 62 64 MODECASE(LAPTOOL_MODE_UPDATEEXP, updateexpMode); 63 65 66 MODECASE(LAPTOOL_MODE_DIFFCHECK, diffcheckMode); 67 64 68 MODECASE(LAPTOOL_MODE_INACTIVEEXP, inactiveexpMode); 65 69 default: … … 276 280 PXOPT_COPY_STR(config->args, where, "-filter", "rawExp.filter", "=="); 277 281 282 psMetadata *chipWhere = psMetadataAlloc(); 283 PXOPT_COPY_S64(config->args, chipWhere, "-seq_id", "lapRun.seq_id", "=="); 284 278 285 // This seems unnecessarily clunky. 279 286 if (!all_obsmode) { … … 296 303 } 297 304 305 psString chipWhereClause = psDBGenerateWhereConditionSQL(chipWhere,NULL); 298 306 if (whereClause) { 299 307 psStringSubstitute(&query,whereClause,"@WHERE@"); 300 308 } 309 if (chipWhereClause) { 310 psStringSubstitute(&query,chipWhereClause,"@CHIPWHERE@"); 311 } 301 312 psFree(where); 313 psFree(chipWhere); 302 314 303 315 // Fetch exposures … … 378 390 379 391 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 392 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 380 393 381 394 psMetadata *where = psMetadataAlloc(); … … 399 412 psStringAppend(&query, " WHERE %s", whereClause); 400 413 psFree(whereClause); 414 } 415 if (limit) { 416 psString limitString = psDBGenerateLimitSQL(limit); 417 psStringAppend(&query, "\n %s", limitString); 418 psFree(limitString); 401 419 } 402 420 … … 755 773 } 756 774 757 758 775 static bool diffcheckMode(pxConfig *config) 776 { 777 PS_ASSERT_PTR_NON_NULL(config, false); 778 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 779 780 psMetadata *where = psMetadataAlloc(); 781 PXOPT_COPY_S64(config->args, where, "-lap_id", "lapRun.lap_id", "=="); 782 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 783 PXOPT_COPY_S64(config->args, where, "-chip_id", "chip_id", "=="); 784 PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "=="); 785 PXOPT_COPY_S64(config->args, where, "-seq_id", "seq_id", "=="); 786 PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id", "=="); 787 788 psString query = pxDataGet("laptool_WSdiff_check.sql"); 789 if (!query) { 790 psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement"); 791 return(false); 792 } 793 794 if (psListLength(where->list)) { 795 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 796 psStringPrepend(&whereClause, "\n AND "); 797 psStringSubstitute(&query,whereClause,"@WHERE@"); 798 psFree(whereClause); 799 } 800 801 if (!p_psDBRunQuery(config->dbh, query)) { 802 psError(PS_ERR_UNKNOWN, false, "database error"); 803 psFree(query); 804 return false; 805 } 806 psFree(query); 807 808 psArray *output = p_psDBFetchResult(config->dbh); 809 if (!output) { 810 psErrorCode err = psErrorCodeLast(); 811 switch (err) { 812 case PS_ERR_DB_CLIENT: 813 psError(PXTOOLS_ERR_SYS, false, "database error"); 814 case PS_ERR_DB_SERVER: 815 psError(PXTOOLS_ERR_PROG, false, "database error"); 816 default: 817 psError(PXTOOLS_ERR_PROG, false, "unknown error %d",err); 818 } 819 820 return false; 821 } 822 if (!psArrayLength(output)) { 823 psTrace("laptool", PS_LOG_INFO, "no rows found"); 824 psFree(output); 825 return true; 826 } 827 828 if (psArrayLength(output)) { 829 if (!ippdbPrintMetadatas(stdout, output, "lapRunWarpStackSkycells", !simple)) { 830 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 831 psFree(output); 832 return false; 833 } 834 } 835 836 psFree(output); 837 return(true); 838 } 759 839 760 840 static bool inactiveexpMode(pxConfig *config) -
branches/meh_branches/ppstack_test/ippTools/src/laptool.h
r31435 r33415 19 19 LAPTOOL_MODE_STACKS, 20 20 LAPTOOL_MODE_UPDATEEXP, 21 LAPTOOL_MODE_DIFFCHECK, 21 22 LAPTOOL_MODE_INACTIVEEXP 22 23 } laptoolMode; -
branches/meh_branches/ppstack_test/ippTools/src/laptoolConfig.c
r31528 r33415 74 74 ADD_OPT(Str, pendingrunArgs, "-fault", "search by LAP run fault", NULL); 75 75 ADD_OPT(Bool,pendingrunArgs, "-simple", "use the simple output format", false); 76 ADD_OPT(U64, pendingrunArgs, "-limit", "limit result set to N items", 0); 76 77 77 78 // -listrun … … 86 87 ADD_OPT(Str, listrunArgs, "-fault", "search by LAP run fault", NULL); 87 88 ADD_OPT(Bool,listrunArgs, "-simple", "use the simple output format", false); 89 ADD_OPT(U64, listrunArgs, "-limit", "limit result set to N items", 0); 88 90 89 91 // -updaterun … … 132 134 ADD_OPT(Bool,updateexpArgs, "-inactive", "set this exposure to active", 0); 133 135 136 // -diffcheck 137 psMetadata *diffcheckArgs = psMetadataAlloc(); 138 ADD_OPT(S64, diffcheckArgs, "-lap_id", "search by lap run ID", 0); 139 ADD_OPT(S64, diffcheckArgs, "-exp_id", "search by exposure ID", 0); 140 ADD_OPT(S64, diffcheckArgs, "-chip_id", "search by chip ID", 0); 141 ADD_OPT(S64, diffcheckArgs, "-warp_id", "search by warp ID", 0); 142 ADD_OPT(S64, diffcheckArgs, "-seq_id", "search by lap sequence ID", 0); 143 ADD_OPT(Str, diffcheckArgs, "-skycell_id", "search by skycell ID", 0); 144 ADD_OPT(Bool, diffcheckArgs, "-simple", "use simple output format", 0); 145 134 146 // -inactiveexp 135 147 psMetadata *inactiveexpArgs = psMetadataAlloc(); … … 152 164 PXOPT_ADD_MODE("-stacks", "", LAPTOOL_MODE_STACKS, stacksArgs); 153 165 PXOPT_ADD_MODE("-updateexp", "", LAPTOOL_MODE_UPDATEEXP, updateexpArgs); 166 PXOPT_ADD_MODE("-diffcheck", "", LAPTOOL_MODE_DIFFCHECK, diffcheckArgs); 154 167 PXOPT_ADD_MODE("-inactiveexp", "", LAPTOOL_MODE_INACTIVEEXP, inactiveexpArgs); 155 168 -
branches/meh_branches/ppstack_test/ippTools/src/magicdstool.c
r30854 r33415 53 53 54 54 static bool setmagicDSRunState(pxConfig *config, psS64 magic_id, psString extraSetString, psMetadata *where, const char *state); 55 static bool validDSRunState(const char *state); 55 56 56 57 # define MODECASE(caseName, func) \ … … 350 351 PXOPT_LOOKUP_STR(stage, config->args, "-stage", true, false); 351 352 PXOPT_LOOKUP_STR(workdir, config->args, "-workdir", true, false); 353 PXOPT_LOOKUP_STR(set_label, config->args, "-set_label", true, false); 352 354 353 355 // Optional 354 356 PXOPT_LOOKUP_STR(recoveryroot, config->args, "-recoveryroot", false, false); 355 357 PXOPT_LOOKUP_BOOL(noreplace, config->args, "-noreplace", false); 356 PXOPT_LOOKUP_STR(set_label, config->args, "-set_label", false, false);357 358 PXOPT_LOOKUP_STR(set_data_group, config->args, "-set_data_group", false, false); 358 359 PXOPT_LOOKUP_STR(note, config->args, "-set_note", false, false); … … 374 375 pxAddLabelSearchArgs (config, where, "-magic_label", "magicRun.label", "=="); // define magic label 375 376 psString labelName = NULL; // Name of label 376 psStringAppend(&labelName, "%sRun.label", stage); 377 if (strcmp(stage, "camera")) { 378 psStringAppend(&labelName, "%sRun.label", stage); 379 } else { 380 psStringAppend(&labelName, "camRun.label"); 381 } 377 382 pxAddLabelSearchArgs (config, where, "-stage_label", labelName, "=="); // define stageRun label 378 383 psFree(labelName); … … 392 397 break; 393 398 case IPP_STAGE_CAMERA: 399 query = pxDataGet("magicdstool_definecopy_camera.sql"); 400 break; 394 401 case IPP_STAGE_DIFF: 395 402 case IPP_STAGE_FAKE: … … 1206 1213 1207 1214 psMetadata *where = psMetadataAlloc(); 1208 // new state (required1209 PXOPT_LOOKUP_STR(new_state, config->args, "-set_state", true, false);1215 // new state 1216 PXOPT_LOOKUP_STR(new_state, config->args, "-set_state", false, false); 1210 1217 // old state (required) 1211 1218 PXOPT_LOOKUP_STR(state, config->args, "-state", true, false); … … 1231 1238 if (!strcmp(state, "failed_revert")) { 1232 1239 new_state = "new"; 1240 } else if (!strcmp(state, "failed_revert_ud")) { 1241 new_state = "update"; 1233 1242 } else if (!strcmp(state, "failed_cleanup")) { 1234 1243 new_state = "goto_cleaned"; … … 1237 1246 return false; 1238 1247 } 1248 } else { 1249 if (!validDSRunState(new_state)) { 1250 psError(PS_ERR_UNKNOWN, true, "unexpected value for new state: %s", new_state); 1251 return false; 1252 } 1239 1253 } 1240 1254 if (!p_psDBRunQueryF(config->dbh, query, new_state)) { 1241 psError(PS_ERR_UNKNOWN, false, "failed to revert");1255 psError(PS_ERR_UNKNOWN, false, "failed to clear state faults"); 1242 1256 psFree(query); 1243 1257 return false; … … 1397 1411 (strcmp(state, "wait") == 0) || 1398 1412 (strcmp(state, "failed_revert") == 0) || 1413 (strcmp(state, "failed_revert_ud") == 0) || 1399 1414 (strcmp(state, "error_cleaned") == 0) || 1400 1415 (strcmp(state, "restored") == 0) || -
branches/meh_branches/ppstack_test/ippTools/src/magicdstoolConfig.c
r30854 r33415 79 79 psMetadataAddStr(definecopyArgs, PS_LIST_TAIL, "-recoveryroot", 0, "define recovery directory", NULL); 80 80 psMetadataAddBool(definecopyArgs, PS_LIST_TAIL, "-noreplace", 0, "do not replace input files with the destreaked versions", false); 81 psMetadataAddStr(definecopyArgs, PS_LIST_TAIL, "-set_label", 0, "define label ", NULL);81 psMetadataAddStr(definecopyArgs, PS_LIST_TAIL, "-set_label", 0, "define label (required)", NULL); 82 82 psMetadataAddStr(definecopyArgs, PS_LIST_TAIL, "-set_data_group", 0, "define data_group", NULL); 83 83 psMetadataAddStr(definecopyArgs, PS_LIST_TAIL, "-set_note", 0, "define note", NULL); … … 163 163 // -clearstatefaults 164 164 psMetadata *clearstatefaultsArgs = psMetadataAlloc(); 165 psMetadataAddStr(clearstatefaultsArgs, PS_LIST_TAIL, "-set_state", 0, "new value for state (required)", NULL);165 psMetadataAddStr(clearstatefaultsArgs, PS_LIST_TAIL, "-set_state", 0, "new value for state", NULL); 166 166 psMetadataAddStr(clearstatefaultsArgs, PS_LIST_TAIL, "-state", 0, "search by state (required)", NULL); 167 167 psMetadataAddS64(clearstatefaultsArgs, PS_LIST_TAIL, "-magic_ds_id", 0, "search by magictool de-streak ID", 0); -
branches/meh_branches/ppstack_test/ippTools/src/magictool.c
- Property svn:mergeinfo changed
r31659 r33415 131 131 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 132 132 PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false); 133 133 PXOPT_LOOKUP_BOOL(multidiff, config->args, "-multidiff", false); 134 134 psMetadata *diffWhere = psMetadataAlloc(); // WHERE conditions for diffRuns 135 135 PXOPT_COPY_STR(config->args, diffWhere, "-diff_label", "diffRun.label", "=="); … … 142 142 // Get list of exposures ready to magic 143 143 { 144 psString query = pxDataGet("magictool_definebyquery_select.sql"); 144 psString query; 145 if (multidiff) { 146 query = pxDataGet("magictool_definebyquery_select_multidiff.sql"); 147 } 148 else { 149 query = pxDataGet("magictool_definebyquery_select.sql"); 150 } 145 151 if (!query) { 146 152 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); -
branches/meh_branches/ppstack_test/ippTools/src/magictoolConfig.c
r31605 r33415 61 61 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-available", 0, "process what's immediately available?", false); 62 62 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-rerun", 0, "generate new run even if existing?", false); 63 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-multidiff", 0, "allow multiple diffs to be magicked with the same label", false); 63 64 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 64 65 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-pretend", 0, "list results but do not queue", false); -
branches/meh_branches/ppstack_test/ippTools/src/minidvodbtool.c
r29528 r33415 89 89 psMetadata *where = psMetadataAlloc(); 90 90 pxcamGetSearchArgs (config, where); 91 PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbRun.minidvodb Run_id", "==");91 PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbRun.minidvodb_id", "=="); 92 92 pxAddLabelSearchArgs (config, where, "-minidvodb_group", "minidvodbRun.minidvodb_group", "=="); // define using camRun label 93 93 -
branches/meh_branches/ppstack_test/ippTools/src/pstamptool.c
r31517 r33415 56 56 static bool revertdependentMode(pxConfig *config); 57 57 static bool getwebrequestnumMode(pxConfig *config); 58 static bool addfileMode(pxConfig *config); 59 static bool listfileMode(pxConfig *config); 60 static bool deletefileMode(pxConfig *config); 58 61 59 62 # define MODECASE(caseName, func) \ … … 103 106 MODECASE(PSTAMPTOOL_MODE_REVERTDEPENDENT, revertdependentMode); 104 107 MODECASE(PSTAMPTOOL_MODE_GETWEBREQUESTNUM, getwebrequestnumMode); 108 MODECASE(PSTAMPTOOL_MODE_ADDFILE, addfileMode); 109 MODECASE(PSTAMPTOOL_MODE_LISTFILE, listfileMode); 110 MODECASE(PSTAMPTOOL_MODE_DELETEFILE, deletefileMode); 105 111 default: 106 112 psAbort("invalid option (this should not happen)"); … … 173 179 174 180 if (psListLength(where->list)) { 175 psString whereClause = psDBGenerateWhere SQL(where, NULL);176 psStringAppend(&query, " %s", whereClause);181 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 182 psStringAppend(&query, " AND %s", whereClause); 177 183 psFree(whereClause); 178 184 } … … 698 704 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 699 705 PXOPT_LOOKUP_S64(exp_id, config->args, "-exp_id", false, false); 700 PXOPT_LOOKUP_S64(options, config->args, "-options", false, false);706 PXOPT_LOOKUP_S64(options, config->args, "-options", false, false); 701 707 PXOPT_LOOKUP_S64(dep_id, config->args, "-dep_id", false, false); 708 PXOPT_LOOKUP_S64(parent_id, config->args, "-parent_id", false, false); 709 PXOPT_LOOKUP_BOOL(is_parent, config->args, "-is_parent", false); 702 710 703 711 // unless the job is being inserted with stop state require outputBase … … 710 718 if (!strcmp(job_type, "get_image") || !strcmp(job_type, "detect_query") || !strcmp(job_type, "none")) { 711 719 stampJob = false; 720 } else if (!strcmp(job_type, "child")) { 721 // job_type child's only action is to resolve a dependent 722 // XXX: IS this necessary? 723 if (!dep_id) { 724 psError(PS_ERR_UNKNOWN, true, "dep_id required for child job\n"); 725 return false; 726 } 727 if (is_parent) { 728 psError(PS_ERR_UNKNOWN, true, "job type child can not be a parent job\n"); 729 return false; 730 } 731 stampJob = false; 732 } else if (!strcmp(job_type, "mosaic")) { 733 stampJob = false; 734 is_parent = true; 712 735 } else if (!strcmp(job_type, "stamp")) { 713 736 stampJob = true; … … 717 740 } 718 741 if (!pstampJobInsert(config->dbh, 719 0, // job_id742 0, // job_id 720 743 req_id, 721 744 rownum, … … 727 750 options, 728 751 dep_id, 729 0 // fault_count 752 0, // fault_count 753 parent_id, 754 is_parent 730 755 )) { 731 756 psError(PS_ERR_UNKNOWN, false, "database error"); … … 755 780 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 756 781 PXOPT_COPY_S64(config->args, where, "-dep_id", "dep_id", "=="); 782 PXOPT_COPY_STR(config->args, where, "-jobType", "jobType", "=="); 757 783 PXOPT_COPY_S64(config->args, where, "-fault", "fault", "=="); 758 784 … … 836 862 837 863 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 864 psString whereStr = NULL; 838 865 if (psListLength(where->list)) { 839 866 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 840 psStringAppend(& query, "AND %s", whereClause);867 psStringAppend(&whereStr, "\n AND %s", whereClause); 841 868 psFree(whereClause); 869 } else { 870 psStringAppend(&whereStr, "%s", ""); 842 871 } 843 872 psFree(where); … … 852 881 } 853 882 854 if (!p_psDBRunQuery(config->dbh, query)) { 855 psError(PS_ERR_UNKNOWN, false, "database error"); 856 psFree(query); 857 return false; 858 } 883 if (!p_psDBRunQueryF(config->dbh, query, whereStr, whereStr)) { 884 psError(PS_ERR_UNKNOWN, false, "database error"); 885 psFree(whereStr); 886 psFree(query); 887 return false; 888 } 889 psFree(whereStr); 859 890 psFree(query); 860 891 … … 950 981 951 982 PXOPT_LOOKUP_S32(fault, config->args, "-set_fault", true, false); 983 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 952 984 953 985 psMetadata *where = psMetadataAlloc(); … … 980 1012 psFree(where); 981 1013 982 if (!p_psDBRunQueryF(config->dbh, query, fault, fault )) {1014 if (!p_psDBRunQueryF(config->dbh, query, fault, fault, state)) { 983 1015 psError(PS_ERR_UNKNOWN, false, "database error"); 984 1016 psFree(query); … … 1476 1508 return true; 1477 1509 } 1510 1511 static bool addfileMode(pxConfig *config) 1512 { 1513 PS_ASSERT_PTR_NON_NULL(config, false); 1514 1515 PXOPT_LOOKUP_S64(job_id, config->args, "-job_id", true, false); 1516 PXOPT_LOOKUP_STR(path, config->args, "-path", true, false); 1517 1518 if (!pstampFileInsert(config->dbh, 1519 0, // file_id 1520 job_id, 1521 path 1522 )) { 1523 psError(PS_ERR_UNKNOWN, false, "database error"); 1524 return false; 1525 } 1526 1527 psU64 affected = psDBAffectedRows(config->dbh); 1528 if (affected != 1) { 1529 psError(PS_ERR_UNKNOWN, false, 1530 "should have affected one row but %" PRIu64 " rows were modified", 1531 affected); 1532 return false; 1533 } 1534 1535 psS64 file_id = psDBLastInsertID(config->dbh); 1536 printf("%" PRId64 "\n", file_id); 1537 1538 return true; 1539 } 1540 1541 static bool listfileMode(pxConfig *config) 1542 { 1543 PS_ASSERT_PTR_NON_NULL(config, false); 1544 1545 psMetadata *where = psMetadataAlloc(); 1546 PXOPT_COPY_S64(config->args, where, "-job_id", "job_id", "=="); 1547 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 1548 PXOPT_COPY_S64(config->args, where, "-file_id", "file_id", "=="); 1549 1550 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1551 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1552 1553 if (!psListLength(where->list)) { 1554 fprintf(stderr, "search arguments are required\n"); 1555 exit (1); 1556 } 1557 1558 psString query = pxDataGet("pstamptool_listfile.sql"); 1559 if (!query) { 1560 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1561 return false; 1562 } 1563 1564 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 1565 if (psListLength(where->list)) { 1566 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1567 psStringAppend(&query, " WHERE %s", whereClause); 1568 psFree(whereClause); 1569 } 1570 psFree(where); 1571 1572 // treat limit == 0 as "no limit" 1573 if (limit) { 1574 psString limitString = psDBGenerateLimitSQL(limit); 1575 psStringAppend(&query, " %s", limitString); 1576 psFree(limitString); 1577 } 1578 1579 if (!p_psDBRunQuery(config->dbh, query)) { 1580 psError(PS_ERR_UNKNOWN, false, "database error"); 1581 psFree(query); 1582 return false; 1583 } 1584 psFree(query); 1585 1586 psArray *output = p_psDBFetchResult(config->dbh); 1587 if (!output) { 1588 psError(PS_ERR_UNKNOWN, false, "database error"); 1589 return false; 1590 } 1591 if (!psArrayLength(output)) { 1592 psTrace("pstamptool", PS_LOG_INFO, "no rows found"); 1593 psFree(output); 1594 return true; 1595 } 1596 1597 // negative simple so the default is true 1598 if (!ippdbPrintMetadatas(stdout, output, "pstampFile", !simple)) { 1599 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1600 psFree(output); 1601 return false; 1602 } 1603 1604 psFree(output); 1605 1606 return true; 1607 } 1608 1609 static bool deletefileMode(pxConfig *config) 1610 { 1611 PS_ASSERT_PTR_NON_NULL(config, false); 1612 1613 PXOPT_LOOKUP_S64(job_id, config->args, "-job_id", true, false); 1614 1615 psString query = NULL; 1616 psStringAppend(&query, "DELETE FROM pstampFile WHERE job_id = %" PRId64, job_id); 1617 1618 if (!p_psDBRunQuery(config->dbh, query)) { 1619 psError(PS_ERR_UNKNOWN, false, "database error"); 1620 psFree(query); 1621 return false; 1622 } 1623 psFree(query); 1624 1625 psU64 affected = psDBAffectedRows(config->dbh); 1626 psLogMsg("pstamptool", PS_LOG_INFO, "Deleted %" PRIu64 " rows from pstampFile", affected); 1627 1628 return true; 1629 } -
branches/meh_branches/ppstack_test/ippTools/src/pstamptool.h
r29248 r33415 50 50 PSTAMPTOOL_MODE_REVERTDEPENDENT, 51 51 PSTAMPTOOL_MODE_GETWEBREQUESTNUM, 52 PSTAMPTOOL_MODE_ADDFILE, 53 PSTAMPTOOL_MODE_LISTFILE, 54 PSTAMPTOOL_MODE_DELETEFILE, 52 55 } pstamptoolMode; 53 56 -
branches/meh_branches/ppstack_test/ippTools/src/pstamptoolConfig.c
r30543 r33415 144 144 psMetadataAddS64(addjobArgs, PS_LIST_TAIL, "-options", 0, "define options", 0); 145 145 psMetadataAddS64(addjobArgs, PS_LIST_TAIL, "-dep_id", 0, "define job dep_id", 0); 146 psMetadataAddS64(addjobArgs, PS_LIST_TAIL, "-parent_id", 0, "define parent's job_id", 0); 147 psMetadataAddBool(addjobArgs, PS_LIST_TAIL, "-is_parent", 0, "define whether job has children", false); 146 148 psMetadataAddS16(addjobArgs, PS_LIST_TAIL, "-fault", 0, "define job result", 0); 147 149 … … 152 154 psMetadataAddS64(listjobArgs, PS_LIST_TAIL, "-dep_id", 0, "select by dependent ID", 0); 153 155 psMetadataAddS16(listjobArgs, PS_LIST_TAIL, "-fault", 0, "select by fault", 0); 156 psMetadataAddStr(listjobArgs, PS_LIST_TAIL, "-jobType", 0, "select by jobType", 0); 154 157 psMetadataAddU64(listjobArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 155 158 psMetadataAddBool(listjobArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 186 189 psMetadataAddS32(stopdependentjobArgs, PS_LIST_TAIL, "-fault_count", 0, "select by fault_count (>=)", 0); 187 190 psMetadataAddS16(stopdependentjobArgs, PS_LIST_TAIL, "-set_fault", 0, "new fault value for job and dependent (required)", 0); 191 psMetadataAddStr(stopdependentjobArgs, PS_LIST_TAIL, "-set_state", 0, "new pstampDependent.state", "new"); 188 192 psMetadataAddStr(stopdependentjobArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by pstampJob label (LIKE comparision)", NULL); 189 193 psMetadataAddU64(stopdependentjobArgs, PS_LIST_TAIL, "-limit", 0, "not used", 0); … … 274 278 psMetadata *modes = psMetadataAlloc(); 275 279 280 // -addfile 281 psMetadata *addfileArgs = psMetadataAlloc(); 282 psMetadataAddS64(addfileArgs, PS_LIST_TAIL, "-job_id", 0, "define job ID for file (required)", 0); 283 psMetadataAddStr(addfileArgs, PS_LIST_TAIL, "-path", 0, "define path for file (required)", NULL); 284 285 // -listfile 286 psMetadata *listfileArgs = psMetadataAlloc(); 287 psMetadataAddS64(listfileArgs, PS_LIST_TAIL, "-file_id", 0, "select by file ID", 0); 288 psMetadataAddS64(listfileArgs, PS_LIST_TAIL, "-job_id", 0, "select by job ID", 0); 289 psMetadataAddS64(listfileArgs, PS_LIST_TAIL, "-req_id", 0, "select by request ID", 0); 290 psMetadataAddU64(listfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 291 psMetadataAddBool(listfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 292 293 // -deletefile 294 psMetadata *deletefileArgs = psMetadataAlloc(); 295 psMetadataAddS64(deletefileArgs, PS_LIST_TAIL, "-job_id", 0, "select by job ID (required)", 0); 296 276 297 PXOPT_ADD_MODE("-addreq", "", PSTAMPTOOL_MODE_ADDREQ, addreqArgs); 277 298 PXOPT_ADD_MODE("-pendingreq", "", PSTAMPTOOL_MODE_PENDINGREQ, pendingreqArgs); … … 302 323 PXOPT_ADD_MODE("-project", "", PSTAMPTOOL_MODE_PROJECT, projectArgs); 303 324 PXOPT_ADD_MODE("-getwebrequestnum","", PSTAMPTOOL_MODE_GETWEBREQUESTNUM, getwebrequestnumArgs); 325 PXOPT_ADD_MODE("-addfile", "", PSTAMPTOOL_MODE_ADDFILE, addfileArgs); 326 PXOPT_ADD_MODE("-listfile", "", PSTAMPTOOL_MODE_LISTFILE, listfileArgs); 327 PXOPT_ADD_MODE("-deletefile", "", PSTAMPTOOL_MODE_DELETEFILE, deletefileArgs); 304 328 305 329 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) { -
branches/meh_branches/ppstack_test/ippTools/src/pxadd.c
r31375 r33415 131 131 char *stage, 132 132 psS64 stage_id, 133 psS32 stage_extra1, 133 134 char *workdir, 134 135 char *reduction, … … 159 160 psMemSetPersistent(query, true); 160 161 } 162 if (strcmp(stage,"staticsky_multi") == 0) { 163 query = pxDataGet("addtool_queue_sky_id_multi.sql"); 164 psMemSetPersistent(query, true); 165 } 161 166 if (!query) { 162 167 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); … … 170 175 // on 32/64 171 176 if (!p_psDBRunQueryF(config->dbh, query, 177 stage_extra1 ? stage_extra1 : 0, 172 178 "new", // state 173 179 workdir ? workdir : "NULL", -
branches/meh_branches/ppstack_test/ippTools/src/pxadd.h
r31375 r33415 33 33 char *stage, 34 34 psS64 stage_id, 35 psS32 stage_extra1, 35 36 char *workdir, 36 37 char *reduction, -
branches/meh_branches/ppstack_test/ippTools/src/pxchip.c
r28258 r33415 71 71 psMetadataAddF32(md, PS_LIST_TAIL, "-sun_angle_min", 0, "search by min solar angle", NAN); 72 72 psMetadataAddF32(md, PS_LIST_TAIL, "-sun_angle_max", 0, "search by max solar angle", NAN); 73 psMetadataAddStr(md, PS_LIST_TAIL, "-object", 0, "search by exposure object ", NULL);73 psMetadataAddStr(md, PS_LIST_TAIL, "-object", 0, "search by exposure object (LIKE comparison)", NULL); 74 74 psMetadataAddStr(md, PS_LIST_TAIL, "-comment", 0, "search by comment field (LIKE comparison)", NULL); 75 75 psMetadataAddStr(md, PS_LIST_TAIL, "-obs_mode", 0, "search by observation mode", NULL); -
branches/meh_branches/ppstack_test/ippTools/src/pxtools.c
r30729 r33415 35 35 if (!strcmp(state, "drop")) return true; 36 36 if (!strcmp(state, "wait")) return true; 37 if (!strcmp(state, "keep")) return true; 37 38 if (!strcmp(state, "goto_cleaned")) return true; 38 39 if (!strcmp(state, "error_cleaned")) return true; -
branches/meh_branches/ppstack_test/ippTools/src/regtool.c
r31938 r33415 268 268 } 269 269 } 270 char *is_stareim = strchr(psMetadataLookupStr(NULL,row,"exp_name"),'a'); 271 if (is_stareim) { 272 continue; 273 } 270 274 271 275 if ((psMetadataLookupS32(NULL,row,"is_downloaded") != 1)|| … … 386 390 } 387 391 } 392 char *is_stareim = strchr(psMetadataLookupStr(NULL,row,"exp_name"),'a'); 393 if (is_stareim) { 394 continue; 395 } 396 388 397 389 398 bool status = false; … … 882 891 PXOPT_LOOKUP_STR(set_md5sum, config->args, "-set_md5sum", false, false); 883 892 PXOPT_LOOKUP_STR(set_state, config->args, "-set_state", false, false); 893 PXOPT_LOOKUP_BOOL(set_ignored, config->args, "-set_ignored", false); 894 PXOPT_LOOKUP_BOOL(clear_ignored, config->args, "-clear_ignored", false); 884 895 PXOPT_LOOKUP_STR(hostname, config->args, "-hostname", false, false); 885 896 886 if ((fault == INT16_MAX) && (burntool_state == INT16_MAX) && !set_state ) {887 psError(PS_ERR_UNKNOWN, false, " one of -fault or -burntool_stateor -set_state must be selected");897 if ((fault == INT16_MAX) && (burntool_state == INT16_MAX) && !set_state && !set_ignored && !clear_ignored) { 898 psError(PS_ERR_UNKNOWN, false, "at least one of -fault or -burntool_state -set_ignored -clear_ignored or -set_state must be selected"); 888 899 return false; 889 900 } 890 901 if ((fault != INT16_MAX) && (burntool_state != INT16_MAX)) { 891 902 psError(PS_ERR_UNKNOWN, false, "only one of -fault or -burntool_state must be selected"); 903 return false; 904 } 905 if (set_ignored && clear_ignored) { 906 psError(PS_ERR_UNKNOWN, true, "only one of -set_ignored or -clear_ignored may be selected"); 892 907 return false; 893 908 } … … 898 913 899 914 if (fault != INT16_MAX) { 900 // this is fairly dangerous : can set all if the where is not set... 915 // this is fairly dangerous : can set all if the where is not set... but since exp_id and class_id 916 // were required above this is safe 901 917 if (!pxSetFaultCode(config->dbh, "rawImfile", where, fault, 0)) { 902 918 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); … … 930 946 } 931 947 psStringAppend(&setvalues,"rawImfile.data_state = '%s'",set_state); 948 } 949 if (set_ignored) { 950 if (setvalues) { 951 psStringAppend(&setvalues,","); 952 } 953 psStringAppend(&setvalues,"rawImfile.ignored = 1"); 954 } 955 if (clear_ignored) { 956 if (setvalues) { 957 psStringAppend(&setvalues,","); 958 } 959 psStringAppend(&setvalues,"rawImfile.ignored = 0"); 932 960 } 933 961 if (hostname) { -
branches/meh_branches/ppstack_test/ippTools/src/regtoolConfig.c
r31938 r33415 194 194 ADD_OPT(Str, updateprocessedimfileArgs, "-set_md5sum", "set md5sum", NULL); 195 195 ADD_OPT(Str, updateprocessedimfileArgs, "-set_state", "set data state", NULL); 196 psMetadataAddBool(updateprocessedimfileArgs, PS_LIST_TAIL, "-set_ignored", 0, "set imfile to be ignored for processing", false); 197 psMetadataAddBool(updateprocessedimfileArgs, PS_LIST_TAIL, "-clear_ignored", 0, "set imfile to not be ignored for processing", false); 196 198 197 199 -
branches/meh_branches/ppstack_test/ippTools/src/staticskytool.c
r31690 r33415 38 38 static bool resultMode(pxConfig *config); 39 39 static bool revertMode(pxConfig *config); 40 static bool updateresult (pxConfig *config);40 static bool updateresultMode(pxConfig *config); 41 41 static bool exportrunMode(pxConfig *config); 42 42 static bool importrunMode(pxConfig *config); 43 44 static bool defineskycalrunMode(pxConfig *config); 45 static bool updateskycalrunMode(pxConfig *config); 46 static bool pendingskycalrunMode(pxConfig *config); 47 static bool addskycalresultMode(pxConfig *config); 48 static bool skycalresultMode(pxConfig *config); 49 static bool revertskycalresultMode(pxConfig *config); 50 static bool updateskycalresultMode(pxConfig *config); 43 51 44 52 static bool setstaticskyRunState(pxConfig *config, psS64 sky_id, const char *state); … … 69 77 MODECASE(STATICSKYTOOL_MODE_RESULT, resultMode); 70 78 MODECASE(STATICSKYTOOL_MODE_REVERT, revertMode); 71 MODECASE(STATICSKYTOOL_MODE_UPDATERESULT, updateresult );79 MODECASE(STATICSKYTOOL_MODE_UPDATERESULT, updateresultMode); 72 80 MODECASE(STATICSKYTOOL_MODE_EXPORTRUN, exportrunMode); 73 81 MODECASE(STATICSKYTOOL_MODE_IMPORTRUN, importrunMode); 82 MODECASE(STATICSKYTOOL_MODE_DEFINESKYCALRUN, defineskycalrunMode); 83 MODECASE(STATICSKYTOOL_MODE_UPDATESKYCALRUN, updateskycalrunMode); 84 MODECASE(STATICSKYTOOL_MODE_PENDINGSKYCALRUN, pendingskycalrunMode); 85 MODECASE(STATICSKYTOOL_MODE_ADDSKYCALRESULT, addskycalresultMode); 86 MODECASE(STATICSKYTOOL_MODE_UPDATESKYCALRESULT,updateskycalresultMode); 87 MODECASE(STATICSKYTOOL_MODE_REVERTSKYCALRESULT,revertskycalresultMode); 88 MODECASE(STATICSKYTOOL_MODE_SKYCALRESULT, skycalresultMode); 74 89 default: 75 90 psAbort("invalid option (this should not happen)"); … … 97 112 { 98 113 PS_ASSERT_PTR_NON_NULL(config, false); 99 100 // required options 101 PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", true, false); 114 PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", true, false); 115 PXOPT_LOOKUP_STR(label, config->args, "-set_label", true, false); 102 116 103 117 // optional 104 PXOPT_LOOKUP_STR(label, config->args, "-set_label", true, false);105 118 PXOPT_LOOKUP_STR(data_group, config->args, "-set_data_group", false, false); 106 119 PXOPT_LOOKUP_STR(dist_group, config->args, "-set_dist_group", false, false); … … 111 124 psMetadata *whereMD = psMetadataAlloc(); 112 125 113 PXOPT_COPY_STR(config->args, whereMD, "-select_skycell_id", "stackRun.skycell_id", "=="); 126 PXOPT_COPY_S64(config->args, whereMD, "-select_stack_id", "stackRun.stack_id", "=="); 127 PXOPT_COPY_STR(config->args, whereMD, "-select_skycell_id", "stackRun.skycell_id", "LIKE"); 114 128 PXOPT_COPY_STR(config->args, whereMD, "-select_tess_id", "stackRun.tess_id", "=="); 115 129 PXOPT_COPY_F32(config->args, whereMD, "-select_good_frac_min", "stackSumSkyfile.good_frac", ">="); … … 621 635 PXOPT_COPY_STR(config->args, where, "-label", "staticskyRun.label", "=="); 622 636 PXOPT_COPY_STR(config->args, where, "-data_group", "staticskyRun.data_group", "LIKE"); 637 PXOPT_COPY_STR(config->args, where, "-tess_id", "stackRun.tess_id", "LIKE"); 638 PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "LIKE"); 623 639 PXOPT_COPY_S16(config->args, where, "-fault", "staticskyResult.fault", "=="); 640 PXOPT_LOOKUP_S32(num_filters, config->args, "-num_filters", false, false); 624 641 625 642 PXOPT_LOOKUP_BOOL(all, config->args, "-all", false); … … 645 662 psFree(where); 646 663 664 psStringAppend(&query, "\nGROUP BY sky_id"); 665 if (num_filters) { 666 psStringAppend(&query, "\nHAVING COUNT(filter) >= %d", num_filters); 667 } 668 669 647 670 // treat limit == 0 as "no limit" 648 671 if (limit) { 649 672 psString limitString = psDBGenerateLimitSQL(limit); 650 psStringAppend(&query, " %s", limitString);673 psStringAppend(&query, "\n%s", limitString); 651 674 psFree(limitString); 652 675 } … … 735 758 } 736 759 737 static bool updateresult (pxConfig *config)760 static bool updateresultMode(pxConfig *config) 738 761 { 739 762 PS_ASSERT_PTR_NON_NULL(config, false); … … 978 1001 # endif 979 1002 1003 static bool defineskycalrunMode(pxConfig *config) 1004 { 1005 PS_ASSERT_PTR_NON_NULL(config, false); 1006 1007 // required options 1008 // none required. We get workdir, etc from staticskyRun if not provided 1009 1010 // optional 1011 PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false); 1012 PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", false, false); 1013 PXOPT_LOOKUP_STR(data_group, config->args, "-set_data_group", false, false); 1014 PXOPT_LOOKUP_STR(dist_group, config->args, "-set_dist_group", false, false); 1015 PXOPT_LOOKUP_STR(reduction, config->args, "-set_reduction", false, false); 1016 PXOPT_LOOKUP_STR(note, config->args, "-set_note", false, false); 1017 PXOPT_LOOKUP_TIME(registered, config->args, "-set_registered", false, false); 1018 1019 psMetadata *whereMD = psMetadataAlloc(); 1020 1021 PXOPT_COPY_S64(config->args, whereMD, "-select_sky_id", "staticskyRun.sky_id", "=="); 1022 PXOPT_COPY_S64(config->args, whereMD, "-select_stack_id", "stackRun.stack_id", "=="); 1023 PXOPT_COPY_STR(config->args, whereMD, "-select_skycell_id", "stackRun.skycell_id", "=="); 1024 PXOPT_COPY_STR(config->args, whereMD, "-select_tess_id", "stackRun.tess_id", "=="); 1025 PXOPT_COPY_F32(config->args, whereMD, "-select_good_frac_min", "stackSumSkyfile.good_frac", ">="); 1026 pxAddLabelSearchArgs(config, whereMD, "-select_label", "stackRun.label", "LIKE"); 1027 pxAddLabelSearchArgs(config, whereMD, "-select_data_group", "stackRun.data_group", "LIKE"); 1028 pxAddLabelSearchArgs(config, whereMD, "-select_filter", "stackRun.filter", "LIKE"); 1029 1030 PXOPT_LOOKUP_BOOL(rerun, config->args, "-rerun", false); 1031 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1032 PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false); 1033 1034 psString query = pxDataGet("staticskytool_defineskycalrun.sql"); 1035 if (!query) { 1036 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1037 psFree(whereMD); 1038 return false; 1039 } 1040 1041 if (!psListLength(whereMD->list)) { 1042 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 1043 psFree(whereMD); 1044 return false; 1045 } 1046 1047 psString whereClause = psDBGenerateWhereConditionSQL(whereMD, NULL); 1048 psStringAppend(&query, "\nAND %s", whereClause); 1049 psFree(whereClause); 1050 psFree(whereMD); 1051 1052 if (!rerun) { 1053 if (label) { 1054 psStringAppend(&query, "\nAND (skycalRun.label IS NULL OR skycalRun.label = '%s')", label); 1055 } 1056 psStringAppend(&query, "\nAND skycal_id IS NULL"); 1057 } 1058 1059 if (!p_psDBRunQuery(config->dbh, query)) { 1060 psError(PS_ERR_UNKNOWN, false, "database error"); 1061 psFree(query); 1062 return false; 1063 } 1064 psFree(query); 1065 1066 // we now have a list of (tess_id, skycell_id) that (potentially) meet out needs 1067 // we now need to loop over all of these and for each pair, select the best set of 1068 // inputs 1069 1070 psArray *output = p_psDBFetchResult(config->dbh); 1071 if (!output) { 1072 psErrorCode err = psErrorCodeLast(); 1073 switch (err) { 1074 case PS_ERR_DB_CLIENT: 1075 psError(PXTOOLS_ERR_SYS, false, "database error"); 1076 case PS_ERR_DB_SERVER: 1077 psError(PXTOOLS_ERR_PROG, false, "database error"); 1078 default: 1079 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1080 } 1081 return false; 1082 } 1083 if (!psArrayLength(output)) { 1084 psWarning("staticskytool: no rows found"); 1085 psFree(output); 1086 return true; 1087 } 1088 if (pretend) { 1089 // negative simple so the default is true 1090 if (!ippdbPrintMetadatas(stdout, output, "skycalRun", !simple)) { 1091 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1092 psFree(output); 1093 return false; 1094 } 1095 psFree(output); 1096 return true; 1097 } 1098 1099 for (long i = 0; i < output->n; i++) { 1100 psMetadata *row = output->data[i]; // Row from select 1101 bool status; 1102 1103 psS64 sky_id = psMetadataLookupS64(&status, row, "sky_id"); 1104 psS64 stack_id = psMetadataLookupS64(&status, row, "stack_id"); 1105 psString sky_workdir = psMetadataLookupStr(&status, row, "workdir"); 1106 psString sky_label = psMetadataLookupStr(&status, row, "label"); 1107 psString sky_data_group = psMetadataLookupStr(&status, row, "data_group"); 1108 1109 // create a staticskyRun 1110 if (!skycalRunInsert(config->dbh, 1111 0x0, // skycal_id 1112 sky_id, 1113 stack_id, 1114 "new", // state 1115 workdir ? workdir : sky_workdir, 1116 label ? label : sky_label, 1117 data_group ? data_group : sky_data_group, 1118 dist_group, 1119 reduction, 1120 registered, 1121 note 1122 ) 1123 ) { 1124 psError(PS_ERR_UNKNOWN, false, "database error"); 1125 psFree(output); 1126 return false; 1127 } 1128 1129 } 1130 psFree(output); 1131 return true; 1132 } 1133 1134 static bool updateskycalrunMode(pxConfig *config) 1135 { 1136 #ifdef notyet 1137 PS_ASSERT_PTR_NON_NULL(config, false); 1138 1139 psMetadata *where = psMetadataAlloc(); 1140 PXOPT_COPY_S64(config->args, where, "-sky_id", "sky_id", "=="); 1141 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 1142 PXOPT_COPY_STR(config->args, where, "-state", "state", "=="); 1143 if (!psListLength(where->list)) { 1144 psFree(where); 1145 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 1146 return false; 1147 } 1148 1149 psString query = psStringCopy("UPDATE staticskyRun"); 1150 1151 // pxUpdateRun gets parameters from config->args and updates 1152 bool result = pxUpdateRun(config, where, &query, "staticskyRun", "sky_id", "staticskyResult", true, false); 1153 psFree(query); 1154 psFree(where); 1155 1156 return result; 1157 #endif 1158 return false; 1159 } 1160 static bool pendingskycalrunMode(pxConfig *config) 1161 { 1162 PS_ASSERT_PTR_NON_NULL(config, false); 1163 1164 psMetadata *whereMD = psMetadataAlloc(); 1165 PXOPT_COPY_S64(config->args, whereMD, "-skycal_id", "skycal_id", "=="); 1166 PXOPT_COPY_S64(config->args, whereMD, "-sky_id", "sky_id", "=="); 1167 pxAddLabelSearchArgs (config, whereMD, "-label", "skycalRun.label", "=="); 1168 PXOPT_COPY_STR(config->args, whereMD, "-filter", "stackRun.filter", "LIKE"); 1169 1170 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1171 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1172 1173 psString query = pxDataGet("staticskytool_pendingskycalrun.sql"); 1174 if (!query) { 1175 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1176 return false; 1177 } 1178 1179 if (!psListLength(whereMD->list)) { 1180 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 1181 psFree(whereMD); 1182 return false; 1183 } 1184 1185 psString whereClause = psDBGenerateWhereConditionSQL(whereMD, NULL); 1186 psStringAppend(&query, "\n AND %s", whereClause); 1187 psFree(whereClause); 1188 psFree(whereMD); 1189 1190 // treat limit == 0 as "no limit" 1191 if (limit) { 1192 psString limitString = psDBGenerateLimitSQL(limit); 1193 psStringAppend(&query, "\n%s", limitString); 1194 psFree(limitString); 1195 } 1196 1197 // the where clause is required and matches the WHERE hook format string 1198 if (!p_psDBRunQuery(config->dbh, query)) { 1199 psError(PS_ERR_UNKNOWN, false, "database error"); 1200 psFree(query); 1201 return false; 1202 } 1203 psFree(query); 1204 1205 psArray *output = p_psDBFetchResult(config->dbh); 1206 if (!output) { 1207 psErrorCode err = psErrorCodeLast(); 1208 switch (err) { 1209 case PS_ERR_DB_CLIENT: 1210 psError(PXTOOLS_ERR_SYS, false, "database error"); 1211 case PS_ERR_DB_SERVER: 1212 psError(PXTOOLS_ERR_PROG, false, "database error"); 1213 default: 1214 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1215 } 1216 1217 return false; 1218 } 1219 if (!psArrayLength(output)) { 1220 psTrace("staticskytool", PS_LOG_INFO, "no rows found"); 1221 psFree(output); 1222 return true; 1223 } 1224 1225 if (psArrayLength(output)) { 1226 // negative simple so the default is true 1227 if (!ippdbPrintMetadatas(stdout, output, "pendingskycalRun", !simple)) { 1228 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1229 psFree(output); 1230 return false; 1231 } 1232 } 1233 1234 psFree(output); 1235 return true; 1236 } 1237 1238 static bool addskycalresultMode(pxConfig *config) 1239 { 1240 PS_ASSERT_PTR_NON_NULL(config, false); 1241 1242 // required 1243 PXOPT_LOOKUP_S64(skycal_id, config->args, "-skycal_id", true, false); 1244 1245 // optional 1246 PXOPT_LOOKUP_F32(sigma_ra, config->args, "-sigma_ra", false, false); 1247 PXOPT_LOOKUP_F32(sigma_dec, config->args, "-sigma_dec", false, false); 1248 1249 PXOPT_LOOKUP_F32(zpt_obs, config->args, "-zpt_obs", false, false); 1250 PXOPT_LOOKUP_F32(zpt_stdev, config->args, "-zpt_stdev", false, false); 1251 1252 1253 PXOPT_LOOKUP_F32(dtime_script, config->args, "-dtime_script", false, false); 1254 PXOPT_LOOKUP_F32(dtime_astrom, config->args, "-dtime_astrom", false, false); 1255 1256 PXOPT_LOOKUP_STR(hostname, config->args, "-hostname", false, false); 1257 // PXOPT_LOOKUP_S32(n_stars, config->args, "-n_stars", false, false); 1258 PXOPT_LOOKUP_S32(n_astrom, config->args, "-n_astrom", false, false); 1259 1260 PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", false, false); 1261 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 1262 PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false); 1263 1264 PXOPT_LOOKUP_STR(ver_pslib, config->args, "-ver_pslib", false, false); 1265 PXOPT_LOOKUP_STR(ver_psmodules, config->args, "-ver_psmodules", false, false); 1266 PXOPT_LOOKUP_STR(ver_psphot, config->args, "-ver_psphot", false, false); 1267 PXOPT_LOOKUP_STR(ver_psastro, config->args, "-ver_psastro", false, false); 1268 PXOPT_LOOKUP_STR(ver_ppstats, config->args, "-ver_ppstats", false, false); 1269 1270 psString software_ver = NULL; 1271 if ((ver_pslib)&&(ver_psmodules)) { 1272 software_ver = pxMergeCodeVersions(ver_pslib,ver_psmodules); 1273 } 1274 if (ver_psphot) { 1275 software_ver = pxMergeCodeVersions(software_ver,ver_psphot); 1276 } 1277 if (ver_psastro) { 1278 software_ver = pxMergeCodeVersions(software_ver,ver_psastro); 1279 } 1280 if (ver_ppstats) { 1281 software_ver = pxMergeCodeVersions(software_ver,ver_ppstats); 1282 } 1283 1284 if (!psDBTransaction(config->dbh)) { 1285 psError(PS_ERR_UNKNOWN, false, "database error"); 1286 return false; 1287 } 1288 1289 skycalResultRow *row = skycalResultRowAlloc( 1290 skycal_id, 1291 path_base, 1292 dtime_script, 1293 dtime_astrom, 1294 sigma_ra, 1295 sigma_dec, 1296 n_astrom, 1297 zpt_obs, 1298 zpt_stdev, 1299 quality, 1300 software_ver, 1301 hostname, 1302 fault 1303 ); 1304 1305 if (!skycalResultInsertObject(config->dbh, row)) { 1306 // rollback 1307 if (!psDBRollback(config->dbh)) { 1308 psError(PS_ERR_UNKNOWN, false, "database error"); 1309 } 1310 psError(PS_ERR_UNKNOWN, false, "database error"); 1311 psFree(row); 1312 return false; 1313 } 1314 1315 psFree(row); 1316 1317 if (fault) { 1318 if (!psDBCommit(config->dbh)) { 1319 psError(PS_ERR_UNKNOWN, false, "database error"); 1320 return false; 1321 } 1322 return true; 1323 } 1324 1325 psString query = "UPDATE skycalRun SET state = 'full' WHERE skycal_id = %" PRId64; 1326 if (!p_psDBRunQueryF(config->dbh, query, skycal_id)) { 1327 psError(PS_ERR_UNKNOWN, false, "database error"); 1328 return false; 1329 } 1330 if (!psDBCommit(config->dbh)) { 1331 psError(PS_ERR_UNKNOWN, false, "database error"); 1332 return false; 1333 } 1334 1335 return true; 1336 } 1337 static bool updateskycalresultMode(pxConfig *config) 1338 { 1339 PS_ASSERT_PTR_NON_NULL(config, false); 1340 1341 PXOPT_LOOKUP_S16(fault, config->args, "-set_fault", true, false); 1342 PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false); 1343 1344 psMetadata *where = psMetadataAlloc(); 1345 PXOPT_COPY_S64(config->args, where, "-skycal_id", "skycal_id", "=="); 1346 1347 if (!pxSetFaultCode(config->dbh, "skycalResult", where, fault, quality)) { 1348 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 1349 psFree (where); 1350 return false; 1351 } 1352 psFree (where); 1353 return true; 1354 } 1355 static bool skycalresultMode(pxConfig *config) 1356 { 1357 PS_ASSERT_PTR_NON_NULL(config, false); 1358 1359 psMetadata *where = psMetadataAlloc(); 1360 PXOPT_COPY_S64(config->args, where, "-skycal_id", "skycalRun.skycal_id", "=="); 1361 PXOPT_COPY_S64(config->args, where, "-sky_id", "skycalRun.sky_id", "=="); 1362 PXOPT_COPY_S64(config->args, where, "-stack_id", "skycalRun.stack_id", "=="); 1363 PXOPT_COPY_STR(config->args, where, "-tess_id", "stackRun.tess_id", "LIKE"); 1364 PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "LIKE"); 1365 PXOPT_COPY_STR(config->args, where, "-filter", "stackRun.filter", "LIKE"); 1366 PXOPT_COPY_STR(config->args, where, "-label", "skycalRun.label", "=="); 1367 PXOPT_COPY_STR(config->args, where, "-data_group", "skycalRun.data_group", "LIKE"); 1368 PXOPT_COPY_S16(config->args, where, "-fault", "skycalResult.fault", "=="); 1369 1370 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1371 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1372 1373 psString query = pxDataGet("staticskytool_skycalresult.sql"); 1374 if (!query) { 1375 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1376 return false; 1377 } 1378 1379 if (!psListLength(where->list)) { 1380 psError(PXTOOLS_ERR_CONFIG, true, "search parameters are required"); 1381 return false; 1382 } 1383 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1384 psStringAppend(&query, " WHERE %s", whereClause); 1385 psFree(whereClause); 1386 psFree(where); 1387 1388 // treat limit == 0 as "no limit" 1389 if (limit) { 1390 psString limitString = psDBGenerateLimitSQL(limit); 1391 psStringAppend(&query, " %s", limitString); 1392 psFree(limitString); 1393 } 1394 1395 if (!p_psDBRunQuery(config->dbh, query)) { 1396 psError(PS_ERR_UNKNOWN, false, "database error"); 1397 psFree(query); 1398 return false; 1399 } 1400 psFree(query); 1401 1402 psArray *output = p_psDBFetchResult(config->dbh); 1403 if (!output) { 1404 psErrorCode err = psErrorCodeLast(); 1405 switch (err) { 1406 case PS_ERR_DB_CLIENT: 1407 psError(PXTOOLS_ERR_SYS, false, "database error"); 1408 case PS_ERR_DB_SERVER: 1409 psError(PXTOOLS_ERR_PROG, false, "database error"); 1410 default: 1411 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1412 } 1413 1414 return false; 1415 } 1416 if (!psArrayLength(output)) { 1417 psTrace("staticskytool", PS_LOG_INFO, "no rows found"); 1418 psFree(output); 1419 return true; 1420 } 1421 1422 if (psArrayLength(output)) { 1423 if (!ippdbPrintMetadatas(stdout, output, "staticskyResult", !simple)) { 1424 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1425 psFree(output); 1426 return false; 1427 } 1428 } 1429 1430 psFree(output); 1431 1432 return true; 1433 } 1434 static bool revertskycalresultMode(pxConfig *config) 1435 { 1436 PS_ASSERT_PTR_NON_NULL(config, false); 1437 1438 psMetadata *where = psMetadataAlloc(); 1439 PXOPT_COPY_S64(config->args, where, "-skycal_id", "staticskyResult.sky_id", "=="); 1440 pxAddLabelSearchArgs(config, where, "-label", "staticskyRun.label", "=="); 1441 pxAddLabelSearchArgs(config, where, "-data_group", "staticskyRun.data_group", "=="); 1442 pxAddLabelSearchArgs(config, where, "-filter", "stackRun.filter", "=="); 1443 PXOPT_COPY_S16(config->args, where, "-fault", "staticskyResult.fault", "=="); 1444 1445 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) { 1446 psFree(where); 1447 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 1448 return false; 1449 } 1450 1451 // Delete product 1452 psString delete = pxDataGet("staticskytool_revertskycal.sql"); 1453 if (!delete) { 1454 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1455 return false; 1456 } 1457 1458 if (psListLength(where->list)) { 1459 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1460 psStringAppend(&delete, " AND %s", whereClause); 1461 psFree(whereClause); 1462 } 1463 1464 if (!p_psDBRunQuery(config->dbh, delete)) { 1465 psError(PS_ERR_UNKNOWN, false, "database error"); 1466 psFree(delete); 1467 psFree(where); 1468 return false; 1469 } 1470 psFree(delete); 1471 1472 int numRows = psDBAffectedRows(config->dbh); // Number of row affected 1473 psLogMsg("staticskytool", PS_LOG_INFO, "Deleted %d rows", numRows); 1474 1475 psFree(where); 1476 return true; 1477 } -
branches/meh_branches/ppstack_test/ippTools/src/staticskytool.h
r27546 r33415 34 34 STATICSKYTOOL_MODE_UPDATERESULT, 35 35 STATICSKYTOOL_MODE_EXPORTRUN, 36 STATICSKYTOOL_MODE_IMPORTRUN 36 STATICSKYTOOL_MODE_IMPORTRUN, 37 38 STATICSKYTOOL_MODE_DEFINESKYCALRUN, 39 STATICSKYTOOL_MODE_PENDINGSKYCALRUN, 40 STATICSKYTOOL_MODE_UPDATESKYCALRUN, 41 STATICSKYTOOL_MODE_ADDSKYCALRESULT, 42 STATICSKYTOOL_MODE_UPDATESKYCALRESULT, 43 STATICSKYTOOL_MODE_SKYCALRESULT, 44 STATICSKYTOOL_MODE_REVERTSKYCALRESULT, 37 45 } staticskytoolMode; 38 46 -
branches/meh_branches/ppstack_test/ippTools/src/staticskytoolConfig.c
r31687 r33415 48 48 // XXX need a 'ra_min,max', 'dec_min,max' : to do this, we need a table of skycell boundaries 49 49 psMetadata *definebyqueryArgs = psMetadataAlloc(); 50 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-select_stack_id", 0, "search for stack_id", 0); 50 51 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_skycell_id", 0, "search for skycell_id", NULL); 51 52 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_tess_id", 0, "search for tess_id", NULL); … … 107 108 psMetadata *resultArgs= psMetadataAlloc(); 108 109 psMetadataAddS64(resultArgs, PS_LIST_TAIL, "-sky_id", 0, "search by staticsky ID", 0); 109 // psMetadataAddStr(resultArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tess ID", 0);110 // psMetadataAddStr(resultArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID", 0);110 psMetadataAddStr(resultArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tess ID (LIKE comparison)", 0); 111 psMetadataAddStr(resultArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID (LIKE comparison)", 0); 111 112 psMetadataAddStr(resultArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL); 112 113 psMetadataAddStr(resultArgs, PS_LIST_TAIL, "-data_group", 0, "search by data_group (LIKE comparison)", NULL); 114 psMetadataAddS16(resultArgs, PS_LIST_TAIL, "-num_filters", 0, "search by number of filters in the inputs (>=)", 0); 113 115 psMetadataAddS16(resultArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 114 116 psMetadataAddU64(resultArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 138 140 psMetadata *importrunArgs = psMetadataAlloc(); 139 141 psMetadataAddStr(importrunArgs, PS_LIST_TAIL, "-infile", 0, "import from this file (required)", NULL); 140 142 143 // -defineskycalrun 144 psMetadata *defineskycalrunArgs = psMetadataAlloc(); 145 psMetadataAddS64(defineskycalrunArgs, PS_LIST_TAIL, "-select_sky_id", 0, "search for sky_id", 0); 146 psMetadataAddS64(defineskycalrunArgs, PS_LIST_TAIL, "-select_stack_id", 0, "search for stack_id", 0); 147 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-select_skycell_id", 0, "search for skycell_id", NULL); 148 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-select_tess_id", 0, "search for tess_id", NULL); 149 psMetadataAddF32(defineskycalrunArgs, PS_LIST_TAIL, "-select_good_frac_min", 0, "define min good_frac", 0.0); 150 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-select_label", PS_META_DUPLICATE_OK, "search by stackRun label (LIKE comparison, multiple OK)", NULL); 151 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-select_data_group", PS_META_DUPLICATE_OK, "search by stackRun data_group (LIKE comparison, multiple OK)", NULL); 152 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-select_filter", PS_META_DUPLICATE_OK, "search by filter (LIKE comparison, multiple OK)", NULL); 153 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir", NULL); 154 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-set_label", 0, "define label", NULL); 155 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-set_data_group", 0, "define data group", NULL); 156 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-set_dist_group", 0, "define dist group", NULL); 157 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-set_note", 0, "define note", NULL); 158 psMetadataAddStr(defineskycalrunArgs, PS_LIST_TAIL, "-set_reduction", 0, "define reduction", NULL); 159 psMetadataAddTime(defineskycalrunArgs, PS_LIST_TAIL, "-set_registered", 0, "time detrend run was registered", now); 160 psMetadataAddBool(defineskycalrunArgs, PS_LIST_TAIL, "-rerun", 0, "queue new run even if one already exists for inputs", false); 161 psMetadataAddBool(defineskycalrunArgs, PS_LIST_TAIL, "-pretend", 0, "do not actually modify the database", false); 162 psMetadataAddBool(defineskycalrunArgs, PS_LIST_TAIL, "-check_inputs", 0, "list inputs, do not modify database", false); 163 psMetadataAddBool(defineskycalrunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 164 165 // -updateskycalrun 166 psMetadata *updateskycalrunArgs = psMetadataAlloc(); 167 psMetadataAddS64(updateskycalrunArgs, PS_LIST_TAIL, "-sky_id", 0, "search by stack ID", 0); 168 psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL); 169 psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-label", 0, "search by label", 0); 170 psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-set_label", 0, "define new value for label", NULL); 171 psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-set_state", 0, "define new state", NULL); 172 psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-set_data_group", 0, "define new data_group", NULL); 173 psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-set_dist_group", 0, "define new dist_group", NULL); 174 psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-set_note", 0, "define new note", NULL); 175 176 // -pendingskycalrun 177 psMetadata *pendingskycalrunArgs = psMetadataAlloc(); 178 psMetadataAddS64(pendingskycalrunArgs, PS_LIST_TAIL, "-skycal_id", 0, "search by skycal ID", 0); 179 psMetadataAddS64(pendingskycalrunArgs, PS_LIST_TAIL, "-sky_id", 0, "search by staticsky ID", 0); 180 psMetadataAddStr(pendingskycalrunArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", NULL); 181 psMetadataAddStr(pendingskycalrunArgs, PS_LIST_TAIL, "-filter", 0, "search by filter", NULL); 182 psMetadataAddU64(pendingskycalrunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 183 psMetadataAddBool(pendingskycalrunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 184 185 186 // -addskycalresult 187 psMetadata *addskycalresultArgs = psMetadataAlloc(); 188 psMetadataAddS64(addskycalresultArgs, PS_LIST_TAIL, "-skycal_id", 0, "define camtool ID (required)", 0); 189 psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-sigma_ra", 0, "define exposure E ra", NAN); 190 psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-sigma_dec", 0, "define exposure E dec", NAN); 191 psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-zpt_obs", 0, "define observed zero point", 0); 192 psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-zpt_stdev", 0, "define observed zero point stdandard deviation", 0); 193 194 psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-dtime_script", 0, "define elapsed time in script (seconds)", NAN); 195 psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-dtime_astrom", 0, "define elapsed time for astrometry (seconds)", NAN); 196 197 psMetadataAddStr(addskycalresultArgs, PS_LIST_TAIL, "-hostname", 0, "define hostname", NULL); 198 // psMetadataAddS32(addskycalresultArgs, PS_LIST_TAIL, "-n_stars", 0, "define number of stars", 0); 199 psMetadataAddS32(addskycalresultArgs, PS_LIST_TAIL, "-n_astrom", 0, "define number of astrometry reference objects", 0); 200 201 psMetadataAddStr(addskycalresultArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 202 psMetadataAddS16(addskycalresultArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 203 psMetadataAddS16(addskycalresultArgs, PS_LIST_TAIL, "-quality", 0, "set quality", 0); 204 205 psMetadataAddStr(addskycalresultArgs, PS_LIST_TAIL, "-ver_pslib", 0, "define psLib version", NULL); 206 psMetadataAddStr(addskycalresultArgs, PS_LIST_TAIL, "-ver_psmodules", 0, "define psModules version", NULL); 207 psMetadataAddStr(addskycalresultArgs, PS_LIST_TAIL, "-ver_psphot", 0, "define psphot version", NULL); 208 psMetadataAddStr(addskycalresultArgs, PS_LIST_TAIL, "-ver_psastro", 0, "define psastro version", NULL); 209 psMetadataAddStr(addskycalresultArgs, PS_LIST_TAIL, "-ver_ppstats", 0, "define ppStats version", NULL); 210 psMetadataAddStr(addskycalresultArgs, PS_LIST_TAIL, "-ver_streaks", 0, "define streaksremove version", NULL); 211 212 // -revertskycal 213 psMetadata *revertskycalArgs= psMetadataAlloc(); 214 psMetadataAddS64(revertskycalArgs, PS_LIST_TAIL, "-skycal_id", 0, "search by staticsky ID", 0); 215 psMetadataAddStr(revertskycalArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", 0); 216 psMetadataAddStr(revertskycalArgs, PS_LIST_TAIL, "-data_group", PS_META_DUPLICATE_OK, "search by data_group", 0); 217 psMetadataAddStr(revertskycalArgs, PS_LIST_TAIL, "-filter", PS_META_DUPLICATE_OK, "search by filter", 0); 218 psMetadataAddS16(revertskycalArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 219 psMetadataAddBool(revertskycalArgs, PS_LIST_TAIL, "-all", 0, "allow no search terms", false); 220 221 // -updateskycalresult 222 psMetadata *updateskycalresultArgs = psMetadataAlloc(); 223 psMetadataAddS64(updateskycalresultArgs, PS_LIST_TAIL, "-skycal_id", 0, "define staticksky ID (required)", 0); 224 psMetadataAddS16(updateskycalresultArgs, PS_LIST_TAIL, "-set_fault", 0, "set fault code (required)", 0); 225 psMetadataAddS16(updateskycalresultArgs, PS_LIST_TAIL, "-set_quality", 0, "set quality code", 0); 226 227 // -skycalresult 228 psMetadata *skycalresultArgs= psMetadataAlloc(); 229 psMetadataAddS64(skycalresultArgs, PS_LIST_TAIL, "-skycal_id", 0, "search by skycal ID", 0); 230 psMetadataAddS64(skycalresultArgs, PS_LIST_TAIL, "-sky_id", 0, "search by staticsky ID", 0); 231 psMetadataAddS64(skycalresultArgs, PS_LIST_TAIL, "-stack_id", 0, "search by stack ID", 0); 232 psMetadataAddStr(skycalresultArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tess ID (LIKE comparison)", 0); 233 psMetadataAddStr(skycalresultArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID (LIKE comparison)", 0); 234 psMetadataAddStr(skycalresultArgs, PS_LIST_TAIL, "-filter", 0, "search by filter (LIKE comparison)", 0); 235 psMetadataAddStr(skycalresultArgs, PS_LIST_TAIL, "-label", 0, "search by label (LIKE comparison)", NULL); 236 psMetadataAddStr(skycalresultArgs, PS_LIST_TAIL, "-data_group", 0, "search by data_group (LIKE comparison)", NULL); 237 psMetadataAddS16(skycalresultArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 238 psMetadataAddU64(skycalresultArgs, PS_LIST_TAIL, "-limit", 0, "limit skycalresult set to N items", 0); 239 psMetadataAddBool(skycalresultArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 141 240 142 241 psFree(now); … … 155 254 PXOPT_ADD_MODE("-exportrun", "Export run", STATICSKYTOOL_MODE_EXPORTRUN, exportrunArgs); 156 255 PXOPT_ADD_MODE("-importrun", "Import run", STATICSKYTOOL_MODE_IMPORTRUN, importrunArgs); 256 PXOPT_ADD_MODE("-defineskycalrun", "Define a new skycalrun", STATICSKYTOOL_MODE_DEFINESKYCALRUN, defineskycalrunArgs); 257 PXOPT_ADD_MODE("-updateskycalrun", "Update a skycalrun", STATICSKYTOOL_MODE_UPDATESKYCALRUN, updateskycalrunArgs); 258 PXOPT_ADD_MODE("-pendingskycalrun", "Get skcal runs to do", STATICSKYTOOL_MODE_PENDINGSKYCALRUN, pendingskycalrunArgs); 259 PXOPT_ADD_MODE("-addskycalresult", "add skycal result", STATICSKYTOOL_MODE_ADDSKYCALRESULT, addskycalresultArgs); 260 PXOPT_ADD_MODE("-revertskycal", "revert faulted skycal run", STATICSKYTOOL_MODE_REVERTSKYCALRESULT, revertskycalArgs); 261 PXOPT_ADD_MODE("-updateskycal", "revert faulted skycal run", STATICSKYTOOL_MODE_UPDATESKYCALRESULT, updateskycalresultArgs); 262 PXOPT_ADD_MODE("-skycalresult", "Get result of skycal run", STATICSKYTOOL_MODE_SKYCALRESULT, skycalresultArgs); 157 263 158 264 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) { -
branches/meh_branches/ppstack_test/ippTools/src/warptool.c
r31955 r33415 975 975 psFree(where); 976 976 977 psArray *allOutput = psArrayAllocEmpty(0); 977 978 // Now loop over the labels and query each individually 978 979 for (long i = 0; i < psArrayLength(labelOutput); i++) { … … 983 984 984 985 psString query = psStringCopy(originalQuery); 985 986 psStringAppend(&query,"\nORDER BY warp_id"); 986 987 // treat limit == 0 as "no limit" 987 988 psString limitString = psStringCopy(""); … … 992 993 psStringAppend(&query, "%s", limitString); 993 994 } 995 994 996 psString thisWhere = NULL; 995 997 if (whereStr) { … … 1023 1025 long outputLength = psArrayLength(output); 1024 1026 if (outputLength) { 1025 // negative simple so the default is true 1026 if (!ippdbPrintMetadatas(stdout, output, "warpPendingSkyCell", !simple)) { 1027 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1028 psFree(output); 1029 return false; 1027 for (int i = 0; i< outputLength; i++) { 1028 psPtr ptr = output->data[i]; 1029 allOutput = psArrayAdd(allOutput, outputLength - i + 10, ptr); 1030 if (!allOutput) { 1031 psError(PS_ERR_UNKNOWN, false, "failed to add element to array"); 1032 return false; 1033 } 1030 1034 } 1031 1035 } else { … … 1044 1048 } 1045 1049 } 1050 long allLabelsLength = psArrayLength(allOutput); 1051 if (allLabelsLength) { 1052 if (!ippdbPrintMetadatas(stdout, allOutput, "warpPendingSkyCell", !simple)) { 1053 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1054 psFree(allOutput); 1055 return false; 1056 } 1057 } 1058 psFree(allOutput); 1046 1059 psFree(labelOutput); 1047 1060 psFree(whereStr); … … 2039 2052 // magicked is only an argument for for -tofullskyfile 2040 2053 PXOPT_LOOKUP_S64(magicked, config->args, "-set_magicked", false, false); 2054 PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false); 2041 2055 if (magicked) { 2042 2056 psStringAppend(&set_magicked_skyfile, "\n , warpSkyfile.magicked = %" PRId64, magicked); 2043 2057 psStringAppend(&set_magicked_run, "\n, warpRun.magicked = %" PRId64, magicked); 2044 2058 } 2059 if (quality) { 2060 psStringAppend(&set_magicked_skyfile, "\n , warpSkyfile.quality = %"PRId16, quality); 2061 } 2045 2062 } else if (!strcmp(data_state, "cleaned") || !strcmp(data_state, "purged")) { 2046 2063 // if magicked is currently nonzero set it to -1 … … 2421 2438 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); 2422 2439 PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "=="); 2440 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "=="); 2441 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 2423 2442 PXOPT_COPY_S64(config->args, where, "-fake_id", "fakeRun.fake_id", "=="); 2424 2443 PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "rawExp.dateobs", ">="); … … 2562 2581 psFree(query); 2563 2582 2564 return true; 2565 } 2583 if (!skycell_id) { 2584 // If we are updateing a whole warpRun set skycells with bad quality to 'full' 2585 query = "UPDATE warpSkyfile SET data_state ='full', fault = 0 WHERE warp_id = %" PRId64 " AND quality != 0 AND (data_state != 'full')"; 2586 if (!p_psDBRunQueryF(config->dbh, query, warp_id)) { 2587 psError(PS_ERR_UNKNOWN, false, "database error"); 2588 return false; 2589 } 2590 } 2591 2592 return true; 2593 } -
branches/meh_branches/ppstack_test/ippTools/src/warptoolConfig.c
r31955 r33415 269 269 psMetadataAddStr(listrunArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tessellation ID", NULL); 270 270 psMetadataAddStr(listrunArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL); 271 psMetadataAddS64(listrunArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure tag", 0); 272 psMetadataAddStr(listrunArgs, PS_LIST_TAIL, "-exp_name", 0, "search by exposure tag", 0); 273 psMetadataAddS64(listrunArgs, PS_LIST_TAIL, "-fake_id", 0, "search by phase 3 version of exposure tag", 0); 271 psMetadataAddS64(listrunArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure id", 0); 272 psMetadataAddStr(listrunArgs, PS_LIST_TAIL, "-exp_name", 0, "search by exposure tag", NULL); 273 psMetadataAddS64(listrunArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip id", 0); 274 psMetadataAddS64(listrunArgs, PS_LIST_TAIL, "-cam_id", 0, "search by cam id", 0); 275 psMetadataAddS64(listrunArgs, PS_LIST_TAIL, "-fake_id", 0, "search by phase 3 version of exposure tag (fake_id)", 0); 274 276 psMetadataAddTime(listrunArgs, PS_LIST_TAIL, "-dateobs_begin", 0, "search for exposures by time (>=)", NULL); 275 277 psMetadataAddTime(listrunArgs, PS_LIST_TAIL, "-dateobs_end", 0, "search for exposures by time (<=)", NULL); … … 396 398 psMetadataAddStr(tofullskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0, "skycell ID to update", NULL); 397 399 psMetadataAddS64(tofullskyfileArgs, PS_LIST_TAIL, "-set_magicked", 0, "new value for magicked", 0); 398 400 psMetadataAddS16(tofullskyfileArgs, PS_LIST_TAIL, "-set_quality", 0, "new value for quality", 0); 401 399 402 // -updateskyfile 400 403 psMetadata *updateskyfileArgs = psMetadataAlloc();
Note:
See TracChangeset
for help on using the changeset viewer.
