Changeset 19522
- Timestamp:
- Sep 11, 2008, 3:25:25 PM (18 years ago)
- Location:
- trunk/ippTools/src
- Files:
-
- 3 edited
-
warptool.c (modified) (3 diffs)
-
warptool.h (modified) (1 diff)
-
warptoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/warptool.c
r19416 r19522 50 50 static bool pendingcleanupwarpMode(pxConfig *config); 51 51 static bool donecleanupMode(pxConfig *config); 52 static bool tocleanedskyfileMode(pxConfig *config); 53 static bool topurgedskyfileMode(pxConfig *config); 54 static bool tofullskyfileMode(pxConfig *config); 55 static bool updateskyfileMode(pxConfig *config); 52 56 53 57 static bool parseAndInsertSkyCellMap(pxConfig *config, const char *mapfile); … … 91 95 MODECASE(WARPTOOL_MODE_PENDINGCLEANUPSKYFILE, pendingcleanupwarpMode); 92 96 MODECASE(WARPTOOL_MODE_DONECLEANUP, donecleanupMode); 97 MODECASE(WARPTOOL_MODE_TOCLEANEDSKYFILE, tocleanedskyfileMode); 98 MODECASE(WARPTOOL_MODE_TOPURGEDSKYFILE, topurgedskyfileMode); 99 MODECASE(WARPTOOL_MODE_TOFULLSKYFILE, tofullskyfileMode); 100 MODECASE(WARPTOOL_MODE_UPDATESKYFILE, updateskyfileMode); 93 101 94 102 default: … … 1502 1510 return true; 1503 1511 } 1512 1513 // update warpSkyfile.data_state to given value. 1514 // afterwards, if all skfyiles in the run have the new state, update the state for the run as well 1515 // shared code for the modes -tocleanedskyfile -tofullskyfile -topurgedskyfile 1516 1517 static bool change_skyfile_data_state(pxConfig *config, psString data_state, psString run_state) 1518 { 1519 PS_ASSERT_PTR_NON_NULL(config, false); 1520 1521 // warp_id, skycell_id are required 1522 PXOPT_LOOKUP_S64(warp_id, config->args, "-warp_id", true, false); 1523 PXOPT_LOOKUP_STR(skycell_id, config->args, "-skycell_id", true, false); 1524 1525 psString query = pxDataGet("warptool_change_skyfile_data_state.sql"); 1526 1527 if (!psDBTransaction(config->dbh)) { 1528 psError(PS_ERR_UNKNOWN, false, "database error"); 1529 return false; 1530 } 1531 1532 // note only updates if warpRun.state = run_state 1533 if (!p_psDBRunQuery(config->dbh, query, data_state, warp_id, skycell_id, run_state)) { 1534 psError(PS_ERR_UNKNOWN, false, "database error"); 1535 // rollback 1536 if (!psDBRollback(config->dbh)) { 1537 psError(PS_ERR_UNKNOWN, false, "database error"); 1538 } 1539 psError(PS_ERR_UNKNOWN, false, "database error"); 1540 return false; 1541 } 1542 psFree(query); 1543 1544 query = pxDataGet("warptool_change_run_state.sql"); 1545 if (!p_psDBRunQuery(config->dbh, query, data_state, warp_id, data_state)) { 1546 // rollback 1547 if (!psDBRollback(config->dbh)) { 1548 psError(PS_ERR_UNKNOWN, false, "database error"); 1549 } 1550 psError(PS_ERR_UNKNOWN, false, "database error"); 1551 return false; 1552 } 1553 1554 if (!psDBCommit(config->dbh)) { 1555 psError(PS_ERR_UNKNOWN, false, "database error"); 1556 return false; 1557 } 1558 1559 return true; 1560 } 1561 static bool tocleanedskyfileMode(pxConfig *config) 1562 { 1563 return change_skyfile_data_state(config, "cleaned", "goto_cleaned"); 1564 } 1565 static bool tofullskyfileMode(pxConfig *config) 1566 { 1567 return change_skyfile_data_state(config, "full", "update"); 1568 } 1569 static bool topurgedskyfileMode(pxConfig *config) 1570 { 1571 return change_skyfile_data_state(config, "purged", "goto_purged"); 1572 } 1573 1574 static bool updateskyfileMode(pxConfig *config) 1575 { 1576 PS_ASSERT_PTR_NON_NULL(config, false); 1577 1578 // warp_id, skycell_id, code are required 1579 PXOPT_LOOKUP_S64(warp_id, config->args, "-warp_id", true, false); 1580 PXOPT_LOOKUP_STR(skycell_id, config->args, "-skycell_id", true, false); 1581 PXOPT_LOOKUP_S16(code, config->args, "-code", false, false); 1582 1583 psString query = pxDataGet("warptool_updateskyfile.sql"); 1584 1585 // note only updates if warpRun.state = run_state 1586 if (!p_psDBRunQuery(config->dbh, query, code, warp_id, skycell_id)) { 1587 psError(PS_ERR_UNKNOWN, false, "database error"); 1588 return false; 1589 } 1590 psFree(query); 1591 1592 return true; 1593 } -
trunk/ippTools/src/warptool.h
r19160 r19522 45 45 WARPTOOL_MODE_PENDINGCLEANUPSKYFILE, 46 46 WARPTOOL_MODE_DONECLEANUP, 47 WARPTOOL_MODE_TOCLEANEDSKYFILE, 48 WARPTOOL_MODE_TOPURGEDSKYFILE, 49 WARPTOOL_MODE_TOFULLSKYFILE, 50 WARPTOOL_MODE_UPDATESKYFILE, 47 51 } warptoolMode; 48 52 -
trunk/ippTools/src/warptoolConfig.c
r19408 r19522 332 332 psMetadataAddU64(donecleanupArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 333 333 334 // -tocleanedskyfile 335 psMetadata *tocleanedskyfileArgs = psMetadataAlloc(); 336 psMetadataAddS64(tocleanedskyfileArgs, PS_LIST_TAIL, "-warp_id", 0, "warptool ID to update", 0); 337 psMetadataAddStr(tocleanedskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0, "skycell ID to update", NULL); 338 339 // -topurgedskyfile 340 psMetadata *topurgedskyfileArgs = psMetadataAlloc(); 341 psMetadataAddS64(topurgedskyfileArgs, PS_LIST_TAIL, "-warp_id", 0, "warptool ID to update", 0); 342 psMetadataAddStr(topurgedskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0, "skycell ID to update", NULL); 343 344 // -tofullskyfile 345 psMetadata *tofullskyfileArgs = psMetadataAlloc(); 346 psMetadataAddS64(tofullskyfileArgs, PS_LIST_TAIL, "-warp_id", 0, "warptool ID to update", 0); 347 psMetadataAddStr(tofullskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0, "skycell ID to update", NULL); 348 349 // -toupdateskyfile 350 psMetadata *updateskyfileArgs = psMetadataAlloc(); 351 psMetadataAddS64(updateskyfileArgs, PS_LIST_TAIL, "-warp_id", 0, "warptool ID to update", 0); 352 psMetadataAddStr(updateskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0, "skycell ID to update", NULL); 353 psMetadataAddS16(updateskyfileArgs, PS_LIST_TAIL, "-code", 0, "new fault code", 0); 354 334 355 psFree(now); 335 356 psMetadata *argSets = psMetadataAlloc(); … … 354 375 PXOPT_ADD_MODE("-pendingcleanupskyfile", "show runs that need to be cleaned up", WARPTOOL_MODE_PENDINGCLEANUPSKYFILE, pendingcleanupskyfileArgs); 355 376 PXOPT_ADD_MODE("-donecleanup", "show runs that have been cleaned", WARPTOOL_MODE_DONECLEANUP, donecleanupArgs); 377 PXOPT_ADD_MODE("-tocleanedskyfile", "set skyfile as cleaned", WARPTOOL_MODE_TOCLEANEDSKYFILE, tocleanedskyfileArgs); 378 PXOPT_ADD_MODE("-topurgedskyfile", "set skyfile as purged", WARPTOOL_MODE_TOPURGEDSKYFILE, topurgedskyfileArgs); 379 PXOPT_ADD_MODE("-tofullskyfile", "set skyfile as full (updated)", WARPTOOL_MODE_TOFULLSKYFILE, tofullskyfileArgs); 380 PXOPT_ADD_MODE("-updateskyfile", "update fault code for skyfile", WARPTOOL_MODE_UPDATESKYFILE, updateskyfileArgs); 356 381 357 382 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Note:
See TracChangeset
for help on using the changeset viewer.
