Changeset 94 for trunk


Ignore:
Timestamp:
11/15/13 16:10:32 (10 years ago)
Author:
mmamonski
Message:

Torque 4 support

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/pbs_drmaa/pbs_conn.c

    r92 r94  
    154154} 
    155155 
     156#define HAS_PBS_SUBMIT_HASH              
     157#ifdef HAS_PBS_SUBMIT_HASH 
     158 
     159#include <qsub_functions.h> 
     160 
     161void set_job_defaults(job_info *ji) { 
     162  _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji->mm, &ji->job_attr, ATTR_c, CHECKPOINT_UNSPECIFIED, STATIC_DATA); 
     163 
     164  _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji->mm, &ji->job_attr, ATTR_h, NO_HOLD, STATIC_DATA); 
     165 
     166  _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji->mm, &ji->job_attr, ATTR_j, NO_JOIN, STATIC_DATA); 
     167 
     168  _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji->mm, &ji->job_attr, ATTR_k, NO_KEEP, STATIC_DATA); 
     169 
     170  _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji->mm, &ji->job_attr, ATTR_m, MAIL_AT_ABORT, STATIC_DATA); 
     171 
     172  _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji->mm, &ji->job_attr, ATTR_p, DEFAULT_PRIORITY, STATIC_DATA); 
     173 
     174  _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji->mm, &ji->job_attr, ATTR_r, "FALSE", STATIC_DATA); 
     175  _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji->mm, &ji->job_attr, ATTR_f, "FALSE", STATIC_DATA); 
     176   
     177  _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji->mm, &ji->client_attr, "pbs_dprefix", "#PBS", STATIC_DATA); 
     178  _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji->mm, &ji->job_attr, ATTR_job_radix, "0", STATIC_DATA); 
     179  _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji->mm, &ji->job_attr, ATTR_v, ""); 
     180 
     181 
     182 
     183static char *pbs_submit_4_wrapper(int connection_fd, struct attropl *attrib, char  *script, char *destination) 
     184{        
     185        char *new_jobname = NULL; 
     186        char *jobname_copy = NULL; 
     187        char *errmsg = NULL; 
     188        job_info          ji; 
     189        int local_errno = 0; 
     190        struct attropl *p; 
     191 
     192        memset(&ji, 0, sizeof(job_info)); 
     193 
     194        if (_Z11memmgr_initPP6memmgri(&ji.mm, 8192) != PBSE_NONE) /* do not want to use g++ just for this file*/ 
     195          { 
     196                pbsdrmaa_exc_raise_pbs( "memmgr_init", connection_fd); 
     197          } 
     198 
     199        set_job_defaults(&ji); 
     200 
     201        for (p = attrib; p; p = p->next) { 
     202                if (p->resource) { 
     203                        _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji.mm, &ji.res_attr, p->resource, p->value); 
     204                } else { 
     205                        _Z16hash_add_or_exitPP6memmgrPP8job_dataPKcS6_i(&ji.mm, &ji.job_attr, p->name, p->value); 
     206                } 
     207        } 
     208 
     209 
     210        pbs_errno = pbs_submit_hash( 
     211                  connection_fd, 
     212                  &ji.mm, 
     213                  ji.job_attr, 
     214                  ji.res_attr, 
     215                  script, 
     216                  destination, 
     217                  NULL, 
     218                  &new_jobname, 
     219                  &errmsg);              
     220 
     221        fsd_log_info(("pbs_submit_hash(%s,%s) = %d (jobid=%s)", script, destination, local_errno, new_jobname)); 
     222         
     223        jobname_copy = fsd_strdup(new_jobname); 
     224 
     225        _Z14memmgr_destroyPP6memmgr(&ji.mm); 
     226 
     227        return jobname_copy; 
     228} 
     229#endif 
     230 
    156231char*  
    157232pbsdrmaa_pbs_submit( pbsdrmaa_pbs_conn_t *self, struct attropl *attrib, char *script, char *destination ) 
     
    170245 
    171246retry: 
     247 
     248#ifdef HAS_PBS_SUBMIT_HASH 
     249                job_id = pbs_submit_4_wrapper(self->connection_fd, attrib, script, destination); 
     250#else 
    172251                job_id = pbs_submit(self->connection_fd, attrib, script, destination, NULL); 
     252#endif 
    173253 
    174254                fsd_log_info(("pbs_submit(%s, %s) = %s", script, destination, job_id)); 
Note: See TracChangeset for help on using the changeset viewer.