Changeset 33003
- Timestamp:
- Dec 22, 2011, 2:21:40 PM (15 years ago)
- Location:
- branches/haf_add201112
- Files:
-
- 4 added
- 17 edited
-
dbconfig/minidvodb.md (modified) (2 diffs)
-
ippScripts/scripts/minidvodb_createdb.pl (modified) (1 diff)
-
ippTasks/mergedvodb.pro (modified) (1 diff)
-
ippTasks/minidvodb.pro (modified) (17 diffs)
-
ippTools/share/Makefile.am (modified) (1 diff)
-
ippTools/share/addtool_find_minidvodbrun2.sql (modified) (1 diff)
-
ippTools/share/addtool_queue_minidvodbrun.sql (modified) (1 diff)
-
ippTools/share/mergetool_find_merge_id_dvo.sql (added)
-
ippTools/share/mergetool_find_mergedvodbcopy.sql (added)
-
ippTools/share/mergetool_find_pending_merge.sql (modified) (1 diff)
-
ippTools/share/mergetool_queue_mergecopy_id.sql (added)
-
ippTools/share/mergetool_revertmergedvodbcopy.sql (added)
-
ippTools/share/minidvodbtool_find_minidvodb_id_dvo.sql (modified) (1 diff)
-
ippTools/src/addtool.c (modified) (17 diffs)
-
ippTools/src/addtoolConfig.c (modified) (4 diffs)
-
ippTools/src/mergetool.c (modified) (3 diffs)
-
ippTools/src/mergetool.h (modified) (2 diffs)
-
ippTools/src/mergetoolConfig.c (modified) (2 diffs)
-
ippTools/src/minidvodbtool.c (modified) (1 diff)
-
ippTools/src/pxmerge.c (modified) (1 diff)
-
ippTools/src/pxmerge.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/haf_add201112/dbconfig/minidvodb.md
r30912 r33003 4 4 minidvodb_group STR 64 5 5 minidvodb_path STR 255 6 mergedvodb_path STR 2557 6 state STR 64 8 7 creation_date UTC 0001-01-01T00:00:00Z … … 11 10 minidvodbProcessed METADATA 12 11 minidvodb_id S64 0 13 merge_order S64 014 12 dtime_resort F32 0.0 15 13 dtime_relphot F32 0.0 16 dtime_verify F32 0.017 dtime_merge F32 0.018 14 dtime_script F32 0.0 19 15 epoch UTC 0001-01-01T00:00:00Z 20 mergedvodb_path STR 25521 16 fault S16 0 22 17 END -
branches/haf_add201112/ippScripts/scripts/minidvodb_createdb.pl
r28377 r33003 226 226 $fpaCommand .= " -set_minidvodb_group $minidvodb_group"; 227 227 $fpaCommand .= " -set_minidvodb_path $minidvodbReal" if defined $minidvodbReal; 228 $fpaCommand .= " -set_mergedvodb_path $dvodbReal";229 228 $fpaCommand .= " -dbname $dbname" if defined $dbname; 230 229 -
branches/haf_add201112/ippTasks/mergedvodb.pro
r32987 r33003 190 190 stderr $LOGDIR/mergedvodb.merge.run.log 191 191 192 $run = mergedvodb_merge.pl --camera GPC1 --mergedvodb $MERGEDVODB_PATH --minidvodb $MINIDVODB_PATH --mergedvodb $MERGEDVODB--merged_id $MERGE_ID192 $run = mergedvodb_merge.pl --camera GPC1 --mergedvodb_path $MERGEDVODB_PATH --minidvodb_path $MINIDVODB_PATH --merged_id $MERGE_ID 193 193 194 194 if ($DB:n == 0) -
branches/haf_add201112/ippTasks/minidvodb.pro
r29634 r33003 11 11 if (not($?haveminidvodbBooks)) 12 12 book create MINIDVODB 13 book create MINIDVODB_ MERGE13 book create MINIDVODB_PREMERGE 14 14 book create MINIDVODB_CREATE 15 15 book create MINIDVODB_ACTIVE … … 20 20 21 21 $MINIDVODB_WAIT_DB = 0 22 $MINIDVODB_ MERGE_DB = 022 $MINIDVODB_PREMERGE_DB = 0 23 23 $MINIDVODB_CREATE_DB = 0 24 24 $MINIDVODB_ACTIVE_DB = 0 25 25 26 26 book init minidvodbWaitlist 27 book init minidvodb Mergelist27 book init minidvodbPreMergelist 28 28 book init minidvodbCreatelist 29 29 book init minidvodbActivelist … … 54 54 end 55 55 56 macro minidvodb. merge.status57 book listbook minidvodb Mergelist58 end 59 60 macro minidvodb. merge.reset61 book init minidvodb Mergelist56 macro minidvodb.premerge.status 57 book listbook minidvodbPreMergelist 58 end 59 60 macro minidvodb.premerge.reset 61 book init minidvodbPreMergelist 62 62 end 63 63 … … 112 112 ##these merge the dbs 113 113 114 macro minidvodb. merge.on115 task minidvodb. merge.load114 macro minidvodb.premerge.on 115 task minidvodb.premerge.load 116 116 active true 117 117 end 118 task minidvodb. merge.run118 task minidvodb.premerge.run 119 119 active true 120 120 end 121 121 end 122 macro minidvodb. merge.off123 task minidvodb. merge.load122 macro minidvodb.premerge.off 123 task minidvodb.premerge.load 124 124 active false 125 125 end 126 task minidvodb. merge.run126 task minidvodb.premerge.run 127 127 active false 128 128 end … … 142 142 book setword MINIDVODB $1 STATE PENDING 143 143 #merge 144 book newpage MINIDVODB_ MERGE $1145 book setword MINIDVODB_ MERGE $1 MINIDVODB_GROUP $1146 book setword MINIDVODB_ MERGE $1 DVODB $3147 book setword MINIDVODB_ MERGE $1 STATE PENDING144 book newpage MINIDVODB_PREMERGE $1 145 book setword MINIDVODB_PREMERGE $1 MINIDVODB_GROUP $1 146 book setword MINIDVODB_PREMERGE $1 DVODB $3 147 book setword MINIDVODB_PREMERGE $1 STATE PENDING 148 148 #active 149 149 book newpage MINIDVODB_ACTIVE $1 … … 168 168 end 169 169 book delpage MINIDVODB $1 170 book delpage MINIDVODB_ MERGE $1170 book delpage MINIDVODB_PREMERGE $1 171 171 book delpage MINIDVODB_CREATE $1 172 172 book delpage MINIDVODB_ACTIVE $1 … … 180 180 echo "minidvodb wait" 181 181 book listbook MINIDVODB 182 echo "minidvodb merge"183 book listbook MINIDVODB_ MERGE182 echo "minidvodb premerge" 183 book listbook MINIDVODB_PREMERGE 184 184 echo "minidvodb create" 185 185 book listbook MINIDVODB_CREATE … … 339 339 340 340 341 task minidvodb. merge.load341 task minidvodb.premerge.load 342 342 host local 343 343 … … 348 348 349 349 stdout NULL 350 stderr $LOGDIR/minidvodb. merge.load.log350 stderr $LOGDIR/minidvodb.premerge.load.log 351 351 352 352 task.exec 353 book npages MINIDVODB_ MERGE -var N353 book npages MINIDVODB_PREMERGE -var N 354 354 if ($N == 0) 355 355 # echo "No labels for processing" … … 357 357 endif 358 358 359 book getpage MINIDVODB_ MERGE 0 -var minidvodb_group -key STATE NEW359 book getpage MINIDVODB_PREMERGE 0 -var minidvodb_group -key STATE NEW 360 360 if ("$minidvodb_group" == "NULL") 361 361 # All labels have been done --- reset 362 362 # echo "Resetting labels" 363 363 for i 0 $N 364 book getpage MINIDVODB_ MERGE $i -var minidvodb_group365 book setword MINIDVODB_ MERGE $minidvodb_group STATE NEW364 book getpage MINIDVODB_PREMERGE $i -var minidvodb_group 365 book setword MINIDVODB_PREMERGE $minidvodb_group STATE NEW 366 366 end 367 book getpage MINIDVODB_ MERGE 0 -var minidvodb_group -key STATE NEW367 book getpage MINIDVODB_PREMERGE 0 -var minidvodb_group -key STATE NEW 368 368 369 369 # Select different database … … 372 372 end 373 373 #finds the minidvodbs in a state of 'to_be_merged' 374 book setword MINIDVODB_ MERGE $minidvodb_group STATE DONE374 book setword MINIDVODB_PREMERGE $minidvodb_group STATE DONE 375 375 $run = addtool -listminidvodbrun -state to_be_merged -limit 1 376 376 $run = $run -minidvodb_group $minidvodb_group … … 392 392 task.exit 0 393 393 # convert 'stdout' to book format 394 ipptool2book stdout minidvodb Mergelist -key minidvodb_id -uniq -setword dbname $options:0 -setword pantaskState INIT394 ipptool2book stdout minidvodbPreMergelist -key minidvodb_id -uniq -setword dbname $options:0 -setword pantaskState INIT 395 395 if ($VERBOSE > 2) 396 book listbook minidvodb Mergelist396 book listbook minidvodbPreMergelist 397 397 end 398 398 # delete existing entries in the appropriate pantaskStates 399 process_cleanup minidvodb Mergelist399 process_cleanup minidvodbPreMergelist 400 400 end 401 401 … … 418 418 419 419 420 task minidvodb. merge.run420 task minidvodb.premerge.run 421 421 periods -poll $RUNPOLL 422 422 periods -exec $RUNEXEC … … 432 432 periods -exec $RUNEXEC 433 433 434 book npages minidvodb Mergelist -var N434 book npages minidvodbPreMergelist -var N 435 435 if ($N == 0) break 436 436 437 437 # look for new images in minidvodbWaitlist (pantaskState == INIT) 438 book getpage minidvodb Mergelist 0 -var pageName -key pantaskState INIT438 book getpage minidvodbPreMergelist 0 -var pageName -key pantaskState INIT 439 439 if ("$pageName" == "NULL") break 440 440 441 book setword minidvodbMergelist $pageName pantaskState RUN 442 book getword minidvodbMergelist $pageName minidvodb_id -var MINIDVODB_ID 443 book getword minidvodbMergelist $pageName minidvodb_group -var MINIDVODB_GROUP 444 book getword minidvodbMergelist $pageName mergedvodb_path -var MERGEDVODB_PATH 445 book getword minidvodbMergelist $pageName minidvodb_path -var MINIDVODB_PATH 446 book getword minidvodbMergelist $pageName state -var STATE 447 stdout $LOGDIR/minidvodb.merge.run.log 448 stderr $LOGDIR/minidvodb.merge.run.log 449 450 $run = minidvodb_merge.pl --camera GPC1 --mergedvodb $MERGEDVODB_PATH --minidvodb $MINIDVODB_PATH --minidvodb_group $MINIDVODB_GROUP --minidvodb_id $MINIDVODB_ID 441 book setword minidvodbPreMergelist $pageName pantaskState RUN 442 book getword minidvodbPreMergelist $pageName minidvodb_id -var MINIDVODB_ID 443 book getword minidvodbPreMergelist $pageName minidvodb_group -var MINIDVODB_GROUP 444 book getword minidvodbPreMergelist $pageName minidvodb_path -var MINIDVODB_PATH 445 book getword minidvodbPreMergelist $pageName state -var STATE 446 stdout $LOGDIR/minidvodb.premerge.run.log 447 stderr $LOGDIR/minidvodb.premerge.run.log 448 449 $run = minidvodb_premerge.pl --camera GPC1 --minidvodb $MINIDVODB_PATH --minidvodb_group $MINIDVODB_GROUP --minidvodb_id $MINIDVODB_ID 451 450 452 451 if ($DB:n == 0) … … 472 471 # default exit status 473 472 task.exit default 474 process_exit minidvodb Mergelist $options:0 $JOB_STATUS473 process_exit minidvodbPreMergelist $options:0 $JOB_STATUS 475 474 end 476 475 … … 482 481 # Set a fault code in the database 483 482 484 process_exit minidvodb Mergelist $options:0 $EXIT_CRASH_ERR483 process_exit minidvodbPreMergelist $options:0 $EXIT_CRASH_ERR 485 484 end 486 485 … … 488 487 task.exit timeout 489 488 showcommand timeout 490 book setword minidvodb Mergelist $options:0 pantaskState TIMEOUT489 book setword minidvodbPreMergelist $options:0 pantaskState TIMEOUT 491 490 end 492 491 end -
branches/haf_add201112/ippTools/share/Makefile.am
r32979 r33003 311 311 minidvodbtool_revertminidvodbcopy.sql \ 312 312 mergetool_find_minidvodb_id.sql \ 313 mergetool_find_mergedvodbcopy.sql \ 314 mergetool_find_merge_id_dvo.sql \ 313 315 mergetool_find_pendingmergeprocess.sql \ 314 316 mergetool_find_pending_merge.sql \ 315 317 mergetool_find_processed.sql \ 318 mergetool_queue_mergecopy_id.sql \ 316 319 mergetool_queue_merge_id.sql \ 320 mergetool_revertmergedvodbcopy.sql \ 317 321 mergetool_revertmergedvodbprocessed.sql \ 318 322 pstamptool_completedreq.sql \ -
branches/haf_add201112/ippTools/share/addtool_find_minidvodbrun2.sql
r28181 r33003 1 1 -- this selects the minidvodbs that have complete addRuns 2 SELECT minidvodb_name, minidvodb_path, mergedvodb_path,state, minidbg2 SELECT minidvodb_name, minidvodb_path, state, minidbg 3 3 AS minidvodb_group 4 4 FROM minidvodbRun -
branches/haf_add201112/ippTools/share/addtool_queue_minidvodbrun.sql
r28181 r33003 4 4 minidvodb_name, 5 5 minidvodb_path, 6 mergedvodb_path,7 6 'new' 8 7 -
branches/haf_add201112/ippTools/share/mergetool_find_pending_merge.sql
r32980 r33003 1 1 SELECT 2 2 mergedvodbRun.* 3 FROM mergedvodbRun 3 minidvodbRun.minidvodb_path 4 FROM minidvodbRun 5 JOIN mergedvodbRun 6 USING(minidvodb_id) 4 7 LEFT JOIN mergedvodbProcessed 5 8 USING(merge_id) -
branches/haf_add201112/ippTools/share/minidvodbtool_find_minidvodb_id_dvo.sql
r29528 r33003 1 1 SELECT minidvodbRun.* FROM minidvodbRun 2 2 JOIN minidvodbProcessed USING(minidvodb_id) 3 WHERE minidvodbRun.state = 'merged' 3 WHERE minidvodbRun.state = 'merged' 4 AND minidvodbProcessed.fault = 0 4 5 AND minidvodb_id NOT IN (SELECT minidvodb_id 5 6 FROM minidvodbCopy -
branches/haf_add201112/ippTools/src/addtool.c
r32832 r33003 1221 1221 1222 1222 PXOPT_LOOKUP_STR(minidvodb_group, config->args, "-set_minidvodb_group", true, false); 1223 PXOPT_LOOKUP_STR(mergedvodb_path, config->args, "-set_mergedvodb_path", true, false); 1224 1225 //optional 1223 //optional 1226 1224 PXOPT_LOOKUP_STR(minidvodb_name, config->args, "-set_minidvodb_name", false, false); 1227 1225 PXOPT_LOOKUP_STR(minidvodb_path, config->args, "-set_minidvodb_path", false, false); … … 1238 1236 if (minidvodb_path) { 1239 1237 minidvodbpath = minidvodb_path; 1238 } else { 1239 psError(PS_ERR_UNKNOWN, false, "require minidvodb_path"); 1240 return false; 1240 1241 } 1241 1242 … … 1245 1246 minidvodb_group, 1246 1247 minidvodbpath, 1247 mergedvodb_path, 1248 "new", 1248 "new", 1249 1249 0 1250 1250 )) { … … 1268 1268 psStringAppend(&minidvodb_name, "%s.%" PRIu64,minidvodb_group,minidvodb_id); 1269 1269 } 1270 1271 if (!minidvodb_path) {1272 psStringAppend(&minidvodb_path,"%s/%s",mergedvodb_path,minidvodb_name);1273 }1274 1275 1270 if (minidvodb_path) { 1276 1271 psStringAppend(&minidvodb_path,"/%s",minidvodb_name); … … 1304 1299 PXOPT_COPY_STR(config->args, where, "-state", "state", "=="); 1305 1300 PXOPT_COPY_STR(config->args, where, "-minidvodb_path", "minidvodb_path", "=="); 1306 PXOPT_COPY_STR(config->args, where, "-mergedvodb_path", "mergedvodb_path", "==");1307 1301 PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "minidvodb_group", "=="); 1308 1302 … … 1310 1304 PXOPT_LOOKUP_STR(minidvodb_path, config->args, "-set_minidvodb_path", false, false); 1311 1305 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 1312 PXOPT_LOOKUP_STR(mergedvodb_path, config->args, "-set_mergedvodb_path", false, false);1313 1306 PXOPT_LOOKUP_STR(minidvodb_group, config->args, "-set_minidvodb_group", false, false); 1314 1307 … … 1345 1338 } 1346 1339 1347 if (mergedvodb_path) {1348 if (cnt) {1349 psStringAppend(&query, "%s", comma);1350 }1351 psStringAppend(&query, " mergedvodb_path = '%s'", mergedvodb_path);1352 cnt++;1353 }1354 1355 1340 if (minidvodb_group) { 1356 1341 if (cnt) { … … 1396 1381 } 1397 1382 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 and mergedvodb_path IS NOT NULL");1383 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"); 1399 1384 1400 1385 psString firstwhereClause = psDBGenerateWhereConditionSQL(where, NULL); … … 1444 1429 1445 1430 //now flip new -> active 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 and mergedvodb_path IS NOT NULL");1431 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 "); 1447 1432 psStringAppend(&query2, " AND minidvodb_group = '%s' limit 1;", minidvodb_group); 1448 1433 if (!p_psDBRunQuery(config->dbh, query2)) { … … 1621 1606 // required 1622 1607 PXOPT_LOOKUP_U64(minidvodb_id, config->args, "-minidvodb_id", true, false); 1623 PXOPT_LOOKUP_STR(mergedvodb_path, config->args, "-mergedvodb_path", true, false);1624 1608 PXOPT_LOOKUP_STR(minidvodb_group, config->args, "-minidvodb_group", true, false); 1625 1609 1626 1610 // optional 1627 PXOPT_LOOKUP_U64(merge_order, config->args, "-merge_order", false, false);1628 1611 PXOPT_LOOKUP_F32(dtime_relphot, config->args, "-dtime_relphot", false, false); 1629 1612 PXOPT_LOOKUP_F32(dtime_resort, config->args, "-dtime_resort", false, false); 1630 PXOPT_LOOKUP_F32(dtime_merge, config->args, "-dtime_merge", false, false);1631 PXOPT_LOOKUP_F32(dtime_verify, config->args, "-dtime_verify", false, false);1632 1613 PXOPT_LOOKUP_F32(dtime_script, config->args, "-dtime_script", false, false); 1633 1614 … … 1680 1661 minidvodbProcessedRow *row = minidvodbProcessedRowAlloc( 1681 1662 pendingRow->minidvodb_id, 1682 merge_order,1683 1663 dtime_resort, 1684 1664 dtime_relphot, 1685 dtime_verify,1686 dtime_merge,1687 1665 dtime_script, 1688 1666 epoch, 1689 mergedvodb_path,1690 1667 fault 1691 1668 ); … … 1702 1679 } 1703 1680 1704 1705 1706 1707 //this finds the # of merged things (for the merge order)1708 psString query3 = NULL;1709 psStringAppend(&query3, "select count(*) from minidvodbRun join minidvodbProcessed using (minidvodb_id) where state = 'merged' and minidvodb_group = '%s';", minidvodb_group);1710 1711 if (!p_psDBRunQuery(config->dbh, query3)) {1712 // rollback1713 if (!psDBRollback(config->dbh)) {1714 psError(PS_ERR_UNKNOWN, false, "database error");1715 }1716 psError(PS_ERR_UNKNOWN, false, "database error");1717 psFree(query3);1718 return false;1719 }1720 psArray *output2 = p_psDBFetchResult(config->dbh);1721 if (!output2) {1722 psError(PS_ERR_UNKNOWN, false, "database error");1723 return false;1724 }1725 if (!psArrayLength(output2)) {1726 psTrace("addtool", PS_LOG_INFO, "no rows found");1727 psFree(output);1728 return true;1729 }1730 bool status;1731 psS64 m_order = psMetadataLookupS64(&status, output2->data[0], "count(*)");1732 if (!status) {1733 1734 psAbort("failed to lookup value for count column");1735 return false;1736 }1737 psString final = NULL;1738 psStringAppend(&final, "%" PRIu64, m_order);1739 //return false;1740 psFree(query3);1741 psFree(output2);1742 1743 1744 1745 //update the merge_order1746 1747 psString query4 = NULL;1748 psStringAppend(&query4, "update minidvodbProcessed set merge_order = %"PRIu64,m_order);1749 psStringAppend(&query4," where minidvodb_id = %" PRIu64, minidvodb_id);1750 //printf("%s", query4);1751 if (!p_psDBRunQuery(config->dbh, query4)) {1752 // rollback1753 if (!psDBRollback(config->dbh)) {1754 psError(PS_ERR_UNKNOWN, false, "database error");1755 }1756 psError(PS_ERR_UNKNOWN, false, "database error");1757 psFree(query4);1758 return false;1759 }1760 //1761 psFree(query4);1762 1763 1764 1765 // since there is only one exp per 'new' set mindvodbRun.state = 'merged'1766 1767 1681 psString query2 = NULL ; 1768 1682 psStringAppend(&query2, "UPDATE minidvodbRun SET state = 'merged' WHERE minidvodb_id = %'" PRIu64, row->minidvodb_id); … … 1777 1691 return false; 1778 1692 } 1779 1780 1781 1782 1783 1784 1785 1786 1787 1693 psFree(row); 1788 1694 psFree(pendingRow); … … 1797 1703 return false; 1798 1704 } 1799 1800 1801 //print the merge_order (why not!)1802 printf("%s", final);1803 psFree(final);1804 1805 1705 return true; 1806 1706 } … … 1961 1861 1962 1862 PXOPT_LOOKUP_U64(minidvodb_id, config->args, "-minidvodb_id", true, false); 1963 PXOPT_LOOKUP_U64(merge_order, config->args, "-set_merge_order", false, false);1964 1863 PXOPT_LOOKUP_S16(fault, config->args, "-set_fault", false, false); 1965 1864 PXOPT_LOOKUP_F32(dtime_relphot, config->args, "-set_dtime_relphot", false, false); 1966 1865 PXOPT_LOOKUP_F32(dtime_resort, config->args, "-set_dtime_resort", false, false); 1967 PXOPT_LOOKUP_F32(dtime_merge, config->args, "-set_dtime_merge", false, false);1968 PXOPT_LOOKUP_F32(dtime_verify, config->args, "-set_dtime_verify", false, false);1969 1866 PXOPT_LOOKUP_F32(dtime_script, config->args, "-set_dtime_script", false, false); 1970 1867 PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbProcessed.minidvodb_id", "=="); … … 1986 1883 } 1987 1884 1988 if (merge_order) {1989 if (cnt) {1990 psStringAppend(&query, "%s", comma);1991 }1992 1993 psStringAppend(&query, " merge_order = %" PRId64, merge_order);1994 cnt++;1995 }1996 1997 1885 if (dtime_relphot) { 1998 1886 if (cnt) { … … 2011 1899 } 2012 1900 2013 if (dtime_merge) { 2014 if (cnt) { 2015 psStringAppend(&query, "%s", comma); 2016 } 2017 psStringAppend(&query, " dtime_merge = %f", dtime_merge); 2018 cnt++; 2019 } 2020 if (dtime_verify) { 2021 if (cnt) { 2022 psStringAppend(&query, "%s", comma); 2023 } 2024 psStringAppend(&query, " dtime_verify = %f", dtime_verify); 2025 cnt++; 2026 } 2027 if (dtime_script) { 1901 if (dtime_script) { 2028 1902 if (cnt) { 2029 1903 psStringAppend(&query, "%s", comma); -
branches/haf_add201112/ippTools/src/addtoolConfig.c
r31680 r33003 165 165 psMetadataAddStr(addminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_group", 0, "define minidvodb_group (required)", NULL); 166 166 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 167 psMetadataAddStr(addminidvodbrunArgs, PS_LIST_TAIL, "-set_state", 0, "define state", NULL); 169 168 … … 174 173 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-minidvodb_name", 0, "search by minidvodb_name (LIKE)", NULL); 175 174 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 175 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL); 178 176 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_name", 0, "define minidvodb_name", NULL); 179 177 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 178 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_minidvodb_group", 0, "define path for the merged dvodb", NULL); 182 179 psMetadataAddStr(updateminidvodbrunArgs, PS_LIST_TAIL, "-set_state", 0, "define state", NULL); … … 205 202 psMetadata *addminidvodbprocessedArgs = psMetadataAlloc(); 206 203 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 204 psMetadataAddF32(addminidvodbprocessedArgs, PS_LIST_TAIL, "-dtime_relphot", 0, "define elapsed time for relphot (seconds)", NAN); 209 205 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 206 psMetadataAddF32(addminidvodbprocessedArgs, PS_LIST_TAIL, "-dtime_script", 0, "define elapsed time for script (seconds)", NAN); 213 207 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 208 psMetadataAddStr(addminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_group",0, "minidvodb_group", NULL); 216 209 psMetadataAddS16(addminidvodbprocessedArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); … … 232 225 psMetadataAddStr(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_name", 0, "search by minidvodb_name", NULL); 233 226 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 227 psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_relphot", 0, "define elapsed time for relphot (seconds)", 0); 236 228 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 229 psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_script", 0, "define elapsed time for script (seconds)", 0); 240 230 psMetadata *argSets = psMetadataAlloc(); -
branches/haf_add201112/ippTools/src/mergetool.c
r32980 r33003 37 37 static bool revertmergedMode(pxConfig *config); 38 38 static bool updatemergedMode(pxConfig *config); 39 static bool definebyquerymergecopyMode(pxConfig *config); 40 static bool listmergedvodbcopyMode(pxConfig *config); 41 static bool revertmergedvodbcopyMode(pxConfig *config); 42 static bool updatemergedvodbcopyMode(pxConfig *config); 39 43 40 44 … … 65 69 MODECASE(MERGETOOL_MODE_REVERTMERGED, revertmergedMode); 66 70 MODECASE(MERGETOOL_MODE_UPDATEMERGED, updatemergedMode); 71 MODECASE(MERGETOOL_MODE_DEFINEBYQUERYMERGECOPY, definebyquerymergecopyMode); 72 MODECASE(MERGETOOL_MODE_LISTMERGEDVODBCOPY, listmergedvodbcopyMode); 73 MODECASE(MERGETOOL_MODE_REVERTMERGEDVODBCOPY, revertmergedvodbcopyMode); 74 MODECASE(MERGETOOL_MODE_UPDATEMERGEDVODBCOPY, updatemergedvodbcopyMode); 67 75 68 76 … … 803 811 } 804 812 805 806 807 808 809 810 813 static bool definebyquerymergecopyMode(pxConfig *config) 814 { 815 PS_ASSERT_PTR_NON_NULL(config, NULL); 816 817 psMetadata *where = psMetadataAlloc(); 818 PXOPT_COPY_S64(config->args, where, "-merge_id", "mergedvodbRun.merge_id", "=="); 819 pxAddLabelSearchArgs (config, where, "-mergedvodb", "mergedvodbRun.mergedvodb", "=="); // define using camRun label 820 821 822 823 if (!psListLength(where->list)) { 824 psFree(where); 825 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 826 return false; 827 } 828 829 PXOPT_LOOKUP_STR(destination_host, config->args, "-set_destination_host", false, false); 830 PXOPT_LOOKUP_STR(mergedvodb_rsync_path, config->args, "-set_mergedvodb_rsync_path", false, false); 831 PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false); 832 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 833 PXOPT_LOOKUP_BOOL(last_merged, config->args, "-last_merged", false); 834 // prevent queueing an addRun if a given exposure has already been added to 835 // the given dvo database 836 psString dvodb_string = NULL; 837 psString bare_query = NULL; 838 if (destination_host) { 839 psTrace("mergedvodbtool.c", PS_LOG_INFO, "destination_host argument found (%s) using mergedvodbtool_find_merge_id_dvo.sql\n", destination_host); 840 // find the cam_id of all the exposures that we want to queue up. 841 bare_query = pxDataGet("mergedvodbtool_find_merge_id_dvo.sql"); 842 // user supplied dvodb 843 psStringAppend(&dvodb_string, "mergedvodbCopy.destination_host = '%s'", destination_host); 844 } else { 845 psError(PS_ERR_UNKNOWN, false, "cannot queue mergedvodbcopy run without a defined destination_host"); 846 847 return false; 848 } 849 850 if (!bare_query) { 851 psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement"); 852 psFree(where); 853 return false; 854 } 855 // Take the bare query and add the dvodb selector 856 psString query = NULL; 857 psStringAppend(&query, bare_query, dvodb_string); 858 psFree(dvodb_string); 859 psFree(bare_query); 860 861 // use psDBGenerateWhereConditionSQL because the SQL ends in a WHERE 862 if (where && psListLength(where->list)) { 863 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 864 psStringAppend(&query, " AND %s", whereClause); 865 psFree(whereClause); 866 } else { 867 psError(PS_ERR_UNKNOWN, true, "search parameters are required"); 868 return false; 869 } 870 if (last_merged) { 871 psStringAppend(&query, " ORDER BY merge_order DESC LIMIT 1"); 872 } 873 874 psFree(where); 875 876 if (!p_psDBRunQuery(config->dbh, query)) { 877 psError(PS_ERR_UNKNOWN, false, "database error"); 878 psFree(query); 879 return false; 880 } 881 psFree(query); 882 883 psArray *output = p_psDBFetchResult(config->dbh); 884 if (!output) { 885 psError(PS_ERR_UNKNOWN, false, "database error"); 886 return false; 887 } 888 if (!psArrayLength(output)) { 889 psTrace("addtool", PS_LOG_INFO, "no rows found"); 890 psFree(output); 891 return true; 892 } 893 894 if (pretend) { 895 // negative simple so the default is true 896 if (!ippdbPrintMetadatas(stdout, output, "mergedvodbCopy", !simple)) { 897 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 898 psFree(output); 899 return false; 900 } 901 psFree(output); 902 return true; 903 } 904 905 // loop over our list of camRun rows to check the supplied and selected dvodb and workdir values: 906 for (long i = 0; i < psArrayLength(output); i++) { 907 psMetadata *md = output->data[i]; 908 909 mergedvodbRunRow *row = mergedvodbRunObjectFromMetadata(md); 910 if (!row) { 911 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into mergedvodbRun"); 912 psFree(output); 913 return false; 914 } 915 916 if (!mergedvodb_rsync_path) { 917 psError(PS_ERR_UNKNOWN, false, "cannot queue mergedvodbcopy run without a defined mergedvodb_rsync_path: merge_id %" PRId64, row->merge_id); 918 psFree(output); 919 return false; 920 } 921 if (!destination_host) { 922 psError(PS_ERR_UNKNOWN, false, "cannot queue mergedvodbcopy run without a defined destination_host: merge_id %" PRId64, row->merge_id); 923 psFree(output); 924 return false; 925 } 926 927 psFree(row); 928 } 929 930 // start a transaction so we don't end up with an exp without any associted 931 // imfiles 932 if (!psDBTransaction(config->dbh)) { 933 psError(PS_ERR_UNKNOWN, false, "database error"); 934 psFree(output); 935 return false; 936 } 937 938 for (long i = 0; i < psArrayLength(output); i++) { 939 psMetadata *md = output->data[i]; 940 941 mergedvodbRunRow *row = mergedvodbRunObjectFromMetadata(md); 942 if (!row) { 943 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun"); 944 psFree(output); 945 return false; 946 } 947 948 // queue the exp 949 if (!pxaddQueueByMergeID(config, 950 row->merge_id, 951 destination_host ? destination_host : "NULL", 952 mergedvodb_rsync_path ?mergedvodb_rsync_path : "NULL" 953 )) { 954 if (!psDBRollback(config->dbh)) { 955 psError(PS_ERR_UNKNOWN, false, "database error sfg"); 956 } 957 psError(PS_ERR_UNKNOWN, false, 958 "failed to trying to queue merge_id: %" PRId64, row->merge_id); 959 psFree(row); 960 psFree(output); 961 return false; 962 } 963 psFree(row); 964 } 965 psFree(output); 966 967 if (!psDBCommit(config->dbh)) { 968 psError(PS_ERR_UNKNOWN, false, "database error"); 969 return false; 970 } 971 972 return true; 973 } 974 975 976 static bool listmergedvodbcopyMode(pxConfig *config) { 977 psMetadata *where = psMetadataAlloc(); 978 PXOPT_COPY_S64(config->args, where, "-merge_id", "mergedvodbCopy.merge_id", "=="); 979 PXOPT_COPY_STR(config->args, where, "-mergedvodbcopy_id", "mergedvodbCopy.mergedvodbcopy_id", "=="); 980 PXOPT_COPY_STR(config->args, where, "-destination_host", "mergedvodbCopy.destination_host", "=="); 981 PXOPT_COPY_STR(config->args, where, "-mergedvodb", "mergedvodbRun.mergedvodb", "=="); 982 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 983 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 984 PXOPT_LOOKUP_BOOL(pending, config->args, "-pending", false); 985 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false); 986 if (!psListLength(where->list)) { 987 psFree(where); 988 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 989 return false; 990 } 991 992 psString query = pxDataGet("mergedvodbtool_find_mergedvodbcopy.sql"); 993 if (!query) { 994 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 995 return false; 996 } 997 998 if (psListLength(where->list)) { 999 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1000 psStringAppend(&query, " WHERE %s", whereClause); 1001 psFree(whereClause); 1002 } 1003 1004 // we either add AND (condition) or WHERE (condition): 1005 if (where->list && faulted) { 1006 // list only faulted rows 1007 psStringAppend(&query, " %s", " AND mergedvodbCopy.fault != 0"); 1008 } 1009 if (where->list && !faulted) { 1010 // don't list faulted rows 1011 psStringAppend(&query, " %s", " AND mergedvodbCopy.fault = 0"); 1012 } 1013 if (!where->list && faulted) { 1014 1015 // list only faulted rows 1016 psStringAppend(&query, " %s", " AND mergedvodbCopy.fault != 0"); 1017 } 1018 if (where->list && !faulted) { 1019 // don't list faulted rows 1020 psStringAppend(&query, " %s", " AND mergedvodbCopy.fault = 0"); 1021 } 1022 if (!where->list && faulted) { 1023 // list only faulted rows 1024 psStringAppend(&query, " %s", " WHERE mergedvodbCopy.fault != 0"); 1025 } 1026 if (!where->list && !faulted) { 1027 // don't list faulted rows 1028 psStringAppend(&query, " %s", " WHERE mergedvodbCopy.fault = 0"); 1029 } 1030 psFree(where); 1031 1032 if (pending) { 1033 //add the cuts for pending (state new, no faults) 1034 psStringAppend(&query, " %s", " AND mergedvodbCopy.state = 'new' AND mergedvodbCopy.fault = 0 AND mergedvodbCopy.destination_host IS NOT NULL AND mergedvodbCopy.mergedvodb_rsync_path IS NOT NULL"); 1035 } 1036 1037 1038 // order by epoch 1039 psStringAppend(&query, " ORDER BY mergedvodbcopy_id"); 1040 1041 // treat limit == 0 as "no limit" 1042 if (limit) { 1043 psString limitString = psDBGenerateLimitSQL(limit); 1044 psStringAppend(&query, " %s", limitString); 1045 psFree(limitString); 1046 } 1047 1048 if (!p_psDBRunQuery(config->dbh, query)) { 1049 psError(PS_ERR_UNKNOWN, false, "database error %s ", query); 1050 psFree(query); 1051 return false; 1052 } 1053 psFree(query); 1054 1055 psArray *output = p_psDBFetchResult(config->dbh); 1056 if (!output) { 1057 psError(PS_ERR_UNKNOWN, false, "database error"); 1058 return false; 1059 } 1060 if (!psArrayLength(output)) { 1061 psTrace("addtool", PS_LOG_INFO, "no rows found"); 1062 psFree(output); 1063 return true; 1064 } 1065 1066 // negate simple so the default is true 1067 if (!ippdbPrintMetadatas(stdout, output, "mergedvodbCopy", !simple)) { 1068 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1069 psFree(output); 1070 return false; 1071 } 1072 1073 psFree(output); 1074 1075 return true; 1076 } 1077 1078 static bool revertmergedvodbcopyMode(pxConfig *config) { 1079 psMetadata *where = psMetadataAlloc(); 1080 PS_ASSERT_PTR_NON_NULL(config, false); 1081 PXOPT_COPY_S64(config->args, where, "-mergedvodbcopy_id", "mergedvodbCopy.mergedvodbcopy_id", "=="); 1082 PXOPT_COPY_S64(config->args, where, "-merge_id", "mergedvodbCopy.merge_id", "=="); 1083 PXOPT_COPY_STR(config->args, where, "-destination_host", "destination_host", "=="); 1084 PXOPT_COPY_S16(config->args, where, "-fault", "mergedvodbCopy.fault", "=="); 1085 1086 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) { 1087 psFree(where); 1088 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 1089 return false; 1090 } 1091 1092 if (!psDBTransaction(config->dbh)) { 1093 psError(PS_ERR_UNKNOWN, false, "database error"); 1094 psFree(where); 1095 return false; 1096 } 1097 1098 { 1099 psString query = pxDataGet("mergedvodbtool_revertmergedvodbcopy.sql"); 1100 if (!query) { 1101 // rollback 1102 if (!psDBRollback(config->dbh)) { 1103 psError(PS_ERR_UNKNOWN, false, "database error"); 1104 } 1105 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1106 psFree(where); 1107 return false; 1108 } 1109 1110 // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE 1111 if (where && psListLength(where->list)) { 1112 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1113 psStringAppend(&query, " AND %s", whereClause); 1114 psFree(whereClause); 1115 } 1116 if (!p_psDBRunQuery(config->dbh, query)) { 1117 // rollback 1118 if (!psDBRollback(config->dbh)) { 1119 psError(PS_ERR_UNKNOWN, false, "database error %s", query); 1120 } 1121 psError(PS_ERR_UNKNOWN, false, "database error %s", query ); 1122 psFree(query); 1123 psFree(where); 1124 return false; 1125 } 1126 psFree(query); 1127 } 1128 psFree(where); 1129 1130 if (!psDBCommit(config->dbh)) { 1131 psError(PS_ERR_UNKNOWN, false, "database error"); 1132 return false; 1133 } 1134 1135 return true; 1136 } 1137 1138 static bool updatemergedvodbcopyMode(pxConfig *config) { 1139 PS_ASSERT_PTR_NON_NULL(config, false); 1140 psMetadata *where = psMetadataAlloc(); 1141 PXOPT_LOOKUP_U64(mergedvodbcopy_id, config->args, "-mergedvodbcopy_id", false, false); 1142 PXOPT_LOOKUP_U64(merge_id, config->args, "-merge_id", false, false); 1143 PXOPT_LOOKUP_STR(state, config->args, "-state", false, false); 1144 PXOPT_LOOKUP_STR(host, config->args, "-host", false, false); 1145 PXOPT_LOOKUP_STR(rsync_path, config->args, "-mergedvodb_rsync_path", false, false); 1146 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 1147 1148 PXOPT_LOOKUP_S16(set_fault, config->args, "-set_fault", false, false); 1149 PXOPT_LOOKUP_STR(set_rsync_path, config->args, "-set_mergedvodb_rsync_path", false, false); 1150 PXOPT_LOOKUP_STR(set_host, config->args, "-set_destination_host", false, false); 1151 PXOPT_LOOKUP_STR(set_state, config->args, "-set_state", false, false); 1152 PXOPT_LOOKUP_F32(dtime, config->args, "-set_dtime", false, false); 1153 PXOPT_COPY_S64(config->args, where, "-mergedvodbcopy_id", "mergedvodbCopy.mergedvodbcopy_id", "=="); 1154 PXOPT_COPY_S64(config->args, where, "-merge_id", "mergedvodbCopy.merge_id", "=="); 1155 1156 PXOPT_COPY_STR(config->args, where, "-state", "mergedvodbCopy.state", "=="); 1157 PXOPT_COPY_STR(config->args, where, "-host", "mergedvodbCopy.destination_host", "=="); 1158 PXOPT_COPY_STR(config->args, where, "-mergedvodb_rsync_path", "mergedvodbCopy.mergedvodb_rsync_path", "=="); 1159 1160 1161 if (!psListLength(where->list)) { 1162 psFree(where); 1163 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 1164 return false; 1165 } 1166 1167 psString query = psStringCopy("UPDATE mergedvodbCopy JOIN mergedvodbRun USING (merge_id) SET "); 1168 int cnt = 0; 1169 psString comma = ","; 1170 if (set_fault) { 1171 psStringAppend(&query, " mergedvodbCopy.fault = %d", set_fault); 1172 cnt++; 1173 } 1174 if (set_rsync_path) { 1175 if (cnt) { 1176 psStringAppend(&query, "%s", comma); 1177 } 1178 1179 psStringAppend(&query, " mergedvodbCopy.mergedvodb_rsync_path = '%s'" , set_rsync_path); 1180 cnt++; 1181 } 1182 1183 if (set_host) { 1184 if (cnt) { 1185 psStringAppend(&query, "%s", comma); 1186 } 1187 1188 psStringAppend(&query, " mergedvodbCopy.destination_host = '%s'" , set_host); 1189 cnt++; 1190 } 1191 1192 1193 if (set_state) { 1194 if (cnt) { 1195 psStringAppend(&query, "%s", comma); 1196 } 1197 1198 psStringAppend(&query, " mergedvodbCopy.state = '%s'" , set_state); 1199 cnt++; 1200 } 1201 1202 if (dtime) { 1203 if (cnt) { 1204 psStringAppend(&query, "%s", comma); 1205 } 1206 psStringAppend(&query, " mergedvodbCopy.dtime = %f", dtime); 1207 cnt++; 1208 } 1209 1210 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1211 psStringAppend(&query, " WHERE %s", whereClause); 1212 1213 1214 if (!p_psDBRunQuery(config->dbh, query)) { 1215 psError(PS_ERR_UNKNOWN, false, "database error %s", query); 1216 psFree(query); 1217 return false; 1218 } 1219 1220 psFree(query); 1221 psFree(where); 1222 1223 return true; 1224 } 1225 1226 1227 -
branches/haf_add201112/ippTools/src/mergetool.h
r32980 r33003 1 1 /* 2 * addtool.h2 * mergetool.h 3 3 * 4 * Copyright (C) 2006 Joshua Hoblitt, Christopher Waters5 4 * 6 5 * This program is free software; you can redistribute it and/or modify it … … 31 30 MERGETOOL_MODE_LISTMERGED, 32 31 MERGETOOL_MODE_REVERTMERGED, 33 MERGETOOL_MODE_UPDATEMERGED 32 MERGETOOL_MODE_UPDATEMERGED, 33 MERGETOOL_MODE_DEFINEBYQUERYMERGECOPY, 34 MERGETOOL_MODE_LISTMERGEDVODBCOPY, 35 MERGETOOL_MODE_REVERTMERGEDVODBCOPY, 36 MERGETOOL_MODE_UPDATEMERGEDVODBCOPY 34 37 } mergetoolMode; 35 38 -
branches/haf_add201112/ippTools/src/mergetoolConfig.c
r32980 r33003 111 111 psMetadataAddF32(updatemergedArgs, PS_LIST_TAIL, "-set_dtime_script", 0, "define elapsed time for script (seconds)", 0); 112 112 psMetadataAddStr(updatemergedArgs, PS_LIST_TAIL, "-set_state", 0, "change the state", NULL); 113 // -definebyquerymergecopy 114 psMetadata *definebyquerymergecopyArgs = psMetadataAlloc(); 115 psMetadataAddS64(definebyquerymergecopyArgs, PS_LIST_TAIL, "-merge_id", 0, "search by merge_id", 0); 116 psMetadataAddStr(definebyquerymergecopyArgs, PS_LIST_TAIL, "-mergedvodb", PS_META_DUPLICATE_OK, "search by mergedvodb", NULL); 117 psMetadataAddStr(definebyquerymergecopyArgs, PS_LIST_TAIL, "-set_mergedvodb_rsync_path", 0, "define workdir", NULL); 118 psMetadataAddStr(definebyquerymergecopyArgs, PS_LIST_TAIL, "-set_destination_host", 0, "set destination host", NULL); 119 psMetadataAddBool(definebyquerymergecopyArgs, PS_LIST_TAIL, "-pretend", 0, "do not actually modify the database", false); 120 psMetadataAddBool(definebyquerymergecopyArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 121 psMetadataAddBool(definebyquerymergecopyArgs, PS_LIST_TAIL, "-last_merged", 0, "if multiple minidvodbs have been dvomerged between rsyncs, then only queue the most recent merged dvodb for copying", false); 122 123 psMetadata *listmergedvodbcopyArgs = psMetadataAlloc(); 124 psMetadataAddU64(listmergedvodbcopyArgs, PS_LIST_TAIL, "-merge_id", 0, "search by mergedvodb_id", 0); 125 psMetadataAddStr(listmergedvodbcopyArgs, PS_LIST_TAIL, "-mergedvodbcopy_id", 0, "search by mergedvodbcopy_id", NULL); 126 psMetadataAddStr(listmergedvodbcopyArgs, PS_LIST_TAIL, "-mergedvodb", 0, "search by mergedvodbRun.mergedvodb", NULL); 127 psMetadataAddStr(listmergedvodbcopyArgs, PS_LIST_TAIL, "-destination_host", 0, "search by mergedvodbCopy.destination_host", NULL); 128 psMetadataAddBool(listmergedvodbcopyArgs, PS_LIST_TAIL, "-pending", 0, "limit to pending items", false); 129 psMetadataAddU64(listmergedvodbcopyArgs, PS_LIST_TAIL, "-limit", 0, "limit to N items", 0); 130 psMetadataAddBool(listmergedvodbcopyArgs, PS_LIST_TAIL, "-simple", 0, "simple output", false); 131 psMetadataAddBool(listmergedvodbcopyArgs, PS_LIST_TAIL, "-faulted", 0, "limit to faulted state", false); 132 133 psMetadata *revertmergedvodbcopyArgs = psMetadataAlloc(); 134 psMetadataAddU64(revertmergedvodbcopyArgs, PS_LIST_TAIL, "-mergedvodbcopy_id", 0, "search by mergedvodbcopy_id", 0); 135 psMetadataAddU64(revertmergedvodbcopyArgs, PS_LIST_TAIL, "-merge_id", 0, "search by merge_id", 0); 136 psMetadataAddStr(revertmergedvodbcopyArgs, PS_LIST_TAIL, "-destination_host", 0, "search by destination_host", NULL); 137 psMetadataAddS16(revertmergedvodbcopyArgs, PS_LIST_TAIL, "-fault", 0, "search by mergedvodbCopyfault", 0); 138 psMetadata *updatemergedvodbcopyArgs = psMetadataAlloc(); 139 psMetadataAddU64(updatemergedvodbcopyArgs, PS_LIST_TAIL, "-mergedvodbcopy_id", 0, "search by mergedvodbcopy_id", 0); 140 psMetadataAddU64(updatemergedvodbcopyArgs, PS_LIST_TAIL, "-merge_id", 0, "search by merge_id", 0); 141 psMetadataAddStr(updatemergedvodbcopyArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL); 142 psMetadataAddStr(updatemergedvodbcopyArgs, PS_LIST_TAIL, "-host", 0, "search by host", NULL); 143 psMetadataAddStr(updatemergedvodbcopyArgs, PS_LIST_TAIL, "-mergedvodb_rsync_path", 0, "search by rsync", NULL); 144 psMetadataAddS16(updatemergedvodbcopyArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 145 146 147 psMetadataAddS16(updatemergedvodbcopyArgs, PS_LIST_TAIL, "-set_fault", 0, "set fault code", 0); 148 149 psMetadataAddF32(updatemergedvodbcopyArgs, PS_LIST_TAIL, "-set_dtime", 0, "set elapsed time for transfer", 0); 150 psMetadataAddStr(updatemergedvodbcopyArgs, PS_LIST_TAIL, "-set_mergedvodb_rsync_path", 0, "change the mergedvodb_rsync_path", NULL); 151 psMetadataAddStr(updatemergedvodbcopyArgs, PS_LIST_TAIL, "-set_destination_host", 0, "change the host", NULL); 152 psMetadataAddStr(updatemergedvodbcopyArgs, PS_LIST_TAIL, "-set_state", 0, "change the state", NULL); 153 154 155 156 157 113 158 114 159 psMetadata *argSets = psMetadataAlloc(); … … 122 167 PXOPT_ADD_MODE("-revertmerged","revert merged dvodbs", MERGETOOL_MODE_REVERTMERGED, revertmergedArgs); 123 168 PXOPT_ADD_MODE("-updatemerged","change merged dvodb properties",MERGETOOL_MODE_UPDATEMERGED, updatemergedArgs); 124 169 PXOPT_ADD_MODE("-definebyquerymergecopy", "create runs from mergedvodbRun", MERGETOOL_MODE_DEFINEBYQUERYMERGECOPY, definebyquerymergecopyArgs); 170 PXOPT_ADD_MODE("-listmergedvodbcopy","list copy mergedvodbs", MERGETOOL_MODE_LISTMERGEDVODBCOPY, listmergedvodbcopyArgs); 171 PXOPT_ADD_MODE("-revertmergedvodbcopy","revert copy mergedvobs",MERGETOOL_MODE_REVERTMERGEDVODBCOPY, revertmergedvodbcopyArgs); 172 PXOPT_ADD_MODE("-updatemergedvodbcopy","change mergedvodb copy properties",MERGETOOL_MODE_UPDATEMERGEDVODBCOPY, updatemergedvodbcopyArgs); 173 125 174 126 175 -
branches/haf_add201112/ippTools/src/minidvodbtool.c
r29528 r33003 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/haf_add201112/ippTools/src/pxmerge.c
r32980 r33003 47 47 } 48 48 } 49 if (!p_psDBRunQueryF(config->dbh,"INSERT INTO mergedvodbRun SELECT 0, minidvodb_id, '%s', '%s', 'new', NULL FROM minidvodbRun WHERE minidvodbRun.minidvodb_id = %lld and minidvodbRun.state = 'merged'", mergedvodb, mergedvodb_path, (long long) minidvodb_id)) 50 { 51 psError(PS_ERR_UNKNOWN, false, "database error %s", query); 52 return false; 53 } 54 // just to be safe, we should have changed at least one row 55 if (psDBAffectedRows(config->dbh) < 1) { 56 psError(PS_ERR_UNKNOWN, false, 57 "no rows affected - should have changed at least one row \n%s", query); 58 return false; 59 } 60 return true; 61 } 49 62 50 // queue the exp 51 // Note: cam_id is being cast here work around psS64 have a different type different 52 // on 32/64 53 //if (!p_psDBRunQueryF(config->dbh, query, 54 // minidvodb_rsync_path ? minidvodb_rsync_path : "NULL", 55 // destination_host ? destination_host : "NULL", 56 // 0, //fault 57 // "new", // state 58 // "NULL", 59 // 0, //dtime 60 61 // (long long) minidvodb_id 62 // )) 63 if (!p_psDBRunQueryF(config->dbh,"INSERT INTO mergedvodbRun SELECT 0, minidvodb_id, '%s', '%s', 'new', NULL FROM minidvodbRun WHERE minidvodbRun.minidvodb_id = %lld and minidvodbRun.state = 'merged'", mergedvodb, mergedvodb_path, (long long) minidvodb_id)) 63 bool pxaddQueueByMergeID(pxConfig *config, 64 psS64 merge_id, 65 char *destination_host, 66 char *mergedvodb_rsync_path 67 ) 68 { 69 PS_ASSERT_PTR_NON_NULL(config, false); 70 71 // load the SQL to enqueue our exp_ids from disk once 72 static psString query = NULL; 73 if (!query) { 74 query = pxDataGet("mergetool_queue_mergecopy_id.sql"); 75 psMemSetPersistent(query, true); 76 if (!query) { 77 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 78 return false; 79 } 80 } 81 82 if (!p_psDBRunQueryF(config->dbh,"INSERT INTO mergedvodbCopy SELECT 0, merge_id, '%s', '%s', 0, 'new', NULL, 0 FROM mergedvodbRun WHERE mergedvodbRun.merge_id = %lld and (mergedvodbRun.state = 'merged' or mergedvodbRun.state = 'full')", mergedvodb_rsync_path, destination_host, (long long) merge_id)) 64 83 65 84 { -
branches/haf_add201112/ippTools/src/pxmerge.h
r32980 r33003 32 32 ); 33 33 34 bool pxaddQueueByMergeID(pxConfig *config, 35 psS64 merge_id, 36 char *destination_host, 37 char *mergedvodb_rsync_path 38 ); 39 40 34 41 #endif // PXMERGE_H
Note:
See TracChangeset
for help on using the changeset viewer.
