Changeset 35350 for branches/eam_branches/ipp-20130307/ippTools/src
- Timestamp:
- Apr 2, 2013, 3:01:21 PM (13 years ago)
- Location:
- branches/eam_branches/ipp-20130307
- Files:
-
- 13 edited
-
. (modified) (1 prop)
-
ippTools/src (modified) (1 prop)
-
ippTools/src/addtool.c (modified) (1 diff)
-
ippTools/src/camtool.c (modified) (1 diff, 1 prop)
-
ippTools/src/camtoolConfig.c (modified) (1 prop)
-
ippTools/src/laptool.c (modified) (3 diffs)
-
ippTools/src/laptool.h (modified) (1 diff)
-
ippTools/src/laptoolConfig.c (modified) (3 diffs)
-
ippTools/src/magictool.c (modified) (1 prop)
-
ippTools/src/pstamptool.c (modified) (7 diffs)
-
ippTools/src/pstamptoolConfig.c (modified) (4 diffs)
-
ippTools/src/releasetool.c (modified) (4 diffs)
-
ippTools/src/releasetoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20130307
- Property svn:mergeinfo changed
/trunk (added) merged: 35269-35270,35277,35294-35295,35297-35302,35304-35308,35311,35315,35317-35318,35325,35328-35332,35334-35335,35337
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20130307/ippTools/src
- Property svn:mergeinfo changed
/trunk/ippTools/src (added) merged: 35295,35297-35298,35304,35308,35318
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20130307/ippTools/src/addtool.c
r35228 r35350 876 876 psTrace("addtool", PS_LOG_INFO, "no rows found"); 877 877 psFree(output); 878 return true;878 return false; 879 879 } 880 880 -
branches/eam_branches/ipp-20130307/ippTools/src/camtool.c
- Property svn:mergeinfo changed
/trunk/ippTools/src/camtool.c (added) merged: 35304
r35239 r35350 599 599 psTrace("camtool", PS_LOG_INFO, "no rows found"); 600 600 psFree(output); 601 return true;601 return false; 602 602 } 603 603 - Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20130307/ippTools/src/camtoolConfig.c
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/ippTools/src/laptool.c
r34081 r35350 34 34 static bool inactiveexpMode(pxConfig *config); 35 35 36 // Groups 37 static bool definegroupMode(pxConfig *config); 38 static bool pendinggroupMode(pxConfig *config); 39 static bool filtersforgroupMode(pxConfig *config); 40 static bool updategroupMode(pxConfig *config); 41 static bool revertgroupMode(pxConfig *config); 42 static bool listgroupMode(pxConfig *config); 43 36 44 # define MODECASE(caseName, func) \ 37 45 case caseName: \ … … 67 75 68 76 MODECASE(LAPTOOL_MODE_INACTIVEEXP, inactiveexpMode); 77 78 MODECASE(LAPTOOL_MODE_DEFINEGROUP, definegroupMode); 79 MODECASE(LAPTOOL_MODE_PENDINGGROUP, pendinggroupMode); 80 MODECASE(LAPTOOL_MODE_FILTERSFORGROUP, filtersforgroupMode); 81 MODECASE(LAPTOOL_MODE_UPDATEGROUP, updategroupMode); 82 MODECASE(LAPTOOL_MODE_REVERTGROUP, revertgroupMode); 83 MODECASE(LAPTOOL_MODE_LISTGROUP, listgroupMode); 84 69 85 default: 70 86 psAbort("invalid option (this should not happen)"); … … 900 916 return(true); 901 917 } 902 918 // --------------------------- 919 // Group level (a collection of completed lapRuns for a given lapSequence projection cell and collection of filters 920 921 static bool definegroupMode(pxConfig *config) 922 { 923 PS_ASSERT_PTR_NON_NULL(config, false); 924 925 PXOPT_LOOKUP_S64(seq_id, config->args, "-seq_id", true, false); 926 PXOPT_LOOKUP_STR(label, config->args, "-set_label", true, false); 927 928 PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false); 929 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 930 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 931 932 // the following insures that the -filter argument has been set up properly (adapted from pxAddLabelSearchArgs) 933 psMetadataItem *item = psMetadataLookup(config->args, "-filter"); 934 psAssert (item, "-filter argument not found in config->args"); 935 psAssert (item->type == PS_DATA_METADATA_MULTI, "%s should be a multi container", "filter"); 936 psAssert (item->data.list->n, "%s should at least have a place-holder", "filter"); 937 psMetadataItem *entry = (psMetadataItem *)item->data.list->head->data; 938 psAssert (entry, "%s should at least have a place-holder", "filter"); 939 // end of checking 940 941 // Now if the ony entry is the place-holder then the user supplied no -filter arguments 942 // which are required 943 if (!entry->data.str) { 944 psError(PXTOOLS_ERR_ARGUMENTS, true, "at least one -filter is required"); 945 return false; 946 } 947 948 int nFilters = item->data.list->n; 949 950 psString query = psStringCopy("SELECT seq_id, tess_id, projection_cell,\n"); 951 952 // We construct a query joining completed lap runs with the same lapSequence.seq_id, 953 // tess_id, and projection_cell 954 955 // select the lap_ids for the various filters. These are only used for debugging. 956 psStringAppend(&query, "lap_id_%d", 0); 957 for (int i = 1; i < nFilters; i++) { 958 psStringAppend(&query, ", lap_id_%d", i); 959 } 960 961 962 // sub query for each supplied filter 963 char * lapRunForFilter = "(\nSELECT seq_id, tess_id, projection_cell, lap_id as 'lap_id_%d'\n" 964 "FROM lapRun\n" 965 "WHERE filter LIKE '%s'\n" 966 " AND lapRun.seq_id = %"PRId64"\n" 967 " AND (lapRun.state = 'done' or lapRun.state = 'full')\n" 968 " ) as lap_%d\n"; 969 970 // loop over supplied filters and flesh out the query using the format above 971 psListIterator *iter = psListIteratorAlloc (item->data.list, PS_LIST_HEAD, true); 972 psMetadataItem *filterItem = NULL; 973 int i = -1; 974 while ((filterItem = psListGetAndIncrement(iter))) { 975 ++i; 976 if (i == 0) { 977 psStringAppend(&query, "\nFROM\n"); 978 } else { 979 psStringAppend(&query, "\nJOIN\n"); 980 } 981 982 psString filter = filterItem->data.str; 983 psStringAppend(&query, lapRunForFilter, i, filter, seq_id, i); 984 985 if (i != 0) { 986 psStringAppend(&query, "USING (seq_id, tess_id, projection_cell)\n"); 987 } 988 } 989 // now join to lapGroup 990 psStringAppend(&query, "\nLEFT JOIN lapGroup USING(seq_id, tess_id, projection_cell)\n"); 991 992 // we only want projection cells which do not already of an entry 993 psStringAppend(&query, "\nWHERE lapGroup.projection_cell IS NULL\n"); 994 psStringAppend(&query, "\nORDER by projection_cell\n"); 995 996 if (limit) { 997 psString limitString = psDBGenerateLimitSQL(limit); 998 psStringAppend(&query, "\n %s", limitString); 999 psFree(limitString); 1000 } 1001 1002 if (!p_psDBRunQuery(config->dbh, query)) { 1003 psError(PS_ERR_UNKNOWN, false, "database error"); 1004 psFree(query); 1005 return false; 1006 } 1007 psFree(query); 1008 1009 psArray *output = p_psDBFetchResult(config->dbh); 1010 if (!output) { 1011 psError(PS_ERR_UNKNOWN, false, "database error"); 1012 return false; 1013 } 1014 1015 if (!psArrayLength(output)) { 1016 psTrace("laptool", PS_LOG_INFO, "no rows found"); 1017 psFree(output); 1018 return true; 1019 } 1020 1021 if (pretend) { 1022 if (!ippdbPrintMetadatas(stdout, output, "new_lapGroups", !simple)) { 1023 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1024 psFree(output); 1025 return false; 1026 } 1027 psFree(output); 1028 return true; 1029 } 1030 1031 if (!psDBTransaction(config->dbh)) { 1032 psError(PS_ERR_UNKNOWN, false, "database error"); 1033 return false; 1034 } 1035 1036 psTime *now = psTimeGetNow(PS_TIME_TAI); 1037 1038 psString last_projection_cell = NULL; 1039 for (long i = 0; i < psArrayLength(output); i++) { 1040 psMetadata *row = output->data[i]; 1041 1042 psString tess_id = psMetadataLookupStr(NULL, row, "tess_id"); 1043 psString projection_cell = psMetadataLookupStr(NULL, row, "projection_cell"); 1044 if (last_projection_cell && !strcmp(last_projection_cell, projection_cell)) { 1045 // duplicate lap runs for a filter will generate multiple rows 1046 // Since we care about projection_cells not lapRuns per se this is not problem. 1047 // Skip any duplicates. 1048 continue; 1049 } 1050 last_projection_cell = projection_cell; 1051 1052 lapGroupRow *group = lapGroupRowAlloc( 1053 seq_id, 1054 tess_id, 1055 projection_cell, 1056 "new", // state 1057 label, 1058 now, // registered 1059 0 // fault 1060 ); 1061 if (!group) { 1062 psError(PS_ERR_UNKNOWN, false, "failed to alloc lapGroup object"); 1063 psFree(output); 1064 psFree(now); 1065 return(false); 1066 } 1067 1068 1069 if (!lapGroupInsertObject(config->dbh, group)) { 1070 if (!psDBRollback(config->dbh)) { 1071 psError(PS_ERR_UNKNOWN, false, "database error"); 1072 } 1073 psError(PS_ERR_UNKNOWN, false, "database error"); 1074 psFree(output); 1075 return(true); 1076 } 1077 } 1078 1079 // point of no return 1080 if (!psDBCommit(config->dbh)) { 1081 psError(PS_ERR_UNKNOWN, false, "database error"); 1082 return false; 1083 } 1084 1085 psFree(now); 1086 psFree(output); 1087 1088 return(true); 1089 } 1090 1091 static bool pendinggroupMode(pxConfig *config) 1092 { 1093 PS_ASSERT_PTR_NON_NULL(config, false); 1094 1095 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1096 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1097 1098 psMetadata *where = psMetadataAlloc(); 1099 PXOPT_COPY_S64(config->args, where, "-seq_id", "seq_id", "=="); 1100 pxAddLabelSearchArgs(config, where, "-label", "lapRun.label", "=="); 1101 1102 psString query = pxDataGet("laptool_pendinggroup.sql"); 1103 if (!query) { 1104 psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement"); 1105 return false; 1106 } 1107 1108 if (psListLength(where->list)) { 1109 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1110 psStringAppend(&query, " AND %s", whereClause); 1111 psFree(whereClause); 1112 } 1113 if (limit) { 1114 psString limitString = psDBGenerateLimitSQL(limit); 1115 psStringAppend(&query, "\n %s", limitString); 1116 psFree(limitString); 1117 } 1118 1119 if (!p_psDBRunQuery(config->dbh, query)) { 1120 psError(PS_ERR_UNKNOWN, false, "database error"); 1121 psFree(query); 1122 return false; 1123 } 1124 psFree(query); 1125 1126 psArray *output = p_psDBFetchResult(config->dbh); 1127 if (!output) { 1128 psErrorCode err = psErrorCodeLast(); 1129 switch (err) { 1130 case PS_ERR_DB_CLIENT: 1131 psError(PXTOOLS_ERR_SYS, false, "database error"); 1132 case PS_ERR_DB_SERVER: 1133 psError(PXTOOLS_ERR_PROG, false, "database error"); 1134 default: 1135 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1136 } 1137 1138 return false; 1139 } 1140 if (!psArrayLength(output)) { 1141 psTrace("laptool", PS_LOG_INFO, "no rows found"); 1142 psFree(output); 1143 return true; 1144 } 1145 1146 if (psArrayLength(output)) { 1147 if (!ippdbPrintMetadatas(stdout, output, "lapGroup", !simple)) { 1148 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1149 psFree(output); 1150 return false; 1151 } 1152 } 1153 1154 psFree(output); 1155 1156 return true; 1157 } 1158 static bool filtersforgroupMode(pxConfig *config) 1159 { 1160 PS_ASSERT_PTR_NON_NULL(config, false); 1161 1162 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1163 1164 psMetadata *where = psMetadataAlloc(); 1165 PXOPT_COPY_S64(config->args, where, "-seq_id", "seq_id", "=="); 1166 PXOPT_COPY_STR(config->args, where, "-tess_id", "tess_id", "=="); 1167 PXOPT_COPY_STR(config->args, where, "-projection_cell", "projection_cell", "=="); 1168 1169 psString query = pxDataGet("laptool_filtersforgroup.sql"); 1170 if (!query) { 1171 psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement"); 1172 return false; 1173 } 1174 1175 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1176 psStringAppend(&query, " WHERE %s", whereClause); 1177 psFree(whereClause); 1178 1179 if (!p_psDBRunQuery(config->dbh, query)) { 1180 psError(PS_ERR_UNKNOWN, false, "database error"); 1181 psFree(query); 1182 return false; 1183 } 1184 psFree(query); 1185 1186 psArray *output = p_psDBFetchResult(config->dbh); 1187 if (!output) { 1188 psErrorCode err = psErrorCodeLast(); 1189 switch (err) { 1190 case PS_ERR_DB_CLIENT: 1191 psError(PXTOOLS_ERR_SYS, false, "database error"); 1192 case PS_ERR_DB_SERVER: 1193 psError(PXTOOLS_ERR_PROG, false, "database error"); 1194 default: 1195 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1196 } 1197 1198 return false; 1199 } 1200 if (!psArrayLength(output)) { 1201 psTrace("laptool", PS_LOG_INFO, "no rows found"); 1202 psFree(output); 1203 return true; 1204 } 1205 1206 if (psArrayLength(output)) { 1207 if (!ippdbPrintMetadatas(stdout, output, "filters", !simple)) { 1208 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1209 psFree(output); 1210 return false; 1211 } 1212 } 1213 1214 psFree(output); 1215 1216 return true; 1217 } 1218 1219 static bool updategroupMode(pxConfig *config) 1220 { 1221 PS_ASSERT_PTR_NON_NULL(config, false); 1222 1223 // check that all of the keys that define a lapGroup are supplied 1224 PXOPT_LOOKUP_S64(seq_id, config->args, "-seq_id", true, false); 1225 PXOPT_LOOKUP_STR(tess_id, config->args, "-tess_id", true, false); 1226 PXOPT_LOOKUP_STR(projection_cell, config->args, "-projection_cell", true, false); 1227 1228 psMetadata *where = psMetadataAlloc(); 1229 PXOPT_COPY_S64(config->args, where, "-seq_id", "seq_id", "=="); 1230 PXOPT_COPY_STR(config->args, where, "-tess_id", "tess_id", "=="); 1231 PXOPT_COPY_STR(config->args, where, "-projection_cell", "projection_cell", "=="); 1232 1233 psMetadata *values = psMetadataAlloc(); 1234 PXOPT_COPY_STR(config->args, values, "-set_state", "state", "=="); 1235 PXOPT_COPY_STR(config->args, values, "-set_label", "label", "=="); 1236 PXOPT_COPY_S16(config->args, values, "-set_fault", "fault", "=="); 1237 1238 if (!psListLength(values->list)) { 1239 psFree(values); 1240 psFree(where); 1241 psError(PXTOOLS_ERR_ARGUMENTS, true, "must set at least one column"); 1242 return false; 1243 } 1244 1245 long rows = psDBUpdateRows(config->dbh, "lapGroup", where, values); 1246 if (rows < 1) { 1247 psFree(values); 1248 psError(PXTOOLS_ERR_SYS, true, "failed to update lapGroup for %" PRId64 " %s %s", seq_id, tess_id, projection_cell); 1249 return false; 1250 } 1251 psFree(values); 1252 1253 return(true); 1254 } 1255 1256 static bool revertgroupMode(pxConfig *config) 1257 { 1258 PS_ASSERT_PTR_NON_NULL(config, false); 1259 1260 psMetadata *where = psMetadataAlloc(); 1261 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 1262 PXOPT_COPY_S64(config->args, where, "-seq_id", "seq_id", "=="); 1263 PXOPT_COPY_STR(config->args, where, "-tess_id", "tess_id", "=="); 1264 PXOPT_COPY_STR(config->args, where, "-projection_cell", "projection_cell", "=="); 1265 1266 if (!psListLength(where->list)) { 1267 psFree(where); 1268 psError(PXTOOLS_ERR_CONFIG, false, "search arguments are required"); 1269 return false; 1270 } 1271 1272 psString query = pxDataGet("laptool_revertgroup.sql"); 1273 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1274 psStringAppend(&query, " AND %s", whereClause); 1275 psFree(whereClause); 1276 psFree(where); 1277 if (!p_psDBRunQuery(config->dbh, query)) { 1278 psError(PS_ERR_UNKNOWN, false, "database error"); 1279 psFree(query); 1280 return false; 1281 } 1282 psFree(query); 1283 1284 psU64 affected = psDBAffectedRows(config->dbh); 1285 psLogMsg("laptool", PS_LOG_INFO, "Updated %" PRIu64 " lapGroups", affected); 1286 1287 return true; 1288 } 1289 1290 static bool listgroupMode(pxConfig *config) 1291 { 1292 PS_ASSERT_PTR_NON_NULL(config, false); 1293 1294 psError(PXTOOLS_ERR_SYS, true, "not yet implemented"); 1295 return false; 1296 1297 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1298 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1299 1300 psMetadata *where = psMetadataAlloc(); 1301 PXOPT_COPY_S64(config->args, where, "-seq_id", "seq_id", "=="); 1302 PXOPT_COPY_STR(config->args, where, "-seq_name", "name", "LIKE"); 1303 1304 psString query = pxDataGet("laptool_listsequence.sql"); 1305 if (!query) { 1306 psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement"); 1307 return false; 1308 } 1309 if (psListLength(where->list)) { 1310 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1311 psStringAppend(&query, " WHERE %s", whereClause); 1312 psFree(whereClause); 1313 } 1314 1315 if (limit) { 1316 psString limitString = psDBGenerateLimitSQL(limit); 1317 psStringAppend(&query, " %s", limitString); 1318 psFree(limitString); 1319 } 1320 if (!p_psDBRunQuery(config->dbh, query)) { 1321 psError(PS_ERR_UNKNOWN, false, "database error"); 1322 psFree(query); 1323 return false; 1324 } 1325 psFree(query); 1326 1327 psArray *output = p_psDBFetchResult(config->dbh); 1328 if (!output) { 1329 psErrorCode err = psErrorCodeLast(); 1330 switch (err) { 1331 case PS_ERR_DB_CLIENT: 1332 psError(PXTOOLS_ERR_SYS, false, "database error"); 1333 case PS_ERR_DB_SERVER: 1334 psError(PXTOOLS_ERR_PROG, false, "database error"); 1335 default: 1336 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1337 } 1338 1339 return false; 1340 } 1341 if (!psArrayLength(output)) { 1342 psTrace("laptool", PS_LOG_INFO, "no rows found"); 1343 psFree(output); 1344 return true; 1345 } 1346 1347 if (psArrayLength(output)) { 1348 if (!ippdbPrintMetadatas(stdout, output, "lapSequence", !simple)) { 1349 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1350 psFree(output); 1351 return false; 1352 } 1353 } 1354 1355 psFree(output); 1356 1357 return true; 1358 } -
branches/eam_branches/ipp-20130307/ippTools/src/laptool.h
r32422 r35350 20 20 LAPTOOL_MODE_UPDATEEXP, 21 21 LAPTOOL_MODE_DIFFCHECK, 22 LAPTOOL_MODE_INACTIVEEXP 22 LAPTOOL_MODE_INACTIVEEXP, 23 LAPTOOL_MODE_DEFINEGROUP, 24 LAPTOOL_MODE_PENDINGGROUP, 25 LAPTOOL_MODE_FILTERSFORGROUP, 26 LAPTOOL_MODE_UPDATEGROUP, 27 LAPTOOL_MODE_REVERTGROUP, 28 LAPTOOL_MODE_LISTGROUP, 23 29 } laptoolMode; 24 30 -
branches/eam_branches/ipp-20130307/ippTools/src/laptoolConfig.c
r33343 r35350 97 97 ADD_OPT(S64, updaterunArgs, "-set_quick_sass_id", "set quick stack sass_id", 0); 98 98 ADD_OPT(S64, updaterunArgs, "-set_final_sass_id", "set final stack sass_id", 0); 99 100 99 101 100 // -pendingexp … … 150 149 ADD_OPT(U64, inactiveexpArgs, "-limit", "limit result set to N items", 0); 151 150 151 // -definegroup 152 psMetadata *definegroupArgs = psMetadataAlloc(); 153 ADD_OPT(S64, definegroupArgs, "-seq_id", "search by lap sequence ID (required)", 0); 154 ADD_OPT(Str, definegroupArgs, "-set_label", "set label (required)", 0); 155 156 psMetadataAddStr(definegroupArgs, PS_LIST_TAIL, 157 "-filter", PS_META_DUPLICATE_OK, 158 "search by filter (LIKE comparison, multiple OK)", NULL); 159 ADD_OPT(Bool,definegroupArgs, "-pretend", "do not actuallym modify the database", false); 160 ADD_OPT(Bool,definegroupArgs, "-simple", "use the simple output format", false); 161 ADD_OPT(U64, definegroupArgs, "-limit", "limit result set to N items", 0); 162 163 // -pendinggroup 164 psMetadata *pendinggroupArgs = psMetadataAlloc(); 165 psMetadataAddStr(pendinggroupArgs, PS_LIST_TAIL, 166 "-label", PS_META_DUPLICATE_OK, 167 "search by label (multiple OK)", NULL); 168 ADD_OPT(S64, pendinggroupArgs, "-seq_id", "search by lap sequence ID (required)", 0); 169 170 ADD_OPT(Bool,pendinggroupArgs, "-simple", "use the simple output format", false); 171 ADD_OPT(U64, pendinggroupArgs, "-limit", "limit result set to N items", 0); 172 173 // -updategroup 174 psMetadata *updategroupArgs = psMetadataAlloc(); 175 ADD_OPT(S64, updategroupArgs, "-seq_id", "search by lap sequence ID (required)", 0); 176 ADD_OPT(Str, updategroupArgs, "-tess_id", "search by tess_id (required)", 0); 177 ADD_OPT(Str, updategroupArgs, "-projection_cell", "search by projection_cell (required)", 0); 178 ADD_OPT(Str, updategroupArgs, "-set_state", "set state", 0); 179 ADD_OPT(S16, updategroupArgs, "-set_fault", "set fault code", INT16_MAX); 180 ADD_OPT(Str, updategroupArgs, "-set_label", "set label", 0); 181 182 // -revertgroup 183 psMetadata *revertgroupArgs = psMetadataAlloc(); 184 psMetadataAddStr(revertgroupArgs, PS_LIST_TAIL, 185 "-label", PS_META_DUPLICATE_OK, 186 "search by label (multiple OK)", NULL); 187 ADD_OPT(S64, revertgroupArgs, "-seq_id", "search by lap sequence ID", 0); 188 ADD_OPT(Str, revertgroupArgs, "-tess_id", "search by tess_id", 0); 189 ADD_OPT(Str, revertgroupArgs, "-projection_cell", "search by projection_cell", 0); 190 ADD_OPT(S16, revertgroupArgs, "-fault", "fault code", INT16_MAX); 191 192 // -filtersforgroup 193 psMetadata *filtersforgroupArgs = psMetadataAlloc(); 194 ADD_OPT(S64, filtersforgroupArgs, "-seq_id", "search by lap sequence ID (required)", 0); 195 ADD_OPT(Str, filtersforgroupArgs, "-tess_id", "search by tess_id (required)", 0); 196 ADD_OPT(Str, filtersforgroupArgs, "-projection_cell", "search by projection_cell (required)", 0); 197 ADD_OPT(Bool,filtersforgroupArgs, "-simple", "use the simple output format", false); 198 152 199 153 200 psMetadata *argSets = psMetadataAlloc(); … … 166 213 PXOPT_ADD_MODE("-diffcheck", "", LAPTOOL_MODE_DIFFCHECK, diffcheckArgs); 167 214 PXOPT_ADD_MODE("-inactiveexp", "", LAPTOOL_MODE_INACTIVEEXP, inactiveexpArgs); 215 PXOPT_ADD_MODE("-definegroup", "", LAPTOOL_MODE_DEFINEGROUP, definegroupArgs); 216 PXOPT_ADD_MODE("-pendinggroup", "", LAPTOOL_MODE_PENDINGGROUP, pendinggroupArgs); 217 PXOPT_ADD_MODE("-filtersforgroup", "", LAPTOOL_MODE_FILTERSFORGROUP, filtersforgroupArgs); 218 PXOPT_ADD_MODE("-updategroup", "", LAPTOOL_MODE_UPDATEGROUP, updategroupArgs); 219 PXOPT_ADD_MODE("-revertgroup", "", LAPTOOL_MODE_REVERTGROUP, revertgroupArgs); 168 220 169 221 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) { -
branches/eam_branches/ipp-20130307/ippTools/src/magictool.c
- Property svn:mergeinfo changed (with no actual effect on merging)
-
branches/eam_branches/ipp-20130307/ippTools/src/pstamptool.c
r34123 r35350 287 287 PXOPT_LOOKUP_S64(ds_id, config->args, "-ds_id", false, false); 288 288 289 PXOPT_LOOKUP_STR(username, config->args, "-username", false, false); 290 PXOPT_LOOKUP_S64(proj_id, config->args, "-proj_id", false, false); 291 292 psTime *now = psTimeGetNow(PS_TIME_TAI); 293 289 294 if (!pstampRequestInsert(config->dbh, 290 295 0, // req_id … … 297 302 uri, 298 303 NULL, // outdir 299 NULL, // timestamp 304 username, 305 proj_id, 306 now, // registered 307 now, // timestamp 300 308 0 // fault 301 309 )) { … … 444 452 PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "=="); 445 453 PXOPT_COPY_S64(config->args, where, "-not_req_id", "req_id", "!="); 446 PXOPT_COPY_STR(config->args, where, "-name", "name", "=="); 454 PXOPT_COPY_STR(config->args, where, "-name", "name", "LIKE"); 455 PXOPT_COPY_STR(config->args, where, "-username", "username", "=="); 456 PXOPT_COPY_STR(config->args, where, "-state", "state", "=="); 447 457 448 458 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 450 460 451 461 if (!psListLength(where->list)) { 452 psError(PS_ERR_UNKNOWN, true, " -req_id or -name must be supplied");462 psError(PS_ERR_UNKNOWN, true, "search paramters are required"); 453 463 return false; 454 464 } … … 482 492 if (!psArrayLength(output)) { 483 493 psTrace("pstamptool", PS_LOG_INFO, "request not found"); 484 // This causes main to exit with PS_EXIT_DATA_ERROR which the script islooking for494 // This causes main to exit with PS_EXIT_DATA_ERROR which the pstamp scripts are looking for 485 495 psError(PXTOOLS_ERR_CONFIG, true, "request not found"); 486 496 psFree(output); 487 // we return false so that the caller can determine that a request does not exist497 // we return false so that the caller can easily determine that a request does not exist 488 498 return false; 489 499 } … … 567 577 PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false); 568 578 PXOPT_LOOKUP_STR(outProduct, config->args, "-set_outProduct", false, false); 569 PXOPT_LOOKUP_S16(fault, config->args, "-set_fault", false, false);579 PXOPT_LOOKUP_S16(fault, config->args, "-set_fault", false, false); 570 580 PXOPT_LOOKUP_STR(uri, config->args, "-set_uri", false, false); 571 PXOPT_LOOKUP_STR(outdir, config->args, "-set_outdir", false, false);581 PXOPT_LOOKUP_STR(outdir, config->args, "-set_outdir", false, false); 572 582 PXOPT_LOOKUP_STR(name, config->args, "-set_name", false, false); 583 PXOPT_LOOKUP_STR(username, config->args, "-set_username", false, false); 573 584 PXOPT_LOOKUP_STR(reqType, config->args, "-set_reqType", false, false); 574 PXOPT_LOOKUP_BOOL(clearfault,config->args, "-clearfault", false);575 576 if (!state && !label && !outProduct && !fault && !uri && !outdir && !name && ! reqType && !clearfault) {585 PXOPT_LOOKUP_BOOL(clearfault,config->args, "-clearfault", false); 586 587 if (!state && !label && !outProduct && !fault && !uri && !outdir && !name && !username && !reqType && !clearfault) { 577 588 psError(PS_ERR_UNKNOWN, true, "at least one set option is required"); 578 589 return false; … … 584 595 PXOPT_COPY_S32(config->args, where, "-fault", "fault", "=="); 585 596 PXOPT_COPY_STR(config->args, where, "-state", "state", "=="); 586 PXOPT_COPY_STR(config->args, where, "-reqType", "reqType", "=="); 587 PXOPT_COPY_STR(config->args, where, "-name", "name", "LIKE"); 597 PXOPT_COPY_STR(config->args, where, "-reqType", "reqType", "=="); 598 PXOPT_COPY_STR(config->args, where, "-name", "name", "LIKE"); 599 PXOPT_COPY_STR(config->args, where, "-username", "username", "=="); 588 600 PXOPT_COPY_TIME(config->args, where, "-timestamp_begin", "timestamp", ">="); 589 601 PXOPT_COPY_TIME(config->args, where, "-timestamp_end", "timestamp", "<="); -
branches/eam_branches/ipp-20130307/ippTools/src/pstamptoolConfig.c
r33809 r35350 74 74 psMetadataAddStr(addreqArgs, PS_LIST_TAIL, "-uri", 0, "define request file uri (required)", NULL); 75 75 psMetadataAddS64(addreqArgs, PS_LIST_TAIL, "-ds_id", 0, "define request ds_id", 0); 76 psMetadataAddS64(addreqArgs, PS_LIST_TAIL, "-proj_id", 0, "define request proj_id", 0); 76 77 psMetadataAddStr(addreqArgs, PS_LIST_TAIL, "-name", 0, "define request name", NULL); 78 psMetadataAddStr(addreqArgs, PS_LIST_TAIL, "-username", 0, "define user name", NULL); 77 79 psMetadataAddStr(addreqArgs, PS_LIST_TAIL, "-label", 0, "define request label", NULL); 78 80 … … 88 90 psMetadataAddS64(listreqArgs, PS_LIST_TAIL, "-req_id", 0, "list by req_id", 0); 89 91 psMetadataAddStr(listreqArgs, PS_LIST_TAIL, "-name", 0, "list by name", NULL); 92 psMetadataAddStr(listreqArgs, PS_LIST_TAIL, "-username", 0, "list by user name", NULL); 93 psMetadataAddStr(listreqArgs, PS_LIST_TAIL, "-state", 0, "list by state", NULL); 90 94 psMetadataAddS64(listreqArgs, PS_LIST_TAIL, "-not_req_id", 0, "req_id to not list", 0); 91 95 psMetadataAddU64(listreqArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 105 109 psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL); 106 110 psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-reqType", 0, "search by reqType", NULL); 107 psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-name", 0, "search by reqType (LIKE comparsion)", NULL); 111 psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-name", 0, "search by reqType (LIKE comparsion)", NULL); 112 psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-username", 0, "search by username", NULL); 108 113 psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by pstampJob label (LIKE comparision)", NULL); 109 114 psMetadataAddTime(updatereqArgs, PS_LIST_TAIL, "-timestamp_begin", 0, "search by timestamp (>=)", NULL); … … 116 121 psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-set_uri", 0, "new uri", NULL); 117 122 psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-set_name", 0, "new name", NULL); 123 psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-set_username", 0, "new username", NULL); 118 124 psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-set_reqType", 0, "new reqType", NULL); 119 125 psMetadataAddBool(updatereqArgs, PS_LIST_TAIL, "-clearfault", 0, "set fault to zero", false); -
branches/eam_branches/ipp-20130307/ippTools/src/releasetool.c
r35230 r35350 1270 1270 } 1271 1271 if (!psArrayLength(exposures)) { 1272 fprintf(stderr, "no exposures found for lap_id %" PRId64 "\n", lap_id); 1273 #ifdef notdef 1274 continue; 1272 1275 psFree(now); 1273 1276 psFree(output); … … 1278 1281 } 1279 1282 return false; 1283 #endif 1280 1284 } 1281 1285 … … 1301 1305 psFree(exposures); 1302 1306 1303 // setstate of relGroup to 'new'1307 // update the state of relGroup to 'new' 1304 1308 if (!p_psDBRunQueryF(config->dbh, "UPDATE relGroup set state = 'new' WHERE group_id = %d", group_id)) { 1305 1309 psError(PS_ERR_UNKNOWN, false, "database error"); … … 1325 1329 static bool updaterelgroupMode(pxConfig *config) 1326 1330 { 1327 psError(PS_ERR_UNKNOWN, true, "not yet implemented"); 1328 return false; 1331 PS_ASSERT_PTR_NON_NULL(config, false); 1332 1333 PXOPT_LOOKUP_S32(group_id, config->args, "-group_id", true, false); 1334 1335 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 1336 PXOPT_LOOKUP_STR(exp_list_path, config->args, "-set_exp_list_path", false, false); 1337 PXOPT_LOOKUP_STR(new_label, config->args, "-set_label", false, false); 1338 PXOPT_LOOKUP_S16(fault, config->args, "-set_fault", false, false); 1339 PXOPT_LOOKUP_BOOL(clearfault, config->args, "-clearfault", false); 1340 1341 if (!state && !exp_list_path && !new_label && !fault && !clearfault) { 1342 psError(PXTOOLS_ERR_CONFIG, true, "must set at least one column\n"); 1343 return false; 1344 } 1345 1346 if (fault && clearfault) { 1347 psError(PXTOOLS_ERR_CONFIG, true, "cannot set and clear fault at same time\n"); 1348 return false; 1349 } 1350 1351 psMetadata *where = psMetadataAlloc(); 1352 1353 PXOPT_COPY_S64(config->args, where, "-group_id", "relGroup.group_id", "=="); 1354 // XXX TODO if label is enabled (for changing label or state for a block) we should 1355 // disallow setting some parameters such as exp_list_path 1356 // PXOPT_COPY_S64(config->args, where, "-label", "relGroup.label", "=="); 1357 // make sure that we have enough parameters to identify the relGroup to change 1358 if (!psListLength(where->list)){ 1359 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required\n"); 1360 psFree(where); 1361 return false; 1362 } 1363 1364 psString sep = ""; 1365 psString comma = ", "; 1366 psString query = psStringCopy("UPDATE relGroup SET"); 1367 if (state) { 1368 psStringAppend(&query, "%s relGroup.state = '%s'", sep, state); 1369 sep = comma; 1370 } 1371 if (exp_list_path) { 1372 psStringAppend(&query, "%s relGroup.exp_list_path = '%s'", sep, exp_list_path); 1373 sep = comma; 1374 } 1375 if (new_label) { 1376 psStringAppend(&query, "%s relGroup.label = '%s'", sep, new_label); 1377 sep = comma; 1378 } 1379 if (fault) { 1380 psStringAppend(&query, "%s relGroup.fault = %d", sep, fault); 1381 sep = comma; 1382 } 1383 if (clearfault) { 1384 psStringAppend(&query, "%s relGroup.fault = 0", sep); 1385 sep = comma; 1386 } 1387 1388 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1389 psStringAppend(&query, " WHERE %s", whereClause); 1390 psFree(whereClause); 1391 1392 if (!p_psDBRunQuery(config->dbh, query)) { 1393 psError(PS_ERR_UNKNOWN, false, "database error"); 1394 psFree(query); 1395 return false; 1396 } 1397 1398 psU64 affected = psDBAffectedRows(config->dbh); 1399 psLogMsg("releasetool", PS_LOG_INFO, "Updated %" PRIu64 " ippReleases", affected); 1400 1401 1402 psFree(query); 1403 1404 return true; 1329 1405 } 1330 1406 -
branches/eam_branches/ipp-20130307/ippTools/src/releasetoolConfig.c
r35227 r35350 217 217 // parameters of the relGroup 218 218 psMetadataAddStr(definerelgroupArgs, PS_LIST_TAIL, "-set_group_type", 0, "define group_type (required)", NULL); 219 psMetadataAddStr(definerelgroupArgs, PS_LIST_TAIL, "-set_group_name", 0, "define group_name (required)", NULL);219 psMetadataAddStr(definerelgroupArgs, PS_LIST_TAIL, "-set_group_name", 0, "define group_name", NULL); 220 220 psMetadataAddStr(definerelgroupArgs, PS_LIST_TAIL, "-set_label", 0, "define relgroup label (required)", NULL); 221 221 psMetadataAddStr(definerelgroupArgs, PS_LIST_TAIL, "-set_state", 0, "define state", NULL); … … 240 240 psMetadata *updaterelgroupArgs = psMetadataAlloc(); 241 241 242 // set the target release243 242 psMetadataAddS32(updaterelgroupArgs, PS_LIST_TAIL, "-group_id", 0, "select by group ID (required)", 0); 244 243
Note:
See TracChangeset
for help on using the changeset viewer.
