Changeset 27956
- Timestamp:
- May 13, 2010, 6:44:53 PM (16 years ago)
- Location:
- branches/haf_branches/ipp.20100512/ippTools
- Files:
-
- 3 edited
-
share/Makefile.am (modified) (2 diffs)
-
src/addtool.c (modified) (1 diff)
-
src/addtoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/haf_branches/ipp.20100512/ippTools/share/Makefile.am
r27936 r27956 9 9 addtool_find_pendingmergeprocess.sql \ 10 10 addtool_find_processedexp.sql \ 11 addtool_find_minidvodbprocessed.sql \ 11 12 addtool_find_minidvodbrun.sql \ 12 13 addtool_find_minidvodbrun2.sql \ … … 15 16 addtool_queue_cam_id.sql \ 16 17 addtool_queue_minidvodbrun.sql \ 18 addtool_reset_faulted_minidvodbruns.sql \ 17 19 addtool_reset_faulted_runs.sql \ 20 addtool_revertminidvodbprocessed.sql \ 18 21 addtool_revertprocessedexp.sql \ 19 22 camtool_donecleanup.sql \ -
branches/haf_branches/ipp.20100512/ippTools/src/addtool.c
r27936 r27956 1097 1097 1098 1098 static bool listminidvodbprocessedMode(pxConfig *config) { 1099 psMetadata *where = psMetadataAlloc(); 1100 PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodbProcessed.minidvodb_name", "=="); 1101 PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "addRun.minidvodb_group", "=="); 1102 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1103 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1104 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false); 1105 if (!psListLength(where->list)) { 1106 psFree(where); 1107 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 1108 return false; 1109 } 1110 1111 psString query = pxDataGet("addtool_find_minidvodbprocessed.sql"); 1112 if (!query) { 1113 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1114 return false; 1115 } 1116 1117 if (psListLength(where->list)) { 1118 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1119 psStringAppend(&query, " WHERE %s", whereClause); 1120 psFree(whereClause); 1121 } 1122 1123 // we either add AND (condition) or WHERE (condition): 1124 if (where->list && faulted) { 1125 // list only faulted rows 1126 psStringAppend(&query, " %s", " AND minidvodbProcessed.fault != 0"); 1127 } 1128 if (where->list && !faulted) { 1129 // don't list faulted rows 1130 psStringAppend(&query, " %s", " AND minidvodbProcessed.fault = 0"); 1131 } 1132 if (!where->list && faulted) { 1133 // list only faulted rows 1134 psStringAppend(&query, " %s", " WHERE minidvodbProcessed.fault != 0"); 1135 } 1136 if (!where->list && !faulted) { 1137 // don't list faulted rows 1138 psStringAppend(&query, " %s", " WHERE minidvodbProcessed.fault = 0"); 1139 } 1140 psFree(where); 1141 1142 //grou by minidvodb_name to not show all the addRuns 1143 psStringAppend(&query, " GROUP BY minidvodb_name"); 1144 1145 // order by epoch 1146 psStringAppend(&query, " ORDER BY epoch"); 1147 1148 // treat limit == 0 as "no limit" 1149 if (limit) { 1150 psString limitString = psDBGenerateLimitSQL(limit); 1151 psStringAppend(&query, " %s", limitString); 1152 psFree(limitString); 1153 } 1154 1155 if (!p_psDBRunQuery(config->dbh, query)) { 1156 psError(PS_ERR_UNKNOWN, false, "database error %s ", query); 1157 psFree(query); 1158 return false; 1159 } 1160 psFree(query); 1161 1162 psArray *output = p_psDBFetchResult(config->dbh); 1163 if (!output) { 1164 psError(PS_ERR_UNKNOWN, false, "database error"); 1165 return false; 1166 } 1167 if (!psArrayLength(output)) { 1168 psTrace("addtool", PS_LOG_INFO, "no rows found"); 1169 psFree(output); 1170 return true; 1171 } 1172 1173 // negate simple so the default is true 1174 if (!ippdbPrintMetadatas(stdout, output, "minidvodbProcessed", !simple)) { 1175 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1176 psFree(output); 1177 return false; 1178 } 1179 1180 psFree(output); 1181 1099 1182 return true; 1100 1183 } 1101 1184 1102 1185 static bool revertminidvodbprocessedMode(pxConfig *config) { 1186 psMetadata *where = psMetadataAlloc(); 1187 PS_ASSERT_PTR_NON_NULL(config, false); 1188 PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodbProcessed.minidvodb_name", "=="); 1189 PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "addRun.minidvodb_group", "=="); 1190 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) { 1191 psFree(where); 1192 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 1193 return false; 1194 } 1195 1196 if (!psDBTransaction(config->dbh)) { 1197 psError(PS_ERR_UNKNOWN, false, "database error"); 1198 psFree(where); 1199 return false; 1200 } 1201 1202 { 1203 psString query = pxDataGet("addtool_reset_faulted_minidvodbruns.sql"); 1204 if (!query) { 1205 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1206 psFree(where); 1207 return false; 1208 } 1209 1210 // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE 1211 1212 if (where && psListLength(where->list)) { 1213 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1214 psStringAppend(&query, " AND %s", whereClause); 1215 psFree(whereClause); 1216 } 1217 1218 if (!p_psDBRunQuery(config->dbh, query)) { 1219 // rollback 1220 if (!psDBRollback(config->dbh)) { 1221 psError(PS_ERR_UNKNOWN, false, "database error"); 1222 } 1223 psError(PS_ERR_UNKNOWN, false, "database error"); 1224 psFree(query); 1225 psFree(where); 1226 return false; 1227 } 1228 psFree(query); 1229 } 1230 { 1231 psString query = pxDataGet("addtool_revertminidvodbprocessed.sql"); 1232 if (!query) { 1233 // rollback 1234 if (!psDBRollback(config->dbh)) { 1235 psError(PS_ERR_UNKNOWN, false, "database error"); 1236 } 1237 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1238 psFree(where); 1239 return false; 1240 } 1241 1242 // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE 1243 if (where && psListLength(where->list)) { 1244 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1245 psStringAppend(&query, " AND %s", whereClause); 1246 psFree(whereClause); 1247 } 1248 1249 if (!p_psDBRunQuery(config->dbh, query)) { 1250 // rollback 1251 if (!psDBRollback(config->dbh)) { 1252 psError(PS_ERR_UNKNOWN, false, "database error"); 1253 } 1254 psError(PS_ERR_UNKNOWN, false, "database error"); 1255 psFree(query); 1256 psFree(where); 1257 return false; 1258 } 1259 psFree(query); 1260 } 1261 psFree(where); 1262 1263 if (!psDBCommit(config->dbh)) { 1264 psError(PS_ERR_UNKNOWN, false, "database error"); 1265 return false; 1266 } 1267 1268 1269 1103 1270 return true; 1104 1271 } 1105 1272 1106 1273 static bool updateminidvodbprocessedMode(pxConfig *config) { 1274 PS_ASSERT_PTR_NON_NULL(config, false); 1275 1276 psMetadata *where = psMetadataAlloc(); 1277 PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodb_name", "=="); 1278 PXOPT_LOOKUP_STR(minidvodb_name, config->args, "-minidvodb_name", true, false); 1279 1280 PXOPT_LOOKUP_U64(merge_order, config->args, "-set_merge_order", false, false); 1281 PXOPT_LOOKUP_S16(fault, config->args, "-set_fault", false, false); 1282 PXOPT_LOOKUP_F32(dtime_relphot, config->args, "-set_dtime_relphot", false, false); 1283 PXOPT_LOOKUP_F32(dtime_resort, config->args, "-set_dtime_resort", false, false); 1284 PXOPT_LOOKUP_F32(dtime_merge, config->args, "-set_dtime_merge", false, false); 1285 1286 1287 1288 if (!psListLength(where->list)) { 1289 psFree(where); 1290 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 1291 return false; 1292 } 1293 1294 psString query = psStringCopy("UPDATE minidvodbProcessed SET "); 1295 int cnt = 0; 1296 psString comma = ","; 1297 if (fault) { 1298 psStringAppend(&query, " fault = %d", fault); 1299 cnt++; 1300 } 1301 1302 if (merge_order) { 1303 if (cnt) { 1304 psStringAppend(&query,comma); 1305 } 1306 1307 psStringAppend(&query, " merge_order = %" PRId64, merge_order); 1308 cnt++; 1309 } 1310 1311 if (dtime_relphot) { 1312 if (cnt) { 1313 psStringAppend(&query,comma); 1314 } 1315 psStringAppend(&query, " dtime_relphot = %f", dtime_relphot); 1316 cnt++; 1317 } 1318 1319 if (dtime_resort) { 1320 if (cnt) { 1321 psStringAppend(&query,comma); 1322 } 1323 psStringAppend(&query, " dtime_resort = %f", dtime_resort); 1324 cnt++; 1325 } 1326 1327 if (dtime_merge) { 1328 if (cnt) { 1329 psStringAppend(&query,comma); 1330 } 1331 psStringAppend(&query, " dtime_merge = %f", dtime_merge); 1332 cnt++; 1333 } 1334 1335 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1336 psStringAppend(&query, " WHERE %s", whereClause); 1337 1338 if (!p_psDBRunQuery(config->dbh, query)) { 1339 psError(PS_ERR_UNKNOWN, false, "database error %s", query); 1340 psFree(query); 1341 return false; 1342 } 1343 1344 1345 1346 psFree(query); 1347 psFree(where); 1348 1349 1350 1351 1107 1352 return true; 1108 1353 } -
branches/haf_branches/ipp.20100512/ippTools/src/addtoolConfig.c
r27936 r27956 168 168 psMetadataAddBool(listminidvodbrunArgs, PS_LIST_TAIL, "-finished_addrun", 0, "limit to minidvodbs with completed addRuns (none in new state)", false); 169 169 170 171 170 psMetadata *addminidvodbprocessedArgs = psMetadataAlloc(); 172 171 psMetadataAddStr(addminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_name", 0, "define minidvodb_name (required)", NULL); … … 179 178 psMetadataAddS16(addminidvodbprocessedArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 180 179 181 182 183 180 psMetadata *listminidvodbprocessedArgs = psMetadataAlloc(); 181 psMetadataAddStr(listminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_name", 0, "search by minidvodb_name", NULL); 182 psMetadataAddStr(listminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_group", 0, "search by addRun.minidvodb_group", NULL); 183 psMetadataAddU64(listminidvodbprocessedArgs, PS_LIST_TAIL, "-limit", 0, "limit to N items", 0); 184 psMetadataAddBool(listminidvodbprocessedArgs, PS_LIST_TAIL, "-simple", 0, "simple output", false); 185 psMetadataAddBool(listminidvodbprocessedArgs, PS_LIST_TAIL, "-faulted", 0, "limit to faulted state", false); 186 184 187 psMetadata *revertminidvodbprocessedArgs = psMetadataAlloc(); 188 psMetadataAddStr(revertminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_name", 0, "search by minidvodb_name", NULL); 189 psMetadataAddStr(revertminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_group", 0, "search by addRun.minidvodb_group", NULL); 190 185 191 psMetadata *updateminidvodbprocessedArgs = psMetadataAlloc(); 192 psMetadataAddStr(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-minidvodb_name", 0, "search by minidvodb_name", NULL); 193 psMetadataAddS16(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_fault", 0, "set fault code", 0); 194 psMetadataAddU64(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_merge_order", 0, "define merge order", 0); 195 psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_relphot", 0, "define elapsed time for relphot (seconds)", 0); 196 psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_resort", 0, "define elapsed time for resort (seconds)", 0); 197 psMetadataAddF32(updateminidvodbprocessedArgs, PS_LIST_TAIL, "-set_dtime_merge", 0, "define elapsed time for DVO merge (seconds)", 0); 186 198 187 188 189 199 psMetadata *argSets = psMetadataAlloc(); 190 200 psMetadata *modes = psMetadataAlloc();
Note:
See TracChangeset
for help on using the changeset viewer.
