Changeset 29289
- Timestamp:
- Sep 30, 2010, 3:25:54 PM (16 years ago)
- Location:
- trunk/ippTools/src
- Files:
-
- 2 edited
-
pstamptool.c (modified) (11 diffs)
-
pstamptoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/pstamptool.c
r29248 r29289 64 64 break; 65 65 66 // XXX make this a configurable parameter 67 #define PSTAMP_MAX_JOB_FAULTS 5 68 #define PSTAMP_MAX_DEP_FAULTS 5 66 69 67 70 int main(int argc, char **argv) … … 717 720 outputBase, 718 721 options, 719 dep_id 722 dep_id, 723 0 // fault_count 720 724 )) { 721 725 psError(PS_ERR_UNKNOWN, false, "database error"); … … 911 915 psStringAppend(&query, "\n %c pstampJob.fault = %d", c, fault); 912 916 c = ','; 917 psStringAppend(&query, ", pstampJob.fault_count = pstampJob.fault_count+ 1"); 913 918 } 914 919 … … 984 989 pxAddLabelSearchArgs(config, where, "-label", "pstampRequest.label", "LIKE"); 985 990 991 PXOPT_LOOKUP_BOOL(clear_fault_count, config->args, "-clear_fault_count", false); 992 986 993 PXOPT_LOOKUP_BOOL(all, config->args, "-all", false); 994 987 995 // XXX: we don't actually use -limit. It doesn't work for UPDATE 988 996 // it's an allowed arg because add_poll_args adds it … … 992 1000 // By default only revert faults < PSTAMP_FIRST_ERROR_CODE which are our "ipp exit codes" 993 1001 // codes larger than that are the pstamp request interface. 994 // Don't fault those unless -fault wa aprovided1002 // Don't fault those unless -fault was explicitly provided 995 1003 psString faultClause = psStringCopy(""); 996 1004 if (!fault) { … … 1011 1019 psFree(where); 1012 1020 1013 if (!p_psDBRunQueryF(config->dbh, query, faultClause)) { 1021 // don't keep reverting once the number of faults reaches some value unless 1022 // a parameter asking us to clear that count is provided 1023 psString faultCountClause = NULL; 1024 if (clear_fault_count) { 1025 psStringAppend(&faultCountClause, "\n, pstampJob.fault_count = 0"); 1026 } else { 1027 psStringAppend(&query, " AND pstampJob.fault_count < %d", PSTAMP_MAX_JOB_FAULTS); 1028 } 1029 1030 if (!p_psDBRunQueryF(config->dbh, query, faultCountClause, faultClause)) { 1031 psFree(faultCountClause); 1014 1032 psFree(faultClause); 1015 1033 psFree(query); … … 1019 1037 1020 1038 psFree(faultClause); 1039 psFree(faultCountClause); 1040 psFree(query); 1021 1041 1022 1042 return true; … … 1223 1243 need_magic, 1224 1244 outdir, 1225 0 // fault 1245 0, // fault 1246 0 // fault_count 1226 1247 )) { 1227 1248 if (!psDBRollback(config->dbh)) { … … 1345 1366 psStringAppend(&query, "%s fault = %d", needComma ? ", " : "", fault); 1346 1367 needComma = true; 1368 psStringAppend(&query, ", pstampDependent.fault_count = pstampDependent.fault_count + 1"); 1347 1369 } 1348 1370 psStringAppend(&query, " WHERE dep_id = %" PRId64, dep_id); … … 1373 1395 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 1374 1396 pxAddLabelSearchArgs(config, where, "-label", "pstampRequest.label", "=="); 1397 PXOPT_LOOKUP_BOOL(clear_fault_count, config->args, "-clear_fault_count", false); 1375 1398 1376 1399 // XXX: we don't actually use -limit. It doesn't work for UPDATE … … 1403 1426 } 1404 1427 1405 if (!p_psDBRunQuery(config->dbh, query)) { 1428 // don't keep reverting once the number of faults reaches some value unless 1429 // a parameter asking us to clear that count is provided 1430 psString faultCountClause = NULL; 1431 if (clear_fault_count) { 1432 psStringAppend(&faultCountClause, "\n, pstampDependent.fault_count = 0"); 1433 } else { 1434 psStringAppend(&faultCountClause, " "); 1435 psStringAppend(&query, " AND pstampDependent.fault_count < %d", PSTAMP_MAX_DEP_FAULTS); 1436 } 1437 1438 if (!p_psDBRunQueryF(config->dbh, query, faultCountClause)) { 1406 1439 psError(PS_ERR_UNKNOWN, false, "database error"); 1407 1440 psFree(query); -
trunk/ippTools/src/pstamptoolConfig.c
r29248 r29289 185 185 psMetadataAddS16(revertjobArgs, PS_LIST_TAIL, "-fault", 0, "fault to revert", 0); 186 186 psMetadataAddStr(revertjobArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by pstampRequest label (LIKE comparision)", NULL); 187 psMetadataAddBool(revertjobArgs, PS_LIST_TAIL, "-clear_fault_count", 0, "clear job fault count", false); 187 188 psMetadataAddBool(revertjobArgs, PS_LIST_TAIL, "-all", 0, "revert all faulted jobs", false); 188 189 psMetadataAddU64(revertjobArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 214 215 psMetadataAddStr(revertdependentArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "define label for dependent ", NULL); 215 216 psMetadataAddS16(revertdependentArgs, PS_LIST_TAIL, "-fault", 0, "search by dependent fault", 0); 217 psMetadataAddBool(revertdependentArgs, PS_LIST_TAIL, "-clear_fault_count", 0, "clear job fault count", false); 216 218 psMetadataAddU64(revertdependentArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 217 219
Note:
See TracChangeset
for help on using the changeset viewer.
