IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 25, 2011, 2:59:55 PM (15 years ago)
Author:
heather
Message:

merging in addstar changes to the trunk

Location:
trunk/ippTools/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src

  • trunk/ippTools/src/addtool.c

    r30912 r31375  
    119119    pxcamGetSearchArgs (config, where);
    120120    PXOPT_COPY_S64(config->args, where,  "-cam_id",    "camRun.cam_id", "==");
     121    PXOPT_COPY_S64(config->args, where,  "-stack_id",    "stackRun.stack_id", "==");
     122 PXOPT_COPY_S64(config->args, where,  "-sky_id",    "staticskyRun.sky_id", "==");
     123    PXOPT_LOOKUP_STR(stage,       config->args, "-stage", false, false);
     124    if (strcmp(stage, "cam")== 0) {
     125
    121126    pxAddLabelSearchArgs (config, where, "-label",     "camRun.label", "=="); // define using camRun label
    122127    pxAddLabelSearchArgs (config, where, "-data_group","camRun.data_group", "=="); // define using camRun label
    123128    PXOPT_COPY_STR(config->args, where,  "-reduction", "camRun.reduction", "==");
    124 
    125 
     129    }
     130    if (strcmp(stage, "stack")== 0) {
     131
     132    pxAddLabelSearchArgs (config, where, "-label",     "stackRun.label", "=="); // define using camRun label
     133    pxAddLabelSearchArgs (config, where, "-data_group","stackRun.data_group", "=="); // define using camRun label
     134    PXOPT_COPY_STR(config->args, where,  "-reduction", "stackRun.reduction", "==");
     135    }
     136    if (strcmp(stage, "staticsky")== 0) {
     137
     138    pxAddLabelSearchArgs (config, where, "-label",     "staticskyRun.label", "=="); // define using camRun label
     139    pxAddLabelSearchArgs (config, where, "-data_group","staticskyRun.data_group", "=="); // define using camRun label
     140    PXOPT_COPY_STR(config->args, where,  "-reduction", "staticskyyRun.reduction", "==");
     141    }
     142   
    126143    if (!psListLength(where->list)) {
    127144        psFree(where);
     
    129146        return false;
    130147    }
    131 
     148    // PXOPT_LOOKUP_STR(stage,       config->args, "-stage", false, false);
    132149    PXOPT_LOOKUP_STR(workdir,     config->args, "-set_workdir", false, false);
    133150    PXOPT_LOOKUP_STR(dvodb,       config->args, "-set_dvodb", false, false);
     
    148165    psString dvodb_string = NULL;
    149166    psString bare_query = NULL;
     167
     168    if (strcmp(stage,"cam") == 0 ) {
    150169    if (dvodb) {
    151       psTrace("addtool.c", PS_LOG_INFO, "dvodb argument found (%s) using addtool_find_cam_id_dvo.sql\n", dvodb);
     170      psTrace("addtool.c", PS_LOG_INFO, "dvodb argument found (%s) using addtool_find_cam_id_dvo.sql\n%s\n", dvodb,stage);
    152171        // find the cam_id of all the exposures that we want to queue up.
    153172        bare_query = pxDataGet("addtool_find_cam_id_dvo.sql");
     
    155174        psStringAppend(&dvodb_string, "addRun.dvodb = '%s'", dvodb);
    156175    } else {
    157         psTrace("addtool.c", PS_LOG_INFO, "dvodb argument not found using addtool_find_cam_id.sql\n");
     176      psTrace("addtool.c", PS_LOG_INFO, "dvodb argument not found using addtool_find_cam_id.sql\n%s\n",stage);
    158177        // find the cam_id of all the exposures that we want to queue up.
    159178        bare_query = pxDataGet("addtool_find_cam_id.sql");
     
    161180        psStringAppend(&dvodb_string, "(camRun.dvodb IS NOT NULL AND previous_dvodb = camRun.dvodb)");
    162181    }
     182    }
     183    if (strcmp(stage,"stack") == 0) {
     184    if (dvodb ) {
     185      psTrace("addtool.c", PS_LOG_INFO, "dvodb argument found (%s) using addtool_find_stack_id_dvo.sql\n%s\n", dvodb,stage);
     186        // find the cam_id of all the exposures that we want to queue up.
     187        bare_query = pxDataGet("addtool_find_stack_id_dvo.sql");
     188        // user supplied dvodb
     189        psStringAppend(&dvodb_string, "addRun.dvodb = '%s'", dvodb);
     190    } else {
     191      psTrace("addtool.c", PS_LOG_INFO, "dvodb argument not found using addtool_find_stack_id.sql\n%s\n",stage);
     192        // find the cam_id of all the exposures that we want to queue up.
     193        bare_query = pxDataGet("addtool_find_stack_id.sql");
     194        // inherit dvodb from camRun, avoid matching NULL
     195        psStringAppend(&dvodb_string, "(stackRun.dvodb IS NOT NULL AND previous_dvodb = stackRun.dvodb)");
     196    }
     197    }
     198    if (strcmp(stage,"staticsky") == 0) {
     199    if (dvodb ) {
     200      psTrace("addtool.c", PS_LOG_INFO, "dvodb argument found (%s) using addtool_find_sky_id_dvo.sql\n%s\n", dvodb,stage);
     201        // find the cam_id of all the exposures that we want to queue up.
     202        bare_query = pxDataGet("addtool_find_sky_id_dvo.sql");
     203        // user supplied dvodb
     204        psStringAppend(&dvodb_string, "addRun.dvodb = '%s'", dvodb);
     205    } else {
     206      psTrace("addtool.c", PS_LOG_INFO, "dvodb argument not found using addtool_find_sky_id.sql\n%s\n",stage);
     207        // find the cam_id of all the exposures that we want to queue up.
     208        bare_query = pxDataGet("addtool_find_sky_id.sql");
     209        // inherit dvodb from camRun, avoid matching NULL
     210        psStringAppend(&dvodb_string, "(staticskyRun.dvodb IS NOT NULL AND previous_dvodb = staticskyRun.dvodb)");
     211    }
     212    }
     213
     214
     215
    163216    if (!bare_query) {
    164217        psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement");
     
    184237
    185238    if (destreaked) {
     239      if (strcmp(stage,"cam") == 0) {
    186240        psStringAppend(&query, " AND (camRun.magicked > 0)");
    187     }
     241      }
     242      if (strcmp(stage,"stack") == 0) {
     243        psStringAppend(&query, " AND (stackRun.magicked > 0)");
     244      }
     245      // staticSky has no magicked column.
     246    }
     247
     248    psTrace("addtool.c", PS_LOG_INFO,"query: \n\n%s\n\n",query);
    188249
    189250    if (!p_psDBRunQuery(config->dbh, query)) {
    190         psError(PS_ERR_UNKNOWN, false, "database error");
     251      psError(PS_ERR_UNKNOWN, false, "database error, \n%s\n", query);
    191252        psFree(query);
    192253        return false;
     
    217278
    218279    // loop over our list of camRun rows to check the supplied and selected dvodb and workdir values:
     280    if (strcmp(stage,"cam") == 0) {
    219281    for (long i = 0; i < psArrayLength(output); i++) {
    220282        psMetadata *md = output->data[i];
    221283
    222         camRunRow *row = camRunObjectFromMetadata(md);
     284        camRunRow *row = camRunObjectFromMetadata(md);
     285       
    223286        if (!row) {
    224287            psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun");
     
    240303        psFree(row);
    241304    }
     305    }
     306    if (strcmp(stage,"stack") == 0) {
     307    for (long i = 0; i < psArrayLength(output); i++) {
     308        psMetadata *md = output->data[i];
     309
     310        stackRunRow *row = stackRunObjectFromMetadata(md);
     311       
     312        if (!row) {
     313            psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun");
     314            psFree(output);
     315            return false;
     316        }
     317
     318        if (!dvodb && !row->dvodb) {
     319            psError(PS_ERR_UNKNOWN, false, "cannot queue addstar run without a defined dvodb: label: %s, stack_id %" PRId64, row->label, row->stack_id);
     320            psFree(output);
     321            return false;
     322        }
     323        if (!workdir && !row->workdir) {
     324            psError(PS_ERR_UNKNOWN, false, "cannot queue addstar run without a defined workdir: label: %s, stack_id %" PRId64, row->label, row->stack_id);
     325            psFree(output);
     326            return false;
     327        }
     328
     329        psFree(row);
     330    }
     331    }
     332    if (strcmp(stage,"staticsky") == 0) {
     333    for (long i = 0; i < psArrayLength(output); i++) {
     334        psMetadata *md = output->data[i];
     335
     336        staticskyRunRow *row = staticskyRunObjectFromMetadata(md);
     337       
     338        if (!row) {
     339            psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun");
     340            psFree(output);
     341            return false;
     342        }
     343
     344        if (!dvodb) {  //there's no staticsky.dvodb
     345            psError(PS_ERR_UNKNOWN, false, "cannot queue addstar run without a defined dvodb: label: %s, sky_id %" PRId64, row->label, row->sky_id);
     346            psFree(output);
     347            return false;
     348        }
     349        if (!workdir && !row->workdir) {
     350            psError(PS_ERR_UNKNOWN, false, "cannot queue addstar run without a defined workdir: label: %s, sky_id %" PRId64, row->label, row->sky_id);
     351            psFree(output);
     352            return false;
     353        }
     354
     355        psFree(row);
     356    }
     357    }
    242358
    243359    // start a transaction so we don't end up with an exp without any associted
     
    255371
    256372    // loop over our list of camRun rows
     373    if (strcmp(stage,"cam") == 0) {
    257374    for (long i = 0; i < psArrayLength(output); i++) {
    258375        psMetadata *md = output->data[i];
    259 
    260         camRunRow *row = camRunObjectFromMetadata(md);
     376        psS64 stage_id =0;
     377       
     378                  camRunRow *row = camRunObjectFromMetadata(md);
     379          stage_id = row->cam_id;
     380       
    261381        if (!row) {
    262382            psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun");
     
    267387        // queue the exp
    268388        if (!pxaddQueueByCamID(config,
    269                                row->cam_id,
     389                               stage,
     390                               stage_id,
    270391                               workdir     ? workdir   : row->workdir,
    271392                               reduction   ? reduction : row->reduction,
     
    283404            }
    284405            psError(PS_ERR_UNKNOWN, false,
    285                     "failed to trying to queue chip_id: %" PRId64, row->cam_id);
     406                    "failed to trying to queue stage %s %" PRId64,stage, stage_id);
    286407            psFree(row);
    287408            psFree(output);
     
    290411        psFree(row);
    291412    }
     413      }
     414    if (strcmp(stage,"stack") == 0) {
     415    for (long i = 0; i < psArrayLength(output); i++) {
     416        psMetadata *md = output->data[i];
     417        psS64 stage_id =0;
     418       
     419                  stackRunRow *row = stackRunObjectFromMetadata(md);
     420          stage_id = row->stack_id;
     421       
     422        if (!row) {
     423            psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun");
     424            psFree(output);
     425            return false;
     426        }
     427
     428        // queue the exp
     429        if (!pxaddQueueByCamID(config,
     430                               stage,
     431                               stage_id,
     432                               workdir     ? workdir   : row->workdir,
     433                               reduction   ? reduction : row->reduction,
     434                               label       ? label     : row->label,
     435                               data_group  ? data_group : (row->data_group ? row->data_group :  (label ? label : row->label)),
     436                               dvodb       ? dvodb     : row->dvodb,
     437                               note        ? note      : NULL,
     438                               image_only,
     439                               minidvodb,
     440                               minidvodb_group,
     441                               minidvodb_name
     442        )) {
     443            if (!psDBRollback(config->dbh)) {
     444                psError(PS_ERR_UNKNOWN, false, "database error sfg");
     445            }
     446            psError(PS_ERR_UNKNOWN, false,
     447                    "failed to trying to queue stage %s %" PRId64,stage, stage_id);
     448            psFree(row);
     449            psFree(output);
     450            return false;
     451        }
     452        psFree(row);
     453    }
     454      }
     455    if (strcmp(stage,"staticsky") == 0) {
     456    for (long i = 0; i < psArrayLength(output); i++) {
     457        psMetadata *md = output->data[i];
     458        psS64 stage_id =0;
     459       
     460        staticskyRunRow *row = staticskyRunObjectFromMetadata(md);
     461        stage_id = row->sky_id;
     462       
     463        if (!row) {
     464            psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun");
     465            psFree(output);
     466            return false;
     467        }
     468
     469        // queue the exp
     470        if (!pxaddQueueByCamID(config,
     471                               stage,
     472                               stage_id,
     473                               workdir     ? workdir   : row->workdir,
     474                               reduction   ? reduction : row->reduction,
     475                               label       ? label     : row->label,
     476                               data_group  ? data_group : (row->data_group ? row->data_group :  (label ? label : row->label)),
     477                               dvodb       ? dvodb     : NULL,
     478                               note        ? note      : NULL,
     479                               image_only,
     480                               minidvodb,
     481                               minidvodb_group,
     482                               minidvodb_name
     483        )) {
     484            if (!psDBRollback(config->dbh)) {
     485                psError(PS_ERR_UNKNOWN, false, "database error sfg");
     486            }
     487            psError(PS_ERR_UNKNOWN, false,
     488                    "failed to trying to queue stage %s %" PRId64,stage, stage_id);
     489            psFree(row);
     490            psFree(output);
     491            return false;
     492        }
     493        psFree(row);
     494    }
     495      }
     496
    292497    psFree(output);
    293498
     
    308513    PXOPT_COPY_S64(config->args, where, "-add_id",    "addRun.add_id", "==");
    309514    PXOPT_COPY_S64(config->args, where, "-cam_id",    "camRun.cam_id", "==");
     515    PXOPT_COPY_S64(config->args, where, "-stack_id",    "stackRun.stack_id", "==");
     516   PXOPT_COPY_S64(config->args, where, "-sky_id",    "staticskyRun.sky_id", "==");
     517   
     518    PXOPT_LOOKUP_STR(stage,       config->args, "-stage", false, false);
    310519    pxcamGetSearchArgs (config, where); // most search arguments based on camera
    311520    PXOPT_COPY_STR(config->args, where, "-label",     "addRun.label", "==");
     
    319528        return false;
    320529    }
    321 
    322     psString query = psStringCopy("UPDATE addRun JOIN camRun USING(cam_id) JOIN chipRun USING(chip_id) JOIN rawExp USING(exp_id)");
     530    psString query = NULL;
     531    if (strcmp(stage, "cam")==0) {
     532    query = psStringCopy("UPDATE addRun JOIN camRun on cam_id = stage_id JOIN chipRun USING(chip_id) JOIN rawExp USING(exp_id)");
     533    }
     534    if (strcmp(stage, "stack")==0) {
     535    query = psStringCopy("UPDATE addRun JOIN stackRun on stack_id = stage_id");
     536    }
     537    if (strcmp(stage, "staticsky")==0) {
     538    query = psStringCopy("UPDATE addRun JOIN staticskyRun on sky_id = stage_id");
     539    }
    323540
    324541    // pxUpdateRun gets parameters from config->args and runs the update query
     
    340557    PXOPT_COPY_S64(config->args, where, "-add_id",    "addRun.add_id", "==");
    341558    PXOPT_COPY_S64(config->args, where, "-cam_id",    "camRun.cam_id", "==");
     559    PXOPT_COPY_S64(config->args, where, "-stack_id",    "stackRun.stack_id", "==");
     560    PXOPT_COPY_S64(config->args, where, "-sky_id",    "staticskyRun.sky_id", "==");
     561    PXOPT_LOOKUP_STR(stage,       config->args, "-stage", false, false);
    342562    pxcamGetSearchArgs (config, where);
    343563    pxAddLabelSearchArgs (config, where, "-label", "addRun.label", "==");
     
    345565    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    346566    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    347 
    348     psString query = pxDataGet("addtool_find_pendingexp.sql");
     567   
     568    psString query = NULL;
     569   
     570    if (strcmp(stage, "cam")==0) {
     571    query = pxDataGet("addtool_find_pendingexp_cam.sql");
     572    }
     573    if (strcmp(stage, "stack")==0) {
     574    query = pxDataGet("addtool_find_pendingexp_stack.sql");
     575    }
     576    if (strcmp(stage, "staticsky")==0) {
     577    query = pxDataGet("addtool_find_pendingexp_staticsky.sql");
     578    }
     579
     580
    349581    if (!query) {
    350582        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     
    359591    }
    360592    psFree(where);
     593    if (strcmp(stage, "stack") == 0) {
     594      //this group by is needed to join against all the warps (to get camera)
     595      psStringAppend(&query, " GROUP BY %s", "stack_id");
     596    }
     597    if (strcmp(stage, "staticsky") == 0) {
     598      //this group by is needed to join against all the warps (to get camera)
     599      psStringAppend(&query, " GROUP BY %s", "sky_id");
     600    }
    361601
    362602    // treat limit == 0 as "no limit"
     
    522762    psMetadata *where = psMetadataAlloc();
    523763    PXOPT_COPY_S64(config->args, where, "-add_id",    "addRun.add_id",    "==");
    524     PXOPT_COPY_S64(config->args, where, "-cam_id",    "camRun.cam_id",    "==");
     764    PXOPT_COPY_S64(config->args, where, "-stage_id",    "addRun.stage_id",    "==");
     765    PXOPT_LOOKUP_STR(stage,       config->args, "-stage", false, false);
    525766    pxcamGetSearchArgs (config, where);
    526767    pxAddLabelSearchArgs (config, where, "-label",    "addRun.label",     "==");
     
    537778        return false;
    538779    }
    539 
    540     psString query = pxDataGet("addtool_find_processedexp.sql");
     780    psString query = NULL;
     781
     782    if (strcmp (stage,"cam") == 0) {
     783    query = pxDataGet("addtool_find_processedexp_cam.sql");
     784    }
     785    if (strcmp (stage,"stack") == 0) {
     786    query = pxDataGet("addtool_find_processedexp_stack.sql");
     787    }
     788    if (strcmp (stage,"staticsky") == 0) {
     789    query = pxDataGet("addtool_find_processedexp_staticsky.sql");
     790    }
     791   
    541792    if (!query) {
    542793        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     
    567818        psStringAppend(&query, " %s", " WHERE addProcessedExp.fault = 0");
    568819    }
     820    psStringAppend(&query, " AND stage = '%s'", stage);
     821
    569822    psFree(where);
    570823
     
    616869    psMetadata *where = psMetadataAlloc();
    617870    PXOPT_COPY_S64(config->args, where, "-add_id",    "addRun.add_id",         "==");
    618     PXOPT_COPY_S64(config->args, where, "-cam_id",    "camRun.cam_id",         "==");
     871    PXOPT_COPY_S64(config->args, where, "-stage_id",    "addRun.stage_id",         "==");
     872    PXOPT_LOOKUP_STR(stage,       config->args, "-stage", false, false);
    619873    pxcamGetSearchArgs (config, where);
    620874    pxAddLabelSearchArgs (config, where, "-label",    "addRun.label",     "==");
     
    634888
    635889    {
    636         psString query = pxDataGet("addtool_revertprocessedexp.sql");
    637         if (!query) {
     890      psString query = NULL;
     891      if (strcmp(stage, "cam") == 0) {
     892         query = pxDataGet("addtool_revertprocessedexp_cam.sql");
     893        }
     894       
     895    if (strcmp(stage, "stack") == 0) {
     896         query = pxDataGet("addtool_revertprocessedexp_stack.sql");
     897      }
     898     if (strcmp(stage, "staticsky") == 0) {
     899         query = pxDataGet("addtool_revertprocessedexp_staticsky.sql");
     900      }
     901      if (!query) {
    638902            // rollback
    639             if (!psDBRollback(config->dbh)) {
     903        if (!psDBRollback(config->dbh)) {
    640904                psError(PS_ERR_UNKNOWN, false, "database error");
    641905            }
     
    681945    psMetadata *where = psMetadataAlloc();
    682946    PXOPT_COPY_S64(config->args, where, "-add_id",   "add_id",   "==");
    683     PXOPT_COPY_S64(config->args, where, "-cam_id",  "cam_id",  "==");
     947    PXOPT_COPY_S64(config->args, where, "-stage_id",  "stage_id",  "==");
     948    PXOPT_LOOKUP_STR(stage,       config->args, "-stage", false, false);
    684949    PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false);
    685950
Note: See TracChangeset for help on using the changeset viewer.