Skip to content
Snippets Groups Projects
Commit 5a74daf2 authored by Moe Jette's avatar Moe Jette
Browse files

Added time-stamp to get job step RPC.

parent 6a260b2d
No related branches found
No related tags found
No related merge requests found
......@@ -63,7 +63,7 @@ slurm_print_job_step_info ( FILE* out, job_step_info_t * job_step_ptr )
/* slurm_load_job_steps - issue RPC to get Slurm job_step state information */
int
slurm_get_job_steps ( uint32_t job_id, uint32_t step_id, job_step_info_response_msg_t **step_response_pptr)
slurm_get_job_steps (time_t update_time, uint32_t job_id, uint32_t step_id, job_step_info_response_msg_t **step_response_pptr)
{
int msg_size ;
int rc ;
......@@ -81,8 +81,9 @@ slurm_get_job_steps ( uint32_t job_id, uint32_t step_id, job_step_info_response_
}
/* send request message */
step_request . last_update = update_time ;
step_request . job_id = job_id ;
step_request . job_step_id = step_id ;
step_request . step_id = step_id ;
request_msg . msg_type = REQUEST_JOB_STEP_INFO ;
request_msg . data = &step_request;
if ( ( rc = slurm_send_controller_msg ( sockfd , & request_msg ) ) == SLURM_SOCKET_ERROR ) {
......
......@@ -114,7 +114,7 @@ extern int slurm_load_partitions (time_t update_time, partition_info_msg_t **par
extern int slurm_submit_batch_job (job_desc_msg_t * job_desc_msg,
submit_response_msg_t ** slurm_alloc_msg );
extern int slurm_get_job_steps ( uint32_t job_id, uint32_t step_id, job_step_info_response_msg_t **step_response_pptr);
extern int slurm_get_job_steps (time_t update_time, uint32_t job_id, uint32_t step_id, job_step_info_response_msg_t **step_response_pptr);
extern void slurm_print_job_step_info_msg ( FILE* out, job_step_info_response_msg_t * job_step_info_msg_ptr );
extern void slurm_print_job_step_info ( FILE* out, job_step_info_t * job_step_ptr );
......
......@@ -388,9 +388,13 @@ typedef struct job_step_info_response_msg
} job_step_info_response_msg_t ;
typedef struct job_step_id job_step_id_msg_t ;
typedef struct job_step_id job_step_info_request_msg_t ;
typedef struct job_step_id job_info_request_msg_t ;
typedef struct job_step_info_request_msg {
uint32_t last_update;
uint32_t job_id ;
uint32_t step_id ;
} job_step_info_request_msg_t ;
typedef struct job_info_msg {
uint32_t last_update;
......
......@@ -175,9 +175,12 @@ int pack_msg ( slurm_msg_t const * msg , char ** buffer , uint32_t * buf_len )
case REQUEST_KILL_TASKS :
pack_cancel_tasks_msg ( ( kill_tasks_msg_t * ) msg->data , ( void ** ) buffer , buf_len ) ;
break ;
case REQUEST_JOB_STEP_INFO :
pack_get_job_step_info ( ( job_step_info_request_msg_t * ) msg->data ,
( void ** ) buffer , buf_len ) ;
break ;
/******** job_step_id_t Messages ********/
case REQUEST_JOB_INFO :
case REQUEST_JOB_STEP_INFO :
case REQUEST_CANCEL_JOB_STEP :
case REQUEST_COMPLETE_JOB_STEP :
pack_job_step_id ( ( job_step_id_t * ) msg->data ,
......@@ -321,9 +324,12 @@ int unpack_msg ( slurm_msg_t * msg , char ** buffer , uint32_t * buf_len )
unpack_cancel_tasks_msg ( ( kill_tasks_msg_t ** ) & ( msg->data ) ,
( void ** ) buffer , buf_len ) ;
break ;
case REQUEST_JOB_STEP_INFO :
unpack_get_job_step_info ( ( job_step_info_request_msg_t ** ) & ( msg->data ) ,
( void ** ) buffer , buf_len ) ;
break ;
/******** job_step_id_t Messages ********/
case REQUEST_JOB_INFO :
case REQUEST_JOB_STEP_INFO :
case REQUEST_CANCEL_JOB_STEP :
case REQUEST_COMPLETE_JOB_STEP :
unpack_job_step_id ( ( job_step_id_t ** ) & ( msg->data ) ,
......@@ -1471,6 +1477,30 @@ int unpack_job_step_id ( job_step_id_t ** msg_ptr , void ** buffer , uint32_t *
return 0 ;
}
void pack_get_job_step_info ( job_step_info_request_msg_t * msg , void ** buffer , uint32_t * length )
{
pack32 ( msg -> last_update , buffer , length ) ;
pack32 ( msg -> job_id , buffer , length ) ;
pack32 ( msg -> step_id , buffer , length ) ;
}
int unpack_get_job_step_info ( job_step_info_request_msg_t ** msg , void ** buffer , uint32_t * length )
{
job_step_info_request_msg_t * job_step_info ;
job_step_info = xmalloc ( sizeof ( job_step_info_request_msg_t ) ) ;
if ( job_step_info == NULL)
{
*msg = NULL ;
return ENOMEM ;
}
unpack32 ( & job_step_info -> last_update , buffer , length ) ;
unpack32 ( & job_step_info -> job_id , buffer , length ) ;
unpack32 ( & job_step_info -> step_id , buffer , length ) ;
*msg = job_step_info ;
return 0 ;
}
/* template
......
......@@ -133,6 +133,10 @@ int unpack_kill_tasks_msg ( kill_tasks_msg_t ** msg_ptr , void ** buffer , uint3
void pack_slurm_addr_array ( slurm_addr * slurm_address , uint16_t size_val, void ** buffer , int * length );
void unpack_slurm_addr_array ( slurm_addr ** slurm_address , uint16_t * size_val , void ** buffer , int * length );
extern void pack_get_job_step_info ( job_step_info_request_msg_t * msg , void ** buffer , uint32_t * length );
extern int unpack_get_job_step_info ( job_step_info_request_msg_t ** msg , void ** buffer , uint32_t * length );
void pack_reattach_tasks_streams_msg ( reattach_tasks_streams_msg_t * msg , void ** buffer , uint32_t * length ) ;
int unpack_reattach_tasks_streams_msg ( reattach_tasks_streams_msg_t ** msg_ptr , void ** buffer , uint32_t * length ) ;
......
......@@ -485,7 +485,7 @@ print_part (char *partition_name)
void
print_step (char *job_step_id_str)
{
int error_code, i, print_cnt=0;
int error_code, i;
uint32_t job_id = 0, step_id = 0;
char *next_str;
job_step_info_response_msg_t *job_step_info_ptr;
......@@ -497,7 +497,7 @@ print_step (char *job_step_id_str)
step_id = (uint32_t) strtol (&next_str[1], NULL, 10);
}
error_code = slurm_get_job_steps ( job_id, step_id, &job_step_info_ptr);
error_code = slurm_get_job_steps ( (time_t) 0, job_id, step_id, &job_step_info_ptr);
if (error_code) {
if (quiet_flag != 1)
slurm_perror ("slurm_get_job_steps error");
......@@ -505,18 +505,11 @@ print_step (char *job_step_id_str)
}
if (quiet_flag == -1)
printf ("last_update_time=%ld,\n", (long) job_step_info_ptr->last_update);
printf ("last_update_time=%ld\n", (long) job_step_info_ptr->last_update);
job_step_ptr = job_step_info_ptr->job_steps ;
for (i = 0; i < job_step_info_ptr->job_step_count; i++) {
if (job_step_id_str && job_id != job_step_ptr[i].job_id)
continue;
if (job_step_id_str && step_id != job_step_ptr[i].step_id)
continue;
print_cnt++;
slurm_print_job_step_info (stdout, & job_step_ptr[i] ) ;
if (job_step_id_str)
break;
}
if ((job_step_info_ptr->job_step_count == 0) && (quiet_flag != 1)) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment