Changeset 27


Ignore:
Timestamp:
11/11/12 22:30:18 (12 years ago)
Author:
mmamonski
Message:

use job category first

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ll_drmaa/job.c

    r26 r27  
    202202        self->last_update_time = time(NULL); 
    203203 
     204        if( self->state >= DRMAA_PS_DONE ) 
     205                fsd_cond_broadcast( &self->status_cond ); 
     206 
    204207        fsd_log_return(( "" )); 
    205208} 
     
    298301                                        self->state = DRMAA_PS_DONE; 
    299302                                        self->exit_status = 0; 
     303                                        fsd_cond_broadcast( &self->status_cond ); 
    300304                                  } 
    301305                                else if (llself->missing_time == 0) 
     
    303307                                        llself->missing_time = time(NULL); 
    304308                                        fsd_log_debug(("Job %s missing for the first time", self->job_id)); /* Job may not yet be visible in LL */ 
     309                                        fsd_cond_broadcast( &self->status_cond ); 
    305310                                 } 
    306311                                else if (time(NULL) - llself->missing_time > LL_DRMAA_MAX_MISSING_TIME) 
    307312                                 { 
    308                                         fsd_log_error(("Job %s missing for more then %d seconds. Assuming failef", self->job_id, LL_DRMAA_MAX_MISSING_TIME));  
     313                                        fsd_log_error(("Job %s missing for more then %d seconds. Assuming failed", self->job_id, LL_DRMAA_MAX_MISSING_TIME));  
    309314                                        /* Job may not yet be visible in LL */ 
    310315                                        self->state = DRMAA_PS_FAILED; 
     
    343348                        llself->read_job_info(self, step_state, hold_type); 
    344349 
    345                         fsd_log_info(("LL State: %d -> DRMAA: %s", step_state, drmaa_job_ps_to_str(self->state))); 
     350                        fsd_log_info(("Job %s LL State: %d -> DRMAA: %s", self->job_id, step_state, drmaa_job_ps_to_str(self->state))); 
    346351                } 
    347352        } 
     
    476481                fprintf(fd,"# File created by LoadLeveler DRMAA. If no LL DRMAA applications are running you can delete this file\n"); 
    477482 
     483                /* job category */ 
     484                value = jt->get_attr( jt, DRMAA_JOB_CATEGORY ); 
     485                if( value ) 
     486                        job_category = value; 
     487 
     488                { 
     489                        char * temp; 
     490                        fsd_conf_option_t *category_value = NULL; 
     491                        category_value = fsd_conf_dict_get( session->job_categories, job_category ); 
     492                        if( category_value != NULL ) 
     493                        { 
     494                                if( category_value->type != FSD_CONF_STRING ) 
     495                                        fsd_exc_raise_fmt( 
     496                                                        FSD_ERRNO_INTERNAL_ERROR, 
     497                                                        "configuration error: job category should be string" 
     498                                                        ); 
     499 
     500                                temp = fsd_strdup(category_value->val.string); 
     501                                temp = fsd_replace(temp,"@","\n# $"); /* infinite loop when try replace @ with # @ */ 
     502                                temp = fsd_replace(temp,"# $","# @ "); 
     503 
     504                                fprintf(fd,"# Job category:%s\n", temp); 
     505                                fsd_log_debug(("Job category:\n%s",temp)); 
     506                                fsd_free(temp); 
     507                        } 
     508                        else 
     509                        { 
     510                                if( value != NULL ) 
     511                                        fsd_exc_raise_fmt( 
     512                                                        FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE, 
     513                                                        "invalid job category: %s", job_category 
     514                                                        ); 
     515                        } 
     516                } 
     517 
    478518                /* job name */ 
    479519                value = jt->get_attr( jt, DRMAA_JOB_NAME ); 
     
    566606                } 
    567607 
    568                 /* job category */ 
    569                 value = jt->get_attr( jt, DRMAA_JOB_CATEGORY ); 
    570                 if( value ) 
    571                         job_category = value; 
    572  
    573                 { 
    574                         char * temp; 
    575                         fsd_conf_option_t *category_value = NULL; 
    576                         category_value = fsd_conf_dict_get( session->job_categories, job_category ); 
    577                         if( category_value != NULL ) 
    578                         { 
    579                                 if( category_value->type != FSD_CONF_STRING ) 
    580                                         fsd_exc_raise_fmt( 
    581                                                         FSD_ERRNO_INTERNAL_ERROR, 
    582                                                         "configuration error: job category should be string" 
    583                                                         ); 
    584  
    585                                 temp = fsd_strdup(category_value->val.string); 
    586                                 temp = fsd_replace(temp,"@","\n# $"); /* infinite loop when try replace @ with # @ */ 
    587                                 temp = fsd_replace(temp,"# $","# @ "); 
    588  
    589                                 fprintf(fd,"# Job category:%s\n", temp); 
    590                                 fsd_log_debug(("Job category:\n%s",temp)); 
    591                                 fsd_free(temp); 
    592                         } 
    593                         else 
    594                         { 
    595                                 if( value != NULL ) 
    596                                         fsd_exc_raise_fmt( 
    597                                                         FSD_DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE, 
    598                                                         "invalid job category: %s", job_category 
    599                                                         ); 
    600                         } 
    601                 } 
    602608 
    603609 
Note: See TracChangeset for help on using the changeset viewer.