Changeset 29248
- Timestamp:
- Sep 28, 2010, 10:42:54 AM (16 years ago)
- Location:
- trunk/ippTools
- Files:
-
- 1 added
- 3 edited
-
share/pstamptool_stopdependentjob.sql (added)
-
src/pstamptool.c (modified) (4 diffs)
-
src/pstamptool.h (modified) (1 diff)
-
src/pstamptoolConfig.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/pstamptool.c
r29143 r29248 46 46 static bool pendingjobMode(pxConfig *config); 47 47 static bool updatejobMode(pxConfig *config); 48 static bool stopdependentjobMode(pxConfig *config); 48 49 static bool revertjobMode(pxConfig *config); 49 50 static bool addprojectMode(pxConfig *config); … … 89 90 MODECASE(PSTAMPTOOL_MODE_PENDINGJOB, pendingjobMode); 90 91 MODECASE(PSTAMPTOOL_MODE_UPDATEJOB, updatejobMode); 92 MODECASE(PSTAMPTOOL_MODE_STOPDEPENDENTJOB, stopdependentjobMode); 91 93 MODECASE(PSTAMPTOOL_MODE_REVERTJOB, revertjobMode); 92 94 MODECASE(PSTAMPTOOL_MODE_ADDPROJECT, addprojectMode); … … 925 927 psU64 affected = psDBAffectedRows(config->dbh); 926 928 psLogMsg("pstamptool", PS_LOG_INFO, "Updated %" PRIu64 " pstampJobs", affected); 929 930 return true; 931 } 932 // Terminate jobs which have dependents setting both the pstampDependent and pstampJob.fault 933 static bool stopdependentjobMode(pxConfig *config) 934 { 935 PS_ASSERT_PTR_NON_NULL(config, false); 936 937 PXOPT_LOOKUP_S32(fault, config->args, "-set_fault", true, false); 938 939 psMetadata *where = psMetadataAlloc(); 940 941 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 942 PXOPT_COPY_S64(config->args, where, "-job_id", "job_id", "=="); 943 PXOPT_COPY_S64(config->args, where, "-dep_id", "dep_id", "=="); 944 PXOPT_COPY_S32(config->args, where, "-fault", "pstampDependent.fault", "=="); 945 946 // XXX: How about selecting by pstampRequest.label? No. That is too dangerous by itself. 947 948 psString query = pxDataGet("pstamptool_stopdependentjob.sql"); 949 950 if (psListLength(where->list)) { 951 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 952 psStringAppend(&query, " AND %s", whereClause); 953 psFree(whereClause); 954 } else { 955 psFree(where); 956 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 957 return false; 958 } 959 psFree(where); 960 961 if (!p_psDBRunQueryF(config->dbh, query, fault, fault)) { 962 psError(PS_ERR_UNKNOWN, false, "database error"); 963 psFree(query); 964 return false; 965 } 966 psFree(query); 967 968 psU64 affected = psDBAffectedRows(config->dbh); 969 psLogMsg("pstamptool", PS_LOG_INFO, "Updated %" PRIu64 " pstampJobs and pstampDependents", affected); 927 970 928 971 return true; … … 1327 1370 PXOPT_COPY_S64(config->args, where, "-fault", "pstampDependent.fault", "=="); 1328 1371 PXOPT_COPY_S64(config->args, where, "-dep_id", "dep_id", "=="); 1372 PXOPT_COPY_S64(config->args, where, "-job_id", "job_id", "=="); 1373 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 1329 1374 pxAddLabelSearchArgs(config, where, "-label", "pstampRequest.label", "=="); 1330 1375 -
trunk/ippTools/src/pstamptool.h
r28183 r29248 38 38 PSTAMPTOOL_MODE_LISTJOB, 39 39 PSTAMPTOOL_MODE_PENDINGJOB, 40 PSTAMPTOOL_MODE_STOPDEPENDENTJOB, 40 41 PSTAMPTOOL_MODE_JOBRESULT, 41 42 PSTAMPTOOL_MODE_UPDATEJOB, -
trunk/ippTools/src/pstamptoolConfig.c
r29143 r29248 170 170 psMetadataAddS16(updatejobArgs, PS_LIST_TAIL, "-set_fault", 0, "new result", 0); 171 171 172 // -stopdependentjob 173 psMetadata *stopdependentjobArgs = psMetadataAlloc(); 174 psMetadataAddS64(stopdependentjobArgs, PS_LIST_TAIL, "-req_id", 0, "req_id of jobs to update", 0); 175 psMetadataAddS64(stopdependentjobArgs, PS_LIST_TAIL, "-job_id", 0, "job_id of jobs to update", 0); 176 psMetadataAddS64(stopdependentjobArgs, PS_LIST_TAIL, "-dep_id", 0, "dep_id of jobs to update", 0); 177 psMetadataAddS16(stopdependentjobArgs, PS_LIST_TAIL, "-fault", 0, "current value for dependent fault", 0); 178 psMetadataAddS16(stopdependentjobArgs, PS_LIST_TAIL, "-set_fault", 0, "new fault value for job and dependent (required)", 0); 179 172 180 // -revertjob 173 181 psMetadata *revertjobArgs = psMetadataAlloc(); … … 201 209 // -revertdependent 202 210 psMetadata *revertdependentArgs = psMetadataAlloc(); 203 psMetadataAddS64(revertdependentArgs, PS_LIST_TAIL, "-dep_id", 0, "define id for dependent", 0); 211 psMetadataAddS64(revertdependentArgs, PS_LIST_TAIL, "-dep_id", 0, "search by dep_id for dependent", 0); 212 psMetadataAddS64(revertdependentArgs, PS_LIST_TAIL, "-job_id", 0, "search by job_ idfor dependent", 0); 213 psMetadataAddS64(revertdependentArgs, PS_LIST_TAIL, "-req_id", 0, "search by req_id for dependent", 0); 204 214 psMetadataAddStr(revertdependentArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "define label for dependent ", NULL); 205 psMetadataAddS16(revertdependentArgs, PS_LIST_TAIL, "-fault", 0, "definefault", 0);206 psMetadataAddU64(revertdependentArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);215 psMetadataAddS16(revertdependentArgs, PS_LIST_TAIL, "-fault", 0, "search by dependent fault", 0); 216 psMetadataAddU64(revertdependentArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 207 217 208 218 // -pendingdependent … … 263 273 PXOPT_ADD_MODE("-pendingjob", "", PSTAMPTOOL_MODE_PENDINGJOB, pendingjobArgs); 264 274 PXOPT_ADD_MODE("-updatejob", "", PSTAMPTOOL_MODE_UPDATEJOB, updatejobArgs); 275 PXOPT_ADD_MODE("-stopdependentjob", "", PSTAMPTOOL_MODE_STOPDEPENDENTJOB, stopdependentjobArgs); 265 276 PXOPT_ADD_MODE("-revertjob", "", PSTAMPTOOL_MODE_REVERTJOB, revertjobArgs); 266 277
Note:
See TracChangeset
for help on using the changeset viewer.
