IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 16978


Ignore:
Timestamp:
Mar 13, 2008, 11:44:28 AM (18 years ago)
Author:
bills
Message:

Handle request finish processing in th case were the request doesn't
result in any jobs.

Location:
trunk/pstamp/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/pstamp/src/pstampfinish.c

    r16933 r16978  
    3131
    3232#define RESULTS_FILE_NAME "results.fits"
     33#define PARSE_ERROR_FILE_NAME "parse_error"
    3334
    3435
     
    202203    psArray *stamps = psArrayAlloc(0);
    203204
    204     long numJobs = psArrayLength(stoppedJobs);
    205205    long numStamps = 0;
    206     for (int i = 0; i < numJobs; i++) {
    207         pstampJobRow *pJob = psArrayGet(stoppedJobs, i);
    208 
    209         psMetadata *jobmd = psMetadataAlloc();
    210         psArrayAdd(table, 1, jobmd);
    211 
    212         psMetadataAddS32(jobmd, PS_LIST_TAIL, "RESULT", 0, "", pJob->result);
    213 
    214         if (pJob->result == 0) {
    215             ++numStamps;
    216             // XXX: should we check for existence?
    217             psString stampName = getBaseName(pJob->outputBase, true);
    218             psString inputName = getBaseName(pJob->uri, false);
    219             psArrayAdd(stamps, 1, stampName);
    220             // add basename of stamp and output uri
    221             psMetadataAddStr(jobmd, PS_LIST_TAIL, "STAMP_NAME", PS_DATA_STRING, "", stampName);
    222             psMetadataAddStr(jobmd, PS_LIST_TAIL, "INPUT_NAME", PS_DATA_STRING, "", inputName);
    223             psMetadataAddStr(jobmd, PS_LIST_TAIL, "COMMENT", PS_DATA_STRING, "",
    224                 "stamp made successfully");
    225         } else {
    226             // TODO: convert the result code into something useful to the user
    227             psMetadataAddStr(jobmd, PS_LIST_TAIL, "COMMENT", PS_DATA_STRING, "",
    228                 "add description of what happened here");
     206    if (stoppedJobs) {
     207        long numJobs = psArrayLength(stoppedJobs);
     208        for (int i = 0; i < numJobs; i++) {
     209            pstampJobRow *pJob = psArrayGet(stoppedJobs, i);
     210
     211            psMetadata *jobmd = psMetadataAlloc();
     212            psArrayAdd(table, 1, jobmd);
     213
     214            psMetadataAddS32(jobmd, PS_LIST_TAIL, "RESULT", 0, "", pJob->result);
     215
     216            if (pJob->result == 0) {
     217                ++numStamps;
     218                // XXX: should we check for existence?
     219                psString stampName = getBaseName(pJob->outputBase, true);
     220                psString inputName = getBaseName(pJob->uri, false);
     221                psArrayAdd(stamps, 1, stampName);
     222                // add basename of stamp and output uri
     223                psMetadataAddStr(jobmd, PS_LIST_TAIL, "STAMP_NAME", PS_DATA_STRING, "", stampName);
     224                psMetadataAddStr(jobmd, PS_LIST_TAIL, "INPUT_NAME", PS_DATA_STRING, "", inputName);
     225                psMetadataAddStr(jobmd, PS_LIST_TAIL, "COMMENT", PS_DATA_STRING, "",
     226                    "stamp made successfully");
     227                } else {
     228                // TODO: convert the result code into something useful to the user
     229                psMetadataAddStr(jobmd, PS_LIST_TAIL, "COMMENT", PS_DATA_STRING, "",
     230                    "add description of what happened here");
     231            }
     232        }
     233    } else {
     234        // request generated no jobs look for a parse error file
     235        // and add its contents as an ERROR
     236        bool    gotError = false;
     237        psMetadata *errmd = psMetadataAlloc();
     238        psArrayAdd(table, 1, errmd);
     239
     240        psString parseErrorFile = NULL;
     241        psStringAppend(&parseErrorFile, "%s/%s", filesetDir, PARSE_ERROR_FILE_NAME);
     242        FILE *f = fopen(parseErrorFile, "r");
     243        if (f) {
     244            char buf[2048];
     245            bzero(buf, 2048);
     246            size_t n = fread(buf, 1, 2048, f);
     247            if (n > 0) {
     248                psMetadataAddStr(errmd, PS_LIST_TAIL, "ERROR", PS_DATA_STRING, "", buf);
     249                gotError = true;
     250            }
     251            fclose(f);
     252        }
     253        if (!gotError) {
     254            psMetadataAddStr(errmd, PS_LIST_TAIL, "ERROR", PS_DATA_STRING, "",
     255                "Request queued no jobs, reason unknown");
    229256        }
    230257    }
  • trunk/pstamp/src/pstampparse.c

    r16933 r16978  
    778778        // or are there simply no images matching the request
    779779        fprintf(stderr, "No matching images found.\n");
    780         return true;
     780        return false;
    781781    }
    782782
Note: See TracChangeset for help on using the changeset viewer.