IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 20, 2010, 6:27:48 PM (16 years ago)
Author:
heather
Message:

added minidvodb_id, flipmindvodbrun etc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/haf_branches/ipp.20100512/ippTools/src/addtool.c

    r28037 r28058  
    4343static bool updateminidvodbrunMode(pxConfig *config);
    4444static bool listminidvodbrunMode(pxConfig *config);
     45static bool flipminidvodbrunMode(pxConfig *config);
    4546static bool addminidvodbprocessedMode(pxConfig *config);
    4647static bool listminidvodbprocessedMode(pxConfig *config);
     
    8182        MODECASE(ADDTOOL_MODE_UPDATEMINIDVODBRUN,   updateminidvodbrunMode);
    8283        MODECASE(ADDTOOL_MODE_LISTMINIDVODBRUN,     listminidvodbrunMode);
    83         MODECASE(ADDTOOL_MODE_ADDMINIDVODBPROCESSED,addminidvodbprocessedMode);
     84        MODECASE(ADDTOOL_MODE_FLIPMINIDVODBRUN,     flipminidvodbrunMode);
     85        MODECASE(ADDTOOL_MODE_ADDMINIDVODBPROCESSED,addminidvodbprocessedMode);
    8486        MODECASE(ADDTOOL_MODE_LISTMINIDVODBPROCESSED,listminidvodbprocessedMode);
    8587        MODECASE(ADDTOOL_MODE_REVERTMINIDVODBPROCESSED,revertminidvodbprocessedMode);
     
    118120    pxAddLabelSearchArgs (config, where, "-data_group","camRun.data_group", "=="); // define using camRun label
    119121    PXOPT_COPY_STR(config->args, where,  "-reduction", "camRun.reduction", "==");
     122   
    120123
    121124    if (!psListLength(where->list)) {
     
    131134    PXOPT_LOOKUP_STR(reduction,   config->args, "-set_reduction", false, false);
    132135    PXOPT_LOOKUP_STR(note,        config->args, "-set_note", false, false);
     136    PXOPT_LOOKUP_STR(minidvodb_name,        config->args, "-set_minidvodb_name", false, false);
     137    PXOPT_LOOKUP_STR(minidvodb_group,        config->args, "-set_minidvodb_group", false, false);
    133138    PXOPT_LOOKUP_BOOL(image_only, config->args, "-image_only", false);
     139    PXOPT_LOOKUP_BOOL(minidvodb,  config->args, "-set_minidvodb", false);
    134140    PXOPT_LOOKUP_BOOL(destreaked, config->args, "-destreaked", false);
    135141    PXOPT_LOOKUP_BOOL(pretend,    config->args, "-pretend", false);
    136142    PXOPT_LOOKUP_BOOL(simple,     config->args, "-simple", false);
     143
     144   
    137145
    138146    // find the cam_id of all the exposures that we want to queue up.
     
    262270                               dvodb       ? dvodb     : row->dvodb,
    263271                               note        ? note      : NULL,
    264                                image_only
     272                               image_only,
     273                               minidvodb,
     274                               minidvodb_group,
     275                               minidvodb_name
    265276        )) {
    266277            if (!psDBRollback(config->dbh)) {
    267                 psError(PS_ERR_UNKNOWN, false, "database error");
     278                psError(PS_ERR_UNKNOWN, false, "database error sfg");
    268279            }
    269280            psError(PS_ERR_UNKNOWN, false,
     
    762773 
    763774
    764   PXOPT_LOOKUP_STR(minidvodb_name, config->args, "-set_minidvodb_name", true, false);
     775  PXOPT_LOOKUP_STR(minidvodb_name, config->args, "-set_minidvodb_name", false, false);
    765776  PXOPT_LOOKUP_STR(minidvodb_group, config->args, "-set_minidvodb_group", true, false);
    766   PXOPT_LOOKUP_STR(minidvodb_path, config->args, "-set_minidvodb_path", true, false);
     777  PXOPT_LOOKUP_STR(minidvodb_path, config->args, "-set_minidvodb_path", false, false);
    767778  PXOPT_LOOKUP_STR(mergedvodb_path, config->args, "-set_mergedvodb_path", true, false);
    768779  PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
     
    786797
    787798    psString query =  NULL;
    788     psStringAppend(&query, "INSERT INTO minidvodbRun SET minidvodb_name = '%s' ,",minidvodb_name);
    789     psStringAppend(&query, "minidvodb_path = '%s' ,",minidvodb_path);
     799    psStringAppend(&query, "INSERT INTO minidvodbRun SET minidvodb_path = '%s' ,",minidvodb_path);
     800    if (minidvodb_name) {psStringAppend(&query, "minidvodb_name = '%s' ,",minidvodb_name);}
    790801    psStringAppend(&query, "mergedvodb_path = '%s',",mergedvodb_path);
    791     psStringAppend(&query, "minidvodb_group = '%s'",minidvodb_group);
     802    if (minidvodb_path) {psStringAppend(&query, "minidvodb_group = '%s'",minidvodb_group);}
    792803    if (state) {
    793804      psStringAppend(&query, ",state = '%s';", state);
     
    832843
    833844    psMetadata *where = psMetadataAlloc();
    834    
    835     PXOPT_COPY_STR(config->args, where, "-minidvodb_name",     "minidvodb_name", "LIKE");
     845    PXOPT_COPY_S64(config->args, where, "-minidvodb_id",     "minidvodb_id", "==");
     846    PXOPT_COPY_STR(config->args, where, "-minidvodb_name",     "minidvodb_name", "==");
    836847    PXOPT_COPY_STR(config->args, where, "-state",     "state", "==");
    837848    PXOPT_COPY_STR(config->args, where, "-minidvodb_path", "minidvodb_path", "==");
    838849    PXOPT_COPY_STR(config->args, where, "-mergedvodb_path", "mergedvodb_path", "==");
    839     PXOPT_COPY_STR(config->args, where, "-minidvodb_group",     "minidvodb_group", "group");
     850    PXOPT_COPY_STR(config->args, where, "-minidvodb_group",     "minidvodb_group", "==");
     851   
    840852    PXOPT_LOOKUP_STR(minidvodb_name,  config->args, "-set_minidvodb_name", false, false);
    841853    PXOPT_LOOKUP_STR(minidvodb_path,  config->args, "-set_minidvodb_path", false, false);
     
    843855    PXOPT_LOOKUP_STR(mergedvodb_path,  config->args, "-set_mergedvodb_path", false, false);
    844856    PXOPT_LOOKUP_STR(minidvodb_group,  config->args, "-set_minidvodb_group", false, false);
    845 
    846 
     857   
    847858
    848859    if (!psListLength(where->list)) {
     
    893904 }
    894905
     906
     907
     908
    895909    // pxUpdateRun gets parameters from config->args and runs the update query
    896910   
     
    914928
    915929}
     930
     931static bool flipminidvodbrunMode(pxConfig *config) {
     932  PS_ASSERT_PTR_NON_NULL(config, false);
     933
     934psMetadata *where = psMetadataAlloc();
     935PXOPT_LOOKUP_STR(minidvodb_group,  config->args, "-minidvodb_group",true, false);
     936   
     937PXOPT_COPY_STR(config->args, where, "-minidvodb_group",     "minidvodb_group", "==");
     938   
     939//this flips the new - > active
     940// and the active - > waiting in one action
     941
     942 
     943 psString firstquery = psStringCopy("SELECT * from  minidvodbRun where state = 'new' ");
     944
     945 psString firstwhereClause = psDBGenerateWhereConditionSQL(where, NULL);
     946 psStringAppend(&firstquery, " AND %s", firstwhereClause);
     947
     948
     949
     950 if (!p_psDBRunQuery(config->dbh, firstquery)) {
     951      psError(PS_ERR_UNKNOWN, false, "database error ");
     952        psFree(firstquery);
     953        return false;
     954    }
     955 psFree(firstquery);
     956
     957 //we don't care what the stuff is that is found, just that there is stuff. This is a check to see that there is something in the 'new' state, before flipping (so that if there is nothing in new, it won't flip the active to waiting.  the flipminidvo is just to make it easy to flip from new -> active.
     958
     959    psArray *output = p_psDBFetchResult(config->dbh);
     960    if (!output) {
     961        psError(PS_ERR_UNKNOWN, false, "database error");
     962        return false;
     963    }
     964    if (!psArrayLength(output)) {
     965        psTrace("addtool", PS_LOG_INFO, "no rows found");
     966        psFree(output);
     967        return true;
     968    }
     969
     970
     971
     972
     973
     974
     975    // psString query = psStringCopy("UPDATE minidvodbRun SET state = case when state = 'new' then 'active' else 'waiting' end WHERE state in ('new', 'active')");
     976psString query = psStringCopy("UPDATE minidvodbRun SET state = 'waiting' WHERE state = 'active' ");
     977 // pxUpdateRun gets parameters from config->args and runs the update query
     978   psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     979    psStringAppend(&query, " AND %s", whereClause);
     980
     981
     982
     983
     984
     985
     986 if (!p_psDBRunQuery(config->dbh, query)) {
     987        psError(PS_ERR_UNKNOWN, false, "database error");
     988        psFree(query);
     989        return false;
     990    }
     991
     992if (!psDBTransaction(config->dbh)) {
     993        psError(PS_ERR_UNKNOWN, false, "database error");
     994        psFree(output);
     995        return false;
     996    }
     997
     998
     999
     1000
     1001
     1002psString query2 = psStringCopy("UPDATE minidvodbRun SET state = 'active' WHERE state = 'new' ");
     1003
     1004
     1005    psStringAppend(&query2, " AND minidvodb_group = '%s' limit 1;", minidvodb_group);
     1006   
     1007
     1008
     1009 if (!p_psDBRunQuery(config->dbh, query2)) {
     1010        psError(PS_ERR_UNKNOWN, false, "database error");
     1011        psFree(query2);
     1012        return false;
     1013    }
     1014
     1015if (!psDBTransaction(config->dbh)) {
     1016        psError(PS_ERR_UNKNOWN, false, "database error");
     1017        psFree(output);
     1018        return false;
     1019    }
     1020
     1021
     1022
     1023if (!psDBCommit(config->dbh)) {
     1024        psError(PS_ERR_UNKNOWN, false, "database error");
     1025        return false;
     1026    }
     1027 psFree(query2);
     1028    psFree(where);
     1029
     1030    return true;
     1031
     1032}
     1033
    9161034
    9171035static bool listminidvodbrunMode(pxConfig *config) {
     
    9261044      PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodbRun.minidvodb_name", "LIKE");
    9271045      PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "minidvodbRun.minidvodb_group", "==");
     1046      PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbRun.minidvodb_id", "==");
    9281047      //pxAddLabelSearchArgs (config, where, "-minidvodb_group", "addRun.minidvodb_group", "==");
    9291048      // }
    9301049    PXOPT_COPY_STR(config->args, where, "-state", "minidvodbRun.state", "==");
    9311050    PXOPT_LOOKUP_U64(limit,      config->args, "-limit", false, false);
     1051   
    9321052  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    9331053 
     
    10191139
    10201140    // required
    1021  PXOPT_LOOKUP_STR(minidvodb_name, config->args, "-minidvodb_name", true, false);
     1141 PXOPT_LOOKUP_U64(minidvodb_id, config->args, "-minidvodb_id", true, false);
    10221142
    10231143    // optional
     
    10311151    //generate restrictions
    10321152psMetadata *where = psMetadataAlloc();
    1033 PXOPT_COPY_STR(config->args, where, "-minidvodb_name",   "minidvodbRun.minidvodb_name",   "==");
     1153PXOPT_COPY_S64(config->args, where, "-minidvodb_id",   "minidvodbRun.minidvodb_id",   "==");
    10341154
    10351155    psString query = pxDataGet("addtool_find_pendingmergeprocess.sql");
     
    10721192        psFree(output);
    10731193        minidvodbProcessedRow *row = minidvodbProcessedRowAlloc(
    1074                pendingRow->minidvodb_name,
     1194               pendingRow->minidvodb_id,
    10751195               merge_order,
    10761196               dtime_resort,
     
    11331253static bool listminidvodbprocessedMode(pxConfig *config) {
    11341254  psMetadata *where = psMetadataAlloc();
     1255  PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbProcessed.minidvodb_id", "==");
    11351256  PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodbProcessed.minidvodb_name", "==");
    1136   PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "addRun.minidvodb_group", "==");
     1257  PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "minidvodbProcessed.minidvodb_group", "==");
    11371258  PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    11381259  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     
    11751296    psFree(where);
    11761297   
    1177     //grou by minidvodb_name to not show all the addRuns
    1178     psStringAppend(&query, " GROUP BY minidvodb_name");
     1298   
     1299    //psStringAppend(&query, " GROUP BY minidvodb_name");
    11791300
    11801301    // order by epoch
    1181     psStringAppend(&query, " ORDER BY epoch");
     1302    psStringAppend(&query, " ORDER BY minidvodb_id");
    11821303
    11831304    // treat limit == 0 as "no limit"
     
    11891310
    11901311    if (!p_psDBRunQuery(config->dbh, query)) {
    1191       psError(PS_ERR_UNKNOWN, false, "database error %s ", query);
     1312      psError(PS_ERR_UNKNOWN, false, "database error ");
    11921313        psFree(query);
    11931314        return false;
     
    12211342  psMetadata *where = psMetadataAlloc();
    12221343 PS_ASSERT_PTR_NON_NULL(config, false);
    1223  PXOPT_COPY_STR(config->args, where, "-minidvodb_name", "minidvodbProcessed.minidvodb_name", "==");
     1344 PXOPT_COPY_S64(config->args, where, "-minidvodb_id", "minidvodbProcessed.minidvodb_id", "==");
    12241345 PXOPT_COPY_STR(config->args, where, "-minidvodb_group", "addRun.minidvodb_group", "==");
    12251346 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
     
    13101431
    13111432    psMetadata *where = psMetadataAlloc();
    1312     PXOPT_COPY_STR(config->args, where, "-minidvodb_name",     "minidvodb_name", "==");
    1313     PXOPT_LOOKUP_STR(minidvodb_name,  config->args, "-minidvodb_name", true, false);
    1314 
     1433    PXOPT_COPY_S64(config->args, where, "-minidvodb_id",     "minidvodbProcessed.minidvodb_id", "==");
     1434    PXOPT_LOOKUP_U64(minidvodb_id,  config->args, "-minidvodb_id", true, false);
     1435    PXOPT_COPY_STR(config->args, where, "-minidvodb_name",     "minidvodbRun.minidvodb_name", "==");
     1436   
    13151437    PXOPT_LOOKUP_U64(merge_order,  config->args, "-set_merge_order", false, false);
    13161438    PXOPT_LOOKUP_S16(fault,  config->args, "-set_fault", false, false);
     
    13271449    }
    13281450
    1329     psString query = psStringCopy("UPDATE minidvodbProcessed SET ");
     1451    psString query = psStringCopy("UPDATE minidvodbProcessed JOIN minidvodbRun USING (minidvodb_id) SET ");
    13301452    int cnt = 0;
    13311453    psString comma = ",";
Note: See TracChangeset for help on using the changeset viewer.