From cbc7af6b6f235afb2368141252f8aabb6b5c0283 Mon Sep 17 00:00:00 2001 From: jce <jce@unknown> Date: Mon, 10 Jun 2002 22:39:46 +0000 Subject: [PATCH] ported reconfigure to new comm layer. --- src/api/job_info.c | 2 +- src/api/reconfigure.c | 103 +++++++++++++++++------------------------- 2 files changed, 43 insertions(+), 62 deletions(-) diff --git a/src/api/job_info.c b/src/api/job_info.c index b7075b4db2c..54be9836fe0 100644 --- a/src/api/job_info.c +++ b/src/api/job_info.c @@ -117,7 +117,7 @@ slurm_load_jobs (time_t update_time, job_info_msg_t **job_info_msg_pptr) slurm_msg_t request_msg ; slurm_msg_t response_msg ; last_update_msg_t last_time_msg ; - return_code_msg_t * slurm_rc_msg ; + return_code_msg_t * slurm_rc_msg ; /* init message connection for message communication with controller */ if ( ( sockfd = slurm_open_controller_conn ( SLURM_PORT ) ) == SLURM_SOCKET_ERROR ) diff --git a/src/api/reconfigure.c b/src/api/reconfigure.c index 700a2be13e6..a6a40f7d160 100644 --- a/src/api/reconfigure.c +++ b/src/api/reconfigure.c @@ -10,14 +10,8 @@ #include <errno.h> #include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <syslog.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> -#include <unistd.h> +#include <src/common/slurm_protocol_api.h> #include "slurm.h" #if DEBUG_MODULE @@ -43,59 +37,46 @@ main (int argc, char *argv[]) { #endif -/* - * reconfigure - _ request that slurmctld re-read the configuration files - * output: returns 0 on success, errno otherwise - */ int -reconfigure () { - int buffer_offset, buffer_size, error_code, in_size; - char request_msg[64], *buffer; - int sockfd; - struct sockaddr_in serv_addr; - - if ((sockfd = socket (AF_INET, SOCK_STREAM, 0)) < 0) - return EINVAL; - serv_addr.sin_family = PF_INET; - serv_addr.sin_addr.s_addr = inet_addr (SLURMCTLD_HOST); - serv_addr.sin_port = htons (SLURMCTLD_PORT); - if (connect - (sockfd, (struct sockaddr *) &serv_addr, - sizeof (serv_addr)) < 0) { - close (sockfd); - return EINVAL; - } - sprintf (request_msg, "Reconfigure"); - if (send (sockfd, request_msg, strlen (request_msg) + 1, 0) < - strlen (request_msg)) { - close (sockfd); - return EINVAL; - } - buffer = NULL; - buffer_offset = 0; - buffer_size = 1024; - while (1) { - buffer = realloc (buffer, buffer_size); - if (buffer == NULL) { - close (sockfd); - return ENOMEM; - } - in_size = - recv (sockfd, &buffer[buffer_offset], - (buffer_size - buffer_offset), 0); - if (in_size <= 0) { /* end if input */ - in_size = 0; - break; - } - buffer_offset += in_size; - buffer_size += in_size; - } - close (sockfd); - buffer_size = buffer_offset + in_size; - buffer = realloc (buffer, buffer_size); - if (buffer == NULL) - return ENOMEM; - error_code = atoi (buffer); - free (buffer); - return error_code; +slurm_reconfigure () +{ + int msg_size ; + int rc ; + slurm_fd sockfd ; + slurm_msg_t request_msg ; + slurm_msg_t response_msg ; + return_code_msg_t* rc_msg ; + /* init message connection for message communication with controller */ + + if ( ( sockfd = slurm_open_controller_conn ( SLURM_PORT ) ) == SLURM_SOCKET_ERROR ) + return SLURM_SOCKET_ERROR ; + + + /* send request message */ + request_msg . msg_type = REQUEST_RECONFIGURE ; + + if ( ( rc = slurm_send_controller_msg ( sockfd , & request_msg ) ) == SLURM_SOCKET_ERROR ) + return SLURM_SOCKET_ERROR ; + + + /* receive message */ + if ( ( msg_size = slurm_receive_msg ( sockfd , & response_msg ) ) == SLURM_SOCKET_ERROR ) + return SLURM_SOCKET_ERROR ; + /* shutdown message connection */ + if ( ( rc = slurm_shutdown_msg_conn ( sockfd ) ) == SLURM_SOCKET_ERROR ) + return SLURM_SOCKET_ERROR ; + + switch ( response_msg . msg_type ) + { + case RESPONSE_SLURM_RC: + rc_msg = ( return_code_msg_t * ) response_msg . data ; + return rc_msg->return_code ; + break ; + default: + return SLURM_UNEXPECTED_MSG_ERROR ; + break ; + } + + return SLURM_SUCCESS ; } + -- GitLab