IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 19, 2013, 3:39:39 PM (13 years ago)
Author:
eugene
Message:

merged from trunk

Location:
branches/eam_branches/ipp-20130307/ippTools/src
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20130307/ippTools/src

  • branches/eam_branches/ipp-20130307/ippTools/src/camtool.c

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • 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/magictool.c

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130307/ippTools/src/pstamptool.c

    r35350 r35412  
    4949static bool revertjobMode(pxConfig *config);
    5050
    51 # if (1)
    52 // these are unused functions -- since they are 'static', this raises an warning
    53 // XXX: They actually are used
    5451static bool addprojectMode(pxConfig *config);
    5552static bool projectMode(pxConfig *config);
     
    6360static bool listfileMode(pxConfig *config);
    6461static bool deletefileMode(pxConfig *config);
    65 # endif
    6662
    6763# define MODECASE(caseName, func) \
     
    10399        MODECASE(PSTAMPTOOL_MODE_STOPDEPENDENTJOB, stopdependentjobMode);
    104100        MODECASE(PSTAMPTOOL_MODE_REVERTJOB, revertjobMode);
    105 # if (1)
    106101        MODECASE(PSTAMPTOOL_MODE_ADDPROJECT, addprojectMode);
    107102        MODECASE(PSTAMPTOOL_MODE_MODPROJECT, modprojectMode);
     
    115110        MODECASE(PSTAMPTOOL_MODE_LISTFILE, listfileMode);
    116111        MODECASE(PSTAMPTOOL_MODE_DELETEFILE, deletefileMode);
    117 # endif
     112
    118113        default:
    119114            psAbort("invalid option (this should not happen)");
     
    624619    if (outdir) {
    625620        psStringAppend(&query, ", outdir = '%s'", outdir);
     621    }
     622    if (username) {
     623        psStringAppend(&query, ", username = '%s'", username);
    626624    }
    627625    if (clearfault) {
     
    12361234    PXOPT_LOOKUP_BOOL(need_magic, config->args, "-need_magic", false);
    12371235    PXOPT_LOOKUP_BOOL(no_create,  config->args, "-no_create", false);
     1236    PXOPT_LOOKUP_BOOL(hold,       config->args, "-hold", false);
    12381237
    12391238    psMetadata *where = psMetadataAlloc();
     
    12431242    PXOPT_COPY_STR(config->args, where, "-component", "component", "==");
    12441243
    1245     // start a transaction eraly so it will contain any row level locks
     1244    // start a transaction early so it will contain any row level locks
    12461245    if (!psDBTransaction(config->dbh)) {
    12471246        psError(PS_ERR_UNKNOWN, false, "database error");
     
    12671266        psError(PS_ERR_UNKNOWN, false, "database error");
    12681267        psFree(query);
     1268        if (!psDBRollback(config->dbh)) {
     1269            psError(PS_ERR_UNKNOWN, false, "database error");
     1270        }
    12691271        return false;
    12701272    }
     
    12741276    if (!output) {
    12751277        psError(PS_ERR_UNKNOWN, false, "database error");
     1278        if (!psDBRollback(config->dbh)) {
     1279            psError(PS_ERR_UNKNOWN, false, "database error");
     1280        }
    12761281        return false;
    12771282    }
     
    12821287            psError(PS_ERR_UNKNOWN, false, "database error");
    12831288            psFree(output);
     1289            if (!psDBRollback(config->dbh)) {
     1290                psError(PS_ERR_UNKNOWN, false, "database error");
     1291            }
    12841292            return false;
    12851293        }
     
    12871295        if (fault > 0) {
    12881296            fprintf(stderr, "existing dependent has fault %d\n", fault);
     1297            if (!psDBRollback(config->dbh)) {
     1298                psError(PS_ERR_UNKNOWN, false, "database error");
     1299            }
     1300            // return the fault to the client. This is used by the postage stamp parser
    12891301            exit (fault);
    12901302        }
     1303        bool commit = false;
     1304        // Check the state of the exisiting dependent. By query it is either
     1305        // new or hold
     1306        psString state = psMetadataLookupStr(NULL, dep, "state");
     1307        if (!hold && !strcmp(state, "hold")) {
     1308            // There is a dependent for this component but it's state is hold.
     1309            // This client needs one that will run.
     1310            // Update the state
     1311            psString updateQuery = NULL;
     1312            psStringAppend(&updateQuery, "UPDATE pstampDependent SET state = 'new' "
     1313                "\nWHERE stage = '%s' AND imagedb = '%s' AND stage_id = %"PRId64 " AND component = '%s'",
     1314                    stage, imagedb, stage_id, component);
     1315
     1316            if (!p_psDBRunQuery(config->dbh, updateQuery)) {
     1317                psError(PS_ERR_UNKNOWN, false, "database error");
     1318                psFree(updateQuery);
     1319                if (!psDBRollback(config->dbh)) {
     1320                    psError(PS_ERR_UNKNOWN, false, "database error");
     1321                }
     1322                return false;
     1323            }
     1324            // set flag to commit this change
     1325            commit = true;
     1326            psFree(updateQuery);
     1327        }
     1328        // print the dep_id for the user
    12911329        printf("%" PRId64 "\n", dep_id);
    12921330        psFree(output);
    1293         if (!psDBRollback(config->dbh)) {
     1331        // now either commit the change or rollback the transaction which releases the lock
     1332        if (commit) {
     1333            if (!psDBCommit(config->dbh)) {
     1334                // rollback
     1335                if (!psDBRollback(config->dbh)) {
     1336                    psError(PS_ERR_UNKNOWN, false, "database error");
     1337                }
    12941338            psError(PS_ERR_UNKNOWN, false, "database error");
     1339            return false;
     1340            }
     1341        } else if (!psDBRollback(config->dbh)) {
     1342            psError(PS_ERR_UNKNOWN, false, "database error");
     1343            return false;
    12951344        }
    12961345        return true;
     
    13101359        config->dbh,
    13111360        0,              // dep_id
    1312         "new",          // state
     1361        hold ? "hold" : "new",          // state
    13131362        stage,
    13141363        stage_id,
  • branches/eam_branches/ipp-20130307/ippTools/src/pstamptoolConfig.c

    r35350 r35412  
    223223    psMetadataAddBool(getdependentArgs,PS_LIST_TAIL, "-need_magic", 0, "define need_magic", false);
    224224    psMetadataAddStr(getdependentArgs, PS_LIST_TAIL, "-outdir", 0,    "define output directory for dependent (required)", NULL);
     225    psMetadataAddBool(getdependentArgs,PS_LIST_TAIL, "-hold", 0, "if creating new dependent set it's state to hold", false);
    225226    psMetadataAddBool(getdependentArgs,PS_LIST_TAIL, "-no_create", 0, "if no matching dependent do not create one", false);
    226227
  • branches/eam_branches/ipp-20130307/ippTools/src/releasetool.c

    r35350 r35412  
    832832    PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
    833833    PXOPT_LOOKUP_BOOL(simple, config->args,  "-simple", false);
     834    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    834835
    835836    // find the parameters of all the exposures that we want to add to the release
     
    852853
    853854    psFree(where);
     855
     856    if (limit) {
     857        psString limitString = psDBGenerateLimitSQL(limit);
     858        psStringAppend(&query, " %s", limitString);
     859        psFree(limitString);
     860    }
    854861
    855862    if (!p_psDBRunQuery(config->dbh, query)) {
     
    968975    psMetadata *where = psMetadataAlloc();
    969976
     977    PXOPT_COPY_S64(config->args, where, "-relstack_id", "relStack.relstack_id", "==");
     978    PXOPT_COPY_S64(config->args, where, "-stack_id",    "relStack.stack_id", "==");
     979    PXOPT_COPY_S64(config->args, where, "-skycal_id",   "relStack.skycal_id", "==");
     980    PXOPT_COPY_S64(config->args, where, "-relstack_id", "relStack.relstack_id", "==");
    970981    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "LIKE");
    971982    pxAddLabelSearchArgs(config, where, "-release_state","ippRelease.state", "==");
    972     PXOPT_COPY_STR(config->args, where, "-state",       "relExp.state", "==");
    973     PXOPT_COPY_STR(config->args, where, "-filter",      "rawExp.filter", "LIKE");
    974     PXOPT_COPY_TIME(config->args, where, "-dateobs_begin","rawExp.dateobs", ">=");
    975     PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "rawExp.dateobs", "<=");
    976     PXOPT_COPY_F32(config->args, where, "-fwhm_min",    "skycalResult.fwhm_major", ">=");
     983    PXOPT_COPY_STR(config->args, where, "-state",       "relStack.state", "==");
     984    PXOPT_COPY_STR(config->args, where, "-filter",      "relStack.filter", "LIKE");
     985    PXOPT_COPY_F32(config->args, where, "-mjd_min",    "stackSumSkyfile.mjd_obs", ">=");
     986    PXOPT_COPY_F32(config->args, where, "-mjd_max",    "stackSumSkyfile.mjd_obs", "<=");
     987    PXOPT_COPY_F32(config->args, where, "-fwhm_min",    "skycalResult.fwhm_minor", ">=");
    977988    PXOPT_COPY_F32(config->args, where, "-fwhm_max",    "skycalresult.fwhm_major", "<=");
    978     PXOPT_COPY_STR(config->args, where, "-exp_name",    "rawExp.exp_ame", "==");
    979     PXOPT_COPY_S64(config->args, where, "-exp_id",      "relExp.exp_id", "==");
    980     PXOPT_COPY_S64(config->args, where, "-chip_id",     "relExp.chip_id", "==");
    981     PXOPT_COPY_S64(config->args, where, "-cam_id",      "relExp.cam_id", "==");
    982     PXOPT_COPY_S64(config->args, where, "-warp_id",     "warpRun.warp_id", "==");
    983     PXOPT_COPY_STR(config->args, where, "-chip_data_group", "chipRun.data_group", "LIKE");
    984     PXOPT_COPY_STR(config->args, where, "-cam_data_group",  "camRun.data_group", "LIKE");
    985     PXOPT_COPY_STR(config->args, where, "-warp_data_group", "warpRun.data_group", "LIKE");
     989    PXOPT_COPY_STR(config->args, where, "-tess_id",     "relStack.tess_id", "==");
     990    PXOPT_COPY_STR(config->args, where, "-skycell_id",  "relStack.skycell_id", "LIKE");
     991    PXOPT_COPY_STR(config->args, where, "-stack_data_group",  "stackRun.data_group", "LIKE");
     992    PXOPT_COPY_STR(config->args, where, "-skycal_data_group", "skycalRun.data_group", "LIKE");
    986993
    987994    PXOPT_COPY_STR(config->args, where, "-surveyName",  "survey.surveyName", "LIKE");
    988995    PXOPT_COPY_S32(config->args, where, "-rel_id",      "relExp.rel_id", "==");
     996    pxskycellAddWhere(config, where);
    989997
    990998    PXOPT_LOOKUP_BOOL(priority_order, config->args, "-priority_order", false);
     
    9931001    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    9941002
    995     psString query = pxDataGet("releasetool_listrelexp.sql");
     1003    psString query = pxDataGet("releasetool_listrelstack.sql");
    9961004    if (!query) {
    9971005        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    998         return false;
    999     }
    1000 
    1001     psString where2 = NULL;
    1002     if (!pxspaceAddWhere(config, &where2, "rawExp")) {
    1003         psError(psErrorCodeLast(), false, "pxspaceAddWhere failed");
    10041006        return false;
    10051007    }
     
    10091011        psStringAppend(&query, "\nWHERE %s", whereClause);
    10101012        psFree(whereClause);
    1011     } else if (where2) {
    1012         psStringAppend(&query, "\nWHERE ");
    10131013    } else {
    10141014        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required\n");
     
    10171017    }
    10181018
    1019     if (where2) {
    1020         psStringAppend(&query, "\n%s", where2);
    1021         psFree(where2);
    1022     }
    1023 
    10241019    if (priority_order) {
    1025         psStringAppend(&query, "\nAND priority > 0 order by exp_id, priority");
     1020        psStringAppend(&query, "\nAND priority > 0 order by stack_id, priority");
    10261021    }
    10271022
     
    10511046    }
    10521047
    1053     if (!ippdbPrintMetadatas(stdout, output, "relExp", !simple)) {
     1048    if (!ippdbPrintMetadatas(stdout, output, "relStack", !simple)) {
    10541049        psError(PS_ERR_UNKNOWN, false, "failed to print array");
    10551050        psFree(output);
     
    13311326    PS_ASSERT_PTR_NON_NULL(config, false);
    13321327
    1333     PXOPT_LOOKUP_S32(group_id, config->args,      "-group_id", true, false);
     1328    PXOPT_LOOKUP_S32(group_id, config->args,      "-group_id", false, false);
     1329    PXOPT_LOOKUP_STR(group_name, config->args,    "-group_name",  false, false);
     1330    if (!group_id && !group_name) {
     1331        psError(PXTOOLS_ERR_CONFIG, true, "either group_id or group_name is required\n");
     1332        return false;
     1333    }
    13341334
    13351335    PXOPT_LOOKUP_STR(state,    config->args,    "-set_state",  false, false);
     
    13521352
    13531353    PXOPT_COPY_S64(config->args, where, "-group_id", "relGroup.group_id", "==");
     1354    PXOPT_COPY_STR(config->args, where, "-group_name", "relGroup.group_name", "==");
    13541355    // XXX TODO if label is enabled (for changing label or state for a block) we should
    13551356    // disallow setting some parameters such as exp_list_path
  • branches/eam_branches/ipp-20130307/ippTools/src/releasetoolConfig.c

    r35350 r35412  
    195195    psMetadataAddF32(definerelstackArgs,  PS_LIST_TAIL, "-set_zpt_stdev", 0,  "define zero point stdev", NAN);
    196196    psMetadataAddF32(definerelstackArgs,  PS_LIST_TAIL, "-set_fwhm_major", 0, "define fwhm_major", NAN);
    197     psMetadataAddStr(definerelstackArgs,  PS_LIST_TAIL, "-set_path_base", 0,  "define state (required)", NULL);
     197    psMetadataAddStr(definerelstackArgs,  PS_LIST_TAIL, "-set_path_base", 0,  "define state", NULL);
    198198    psMetadataAddS16(definerelstackArgs,  PS_LIST_TAIL, "-set_fault", 0,      "define fault", 0);
    199199
    200     psMetadataAddBool(definerelstackArgs, PS_LIST_TAIL, "-pretend",  0, "do not actually modify the database", false);
     200    psMetadataAddBool(definerelstackArgs, PS_LIST_TAIL, "-pretend", 0, "do not actually modify the database", false);
    201201    psMetadataAddBool(definerelstackArgs, PS_LIST_TAIL, "-simple",  0, "use the simple output format", false);
     202    psMetadataAddU64(definerelstackArgs, PS_LIST_TAIL,  "-limit",   0, "limit result set to N items", 0);
     203
     204    // -listrelstack
     205    psMetadata *listrelstackArgs = psMetadataAlloc();
     206    psMetadataAddS64(listrelstackArgs, PS_LIST_TAIL,  "-relstack_id", 0,   "select by released exposure ID", 0);
     207    psMetadataAddS64(listrelstackArgs, PS_LIST_TAIL,  "-stack_id", 0,   "select by stack ID", 0);
     208    psMetadataAddS64(listrelstackArgs, PS_LIST_TAIL,  "-skycal_id", 0,   "select by skycal ID", 0);
     209    psMetadataAddStr(listrelstackArgs,  PS_LIST_TAIL, "-release_name", 0, "select by release name (LIKE comparision)", NULL);
     210    psMetadataAddStr(listrelstackArgs,  PS_LIST_TAIL, "-release_state", PS_META_DUPLICATE_OK, "select by release state", NULL);
     211    psMetadataAddStr(listrelstackArgs,  PS_LIST_TAIL, "-state", 0,        "select by released stack state", NULL);
     212
     213    psMetadataAddStr(listrelstackArgs,  PS_LIST_TAIL, "-filter", 0,       "select by filter name (LIKE comparison)", NULL);
     214    // psMetadataAddTime(listrelstackArgs, PS_LIST_TAIL, "-dateobs_begin", 0,"search for exposures by time (>=)", NULL);
     215    // psMetadataAddTime(listrelstackArgs, PS_LIST_TAIL, "-dateobs_end", 0,  "search for exposures by time (<=)", NULL);
     216
     217    pxskycellAddArguments(listrelstackArgs);
     218
     219    psMetadataAddF32(listrelstackArgs,  PS_LIST_TAIL, "-fwhm_min", 0, "search by measured seeing (>=)", NAN);
     220    psMetadataAddF32(listrelstackArgs,  PS_LIST_TAIL, "-fwhm_max", 0, "search by seeing (<=)", NAN);
     221
     222    psMetadataAddStr(listrelstackArgs,  PS_LIST_TAIL, "-tess_id", 0, "select by tess_id", NULL);
     223    psMetadataAddStr(listrelstackArgs,  PS_LIST_TAIL, "-skycell_id", 0, "select by skycell_id (LIKE comparision)", NULL);
     224
     225    psMetadataAddStr(listrelstackArgs,  PS_LIST_TAIL, "-stack_data_group", 0, "select by stackRun.data_group (LIKE comparison)", NULL);
     226    psMetadataAddStr(listrelstackArgs,  PS_LIST_TAIL, "-skycal_data_group", 0, "select by skycalRun.data_group (LIKE comparison)", NULL);
     227
     228    psMetadataAddStr(listrelstackArgs,  PS_LIST_TAIL, "-surveyName", 0, "select by survey name (LIKE comparision)", NULL);
     229    psMetadataAddS64(listrelstackArgs,  PS_LIST_TAIL, "-rel_id", 0, "select by release ID", 0);
     230
     231    psMetadataAddBool(listrelstackArgs, PS_LIST_TAIL, "-priority_order",   0, "order by release priority", false);
     232
     233    psMetadataAddU64(listrelstackArgs,  PS_LIST_TAIL, "-limit",       0, "limit result set to N items", 0);
     234    psMetadataAddBool(listrelstackArgs, PS_LIST_TAIL, "-simple",      0, "use the simple output format", false);
     235
    202236
    203237    // -definerelgroup
     
    240274    psMetadata *updaterelgroupArgs = psMetadataAlloc();
    241275
    242     psMetadataAddS32(updaterelgroupArgs,  PS_LIST_TAIL, "-group_id", 0,   "select by group ID (required)", 0);
     276    psMetadataAddS32(updaterelgroupArgs,  PS_LIST_TAIL, "-group_id", 0,   "select by group ID",  0);
     277    psMetadataAddStr(updaterelgroupArgs,  PS_LIST_TAIL, "-group_name", 0, "select by group name", 0);
    243278
    244279        // parameters of the relGroup
     
    272307
    273308    PXOPT_ADD_MODE("-definerelstack",     "define a released stack",    RELEASETOOL_MODE_DEFINERELSTACK,  definerelstackArgs);
     309    PXOPT_ADD_MODE("-listrelstack",       "list released stacks",      RELEASETOOL_MODE_LISTRELSTACK,    listrelstackArgs);
    274310
    275311    PXOPT_ADD_MODE("-definerelgroup",     "define a group of exposures", RELEASETOOL_MODE_DEFINERELGROUP,  definerelgroupArgs);
Note: See TracChangeset for help on using the changeset viewer.