Changeset 25199
- Timestamp:
- Aug 25, 2009, 3:30:28 PM (17 years ago)
- Location:
- trunk/ippTools
- Files:
-
- 3 added
- 5 edited
-
share/pstamptool_pendingjob.sql (modified) (1 diff)
-
share/pstamptool_pendingreq.sql (modified) (1 diff)
-
share/pstamptool_revertjob.sql (added)
-
share/pstamptool_revertreq.sql (added)
-
share/pstamptool_revertreq_deletejobs.sql (added)
-
src/pstamptool.c (modified) (4 diffs)
-
src/pstamptool.h (modified) (1 diff)
-
src/pstamptoolConfig.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/share/pstamptool_pendingjob.sql
r25108 r25199 1 SELECT * 2 FROM pstampJob 3 WHERE state = 'run' 4 AND fault = 0 1 SELECT pstampJob.* 2 FROM pstampJob 3 JOIN pstampRequest using(req_id) 4 WHERE pstampRequest.state = 'run' 5 AND pstampRequest.fault = 0 6 AND pstampJob.state = 'run' 7 AND pstampJob.fault = 0 -
trunk/ippTools/share/pstamptool_pendingreq.sql
r21413 r25199 7 7 USING(ds_id) 8 8 WHERE pstampRequest.state = 'new' 9 AND pstampRequest.fault = 0 -
trunk/ippTools/src/pstamptool.c
r25109 r25199 44 44 static bool pendingjobMode(pxConfig *config); 45 45 static bool updatejobMode(pxConfig *config); 46 static bool revertjobMode(pxConfig *config); 46 47 static bool addprojectMode(pxConfig *config); 47 48 static bool projectMode(pxConfig *config); … … 80 81 MODECASE(PSTAMPTOOL_MODE_PENDINGJOB, pendingjobMode); 81 82 MODECASE(PSTAMPTOOL_MODE_UPDATEJOB, updatejobMode); 83 MODECASE(PSTAMPTOOL_MODE_REVERTJOB, revertjobMode); 82 84 MODECASE(PSTAMPTOOL_MODE_ADDPROJECT, addprojectMode); 83 85 MODECASE(PSTAMPTOOL_MODE_MODPROJECT, modprojectMode); … … 491 493 PS_ASSERT_PTR_NON_NULL(config, false); 492 494 493 PXOPT_LOOKUP_S64(req_id, config->args, "-req_id", true, false); 494 495 // printf("Revert request %" PRId64 "\n", req_id); 495 psMetadata *where = psMetadataAlloc(); 496 497 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 498 PXOPT_COPY_S64(config->args, where, "-fault", "req_id", "=="); 499 PXOPT_COPY_STR(config->args, where, "-state", "pstampRequest.state", "=="); 500 501 if (!psListLength(where->list)) { 502 psFree(where); 503 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 504 return false; 505 } 506 507 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 508 psFree(where); 509 510 // delete any jobs that were queued by requests that didn't complete parsing (pstampRequest.state = 'new' 511 // If state = 'run' was supplied this will be a no-op 512 psString query = pxDataGet("pstamptool_revertreq_deletejobs.sql"); 513 psStringAppend(&query, " AND %s", whereClause); 514 if (!p_psDBRunQuery(config->dbh, query)) { 515 psError(PS_ERR_UNKNOWN, false, "database error"); 516 return false; 517 } 518 psFree(query); 519 520 // clear fault for requests 521 query = pxDataGet("pstamptool_revertreq.sql"); 522 psStringAppend(&query, " AND %s", whereClause); 496 523 497 if (!p_psDBRunQueryF(config->dbh, "DELETE FROM pstampJob where req_id = %" PRId64, req_id)) { 498 psError(PS_ERR_UNKNOWN, false, "database error"); 499 return false; 500 } 501 if (!p_psDBRunQueryF(config->dbh, 502 "UPDATE pstampRequest set state ='new', name=NULL, reqType=NULL, fault=0 where req_id = %" PRId64, req_id)) { 503 psError(PS_ERR_UNKNOWN, false, "database error"); 504 return false; 505 } 524 psFree(whereClause); 525 526 if (!p_psDBRunQuery(config->dbh, query)) { 527 psError(PS_ERR_UNKNOWN, false, "database error"); 528 return false; 529 } 530 psFree(query); 506 531 507 532 return true; … … 734 759 return true; 735 760 } 761 762 static bool revertjobMode(pxConfig *config) 763 { 764 PS_ASSERT_PTR_NON_NULL(config, false); 765 766 psMetadata *where = psMetadataAlloc(); 767 768 PXOPT_COPY_S64(config->args, where, "-job_id", "job_id", "=="); 769 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 770 PXOPT_COPY_S64(config->args, where, "-fault", "fault", "=="); 771 772 if (!psListLength(where->list)) { 773 psFree(where); 774 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 775 return false; 776 } 777 778 psString query = pxDataGet("pstamptool_revertjob.sql"); 779 psString whereClause = psDBGenerateWhereConditionSQL(where, "pstampJob"); 780 psStringAppend(&query, " AND %s", whereClause); 781 psFree(whereClause); 782 psFree(where); 783 784 if (!p_psDBRunQuery(config->dbh, query)) { 785 psError(PS_ERR_UNKNOWN, false, "database error"); 786 return false; 787 } 788 789 return true; 790 } 736 791 static bool addprojectMode(pxConfig *config) 737 792 { -
trunk/ippTools/src/pstamptool.h
r19760 r25199 39 39 PSTAMPTOOL_MODE_JOBRESULT, 40 40 PSTAMPTOOL_MODE_UPDATEJOB, 41 PSTAMPTOOL_MODE_REVERTJOB, 41 42 PSTAMPTOOL_MODE_ADDPROJECT, 42 43 PSTAMPTOOL_MODE_MODPROJECT, -
trunk/ippTools/src/pstamptoolConfig.c
r25075 r25199 97 97 // -revertreq 98 98 psMetadata *revertreqArgs = psMetadataAlloc(); 99 psMetadataAddS64(revertreqArgs, PS_LIST_TAIL, "-req_id", 0, "req_id for which to revert", 0); 99 psMetadataAddS64(revertreqArgs, PS_LIST_TAIL, "-req_id", 0, "req_id to revert", 0); 100 psMetadataAddS16(revertreqArgs, PS_LIST_TAIL, "-fault", 0, "fault to revert", 0); 101 psMetadataAddStr(revertreqArgs, PS_LIST_TAIL, "-state", 0, "state to revert", NULL); 100 102 101 103 // -addjob … … 129 131 psMetadataAddStr(updatejobArgs, PS_LIST_TAIL, "-fault", 0, "new result", NULL); 130 132 133 // -revertjob 134 psMetadata *revertjobArgs = psMetadataAlloc(); 135 psMetadataAddS64(revertjobArgs, PS_LIST_TAIL, "-req_id", 0, "req_id to revert", 0); 136 psMetadataAddS64(revertjobArgs, PS_LIST_TAIL, "-job_id", 0, "job_id to revert", 0); 137 psMetadataAddS16(revertjobArgs, PS_LIST_TAIL, "-fault", 0, "fault to revert", 0); 138 131 139 // -addproject 132 140 psMetadata *addprojectArgs = psMetadataAlloc(); … … 159 167 PXOPT_ADD_MODE("-addreq", "", PSTAMPTOOL_MODE_ADDREQ, addreqArgs); 160 168 PXOPT_ADD_MODE("-pendingreq", "", PSTAMPTOOL_MODE_PENDINGREQ, pendingreqArgs); 161 PXOPT_ADD_MODE("-updatereq", "", PSTAMPTOOL_MODE_UPDATEREQ, updatereqArgs);169 PXOPT_ADD_MODE("-updatereq", "", PSTAMPTOOL_MODE_UPDATEREQ, updatereqArgs); 162 170 PXOPT_ADD_MODE("-listreq", "", PSTAMPTOOL_MODE_LISTREQ, listreqArgs); 163 171 PXOPT_ADD_MODE("-completedreq", "", PSTAMPTOOL_MODE_COMPLETEDREQ, completedreqArgs); … … 167 175 PXOPT_ADD_MODE("-listjob", "", PSTAMPTOOL_MODE_LISTJOB, listjobArgs); 168 176 PXOPT_ADD_MODE("-pendingjob", "", PSTAMPTOOL_MODE_PENDINGJOB, pendingjobArgs); 169 PXOPT_ADD_MODE("-updatejob", "", PSTAMPTOOL_MODE_UPDATEJOB, updatejobArgs); 177 PXOPT_ADD_MODE("-updatejob", "", PSTAMPTOOL_MODE_UPDATEJOB, updatejobArgs); 178 PXOPT_ADD_MODE("-revertjob", "", PSTAMPTOOL_MODE_REVERTJOB, revertjobArgs); 170 179 171 180 PXOPT_ADD_MODE("-adddatastore", "", PSTAMPTOOL_MODE_ADDDATASTORE, adddatastoreArgs);
Note:
See TracChangeset
for help on using the changeset viewer.
