diff --git a/src/api/config_info.c b/src/api/config_info.c index 5c2166df09f05825578b01f26a451abbd58e417d..d2acf1ff5db9b125ca3a2d047c825a7d36946c50 100644 --- a/src/api/config_info.c +++ b/src/api/config_info.c @@ -1,5 +1,5 @@ /* - * partition_info.c - get the partition information of slurm + * build_info.c - get the build information of slurm * see slurm.h for documentation on external functions and data structures * * author: moe jette, jette@llnl.gov diff --git a/src/api/job_info.c b/src/api/job_info.c index 54be9836fe0204552db928a79b4d98ce207d1994..0aa3fce95901a9172775f4000957a18227796e3d 100644 --- a/src/api/job_info.c +++ b/src/api/job_info.c @@ -1,9 +1,29 @@ -/* - * job_info.c - get the job records of slurm - * see slurm.h for documentation on external functions and data structures - * - * author: moe jette, jette@llnl.gov - */ +/*****************************************************************************\ + * job_info.c - get the job records of slurm + * see slurm.h for documentation on external functions and data structures + ***************************************************************************** + * Copyright (C) 2002 The Regents of the University of California. + * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). + * Written by Moe Jette <jette1@llnl.gov> et. al. + * UCRL-CODE-2002-040. + * + * This file is part of SLURM, a resource management program. + * For details, see <http://www.llnl.gov/linux/slurm/>. + * + * SLURM is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * SLURM is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along + * with ConMan; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +\*****************************************************************************/ #define DEBUG_SYSTEM 1 @@ -29,7 +49,7 @@ main (int argc, char *argv[]) error_code = slurm_load_jobs (last_update_time, &job_info_msg_ptr); if (error_code) { - printf ("slurm_load_job error %d\n", error_code); + printf ("slurm_load_jobs error %d\n", error_code); exit (error_code); } @@ -56,7 +76,7 @@ slurm_print_job_info_msg ( job_info_msg_t * job_info_msg_ptr ) } } -/* print an individual job_table row */ +/* print an individual job_table entry */ void slurm_print_job_table (job_table_t * job_ptr ) { @@ -96,18 +116,7 @@ slurm_print_job_table (job_table_t * job_ptr ) printf("\n\n"); } -/* - * slurm_load_job - load the supplied job information buffer for use by info - * gathering APIs if job records have changed since the time specified. - * input: update_time - time of last update - * job_buffer_ptr - place to park job_buffer pointer - * output: job_buffer_ptr - pointer to allocated job_buffer - * returns -1 if no update since update_time, - * 0 if update with no error, - * EINVAL if the buffer (version or otherwise) is invalid, - * ENOMEM if malloc failure - * NOTE: the allocated memory at job_info_msg_pptr freed by slurm_free_job_info. - */ +/* slurm_load_job - load the supplied job information buffer if changed */ int slurm_load_jobs (time_t update_time, job_info_msg_t **job_info_msg_pptr) { @@ -117,7 +126,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/node_info.c b/src/api/node_info.c index 2f194a43c799c65bf3fc51d5cfddec3009395a9a..e754fd181e20a8b00effa5297cef898d1df2e840 100644 --- a/src/api/node_info.c +++ b/src/api/node_info.c @@ -1,9 +1,29 @@ -/* - * node_info.c - get the node records of slurm - * see slurm.h for documentation on external functions and data structures - * - * author: moe jette, jette@llnl.gov - */ +/*****************************************************************************\ + * node_info.c - get the node records of slurm + * see slurm.h for documentation on external functions and data structures + ***************************************************************************** + * Copyright (C) 2002 The Regents of the University of California. + * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). + * Written by Moe Jette <jette1@llnl.gov> et. al. + * UCRL-CODE-2002-040. + * + * This file is part of SLURM, a resource management program. + * For details, see <http://www.llnl.gov/linux/slurm/>. + * + * SLURM is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * SLURM is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along + * with ConMan; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +\*****************************************************************************/ #define DEBUG_SYSTEM 1 @@ -22,7 +42,7 @@ #include <unistd.h> #include "slurm.h" -#include "pack.h" +#include <src/common/slurm_protocol_api.h> #if DEBUG_MODULE /* main is used here for testing purposes only */ @@ -31,173 +51,112 @@ main (int argc, char *argv[]) { static time_t last_update_time = (time_t) NULL; int error_code, i; - struct node_buffer *node_buffer_ptr = NULL; - struct node_table *node_ptr = NULL; + node_info_msg_t * node_info_msg_ptr = NULL; + node_table_t * node_ptr = node_info_msg_ptr -> node_array ; - error_code = slurm_load_node (last_update_time, &node_buffer_ptr); + error_code = slurm_load_node (last_update_time, &node_info_msg_ptr); if (error_code) { printf ("slurm_load_node error %d\n", error_code); exit (error_code); } - printf("Updated at %lx, record count %u\n", - node_buffer_ptr->last_update, node_buffer_ptr->node_count); - node_ptr = node_buffer_ptr->node_table_ptr; + printf("Nodes updated at %d, record count %d\n", + node_info_msg_ptr ->last_update, node_info_msg_ptr->record_count); - for (i = 0; i < node_buffer_ptr->node_count; i++) { + for (i = 0; i < node_info_msg_ptr-> record_count; i++) + { /* to limit output we print only the first 10 entries, * last 1 entry, and every 200th entry */ if ((i < 10) || (i % 200 == 0) || - ((i + 1) == node_buffer_ptr->node_count)) { - printf ("NodeName=%s CPUs=%u ", - node_ptr[i].name, node_ptr[i].cpus); - printf ("RealMemory=%u TmpDisk=%u ", - node_ptr[i].real_memory, node_ptr[i].tmp_disk); - printf ("State=%u Weight=%u ", - node_ptr[i].node_state, node_ptr[i].weight); - printf ("Features=%s Partition=%s\n", - node_ptr[i].features, node_ptr[i].partition); + ((i + 1) == node_info_msg_ptr-> record_count)) { + slurm_print_node_table ( & node_ptr[i] ) ; } else if ((i==10) || (i % 200 == 1)) printf ("skipping...\n"); - } - slurm_free_node_info (node_buffer_ptr); + } + + slurm_free_node_info ( node_info_msg_ptr ) ; exit (0); } #endif +/* print the entire node_info_msg */ +void +slurm_print_node_info_msg ( node_info_msg_t * node_info_msg_ptr ) +{ + int i; + node_table_t * node_ptr = node_info_msg_ptr -> node_array ; + + printf("Nodes updated at %d, record count %d\n", + node_info_msg_ptr ->last_update, node_info_msg_ptr->record_count); + + for (i = 0; i < node_info_msg_ptr-> record_count; i++) + { + slurm_print_node_table ( & node_ptr[i] ) ; + } +} + -/* - * slurm_free_node_info - free the node information buffer (if allocated) - * NOTE: buffer is loaded by slurm_load_node. - */ +/* print an individual node_table entry */ void -slurm_free_node_info (struct node_buffer *node_buffer_ptr) +slurm_print_node_table (node_table_t * node_ptr ) { - if (node_buffer_ptr == NULL) - return; - if (node_buffer_ptr->raw_buffer_ptr) - free (node_buffer_ptr->raw_buffer_ptr); - if (node_buffer_ptr->node_table_ptr) - free (node_buffer_ptr->node_table_ptr); + printf ("NodeName=%s CPUs=%u ", + node_ptr->name, node_ptr->cpus); + printf ("RealMemory=%u TmpDisk=%u ", + node_ptr->real_memory, node_ptr->tmp_disk); + printf ("State=%u Weight=%u ", + node_ptr->node_state, node_ptr->weight); + printf ("Features=%s Partition=%s\n\n", + node_ptr->features, node_ptr->partition); } -/* - * slurm_load_node - load the supplied node information buffer for use by info - * gathering APIs if node records have changed since the time specified. - * input: update_time - time of last update - * node_buffer_ptr - place to park node_buffer pointer - * output: node_buffer_ptr - pointer to allocated node_buffer - * returns -1 if no update since update_time, - * 0 if update with no error, - * EINVAL if the buffer (version or otherwise) is invalid, - * ENOMEM if malloc failure - * NOTE: the allocated memory at node_buffer_ptr freed by slurm_free_node_info. - */ +/* slurm_load_node - load the supplied node information buffer if changed */ int -slurm_load_node (time_t update_time, struct node_buffer **node_buffer_ptr) +slurm_load_node (time_t update_time, node_info_msg_t **node_info_msg_pptr) { - int buffer_offset, buffer_size, in_size, i, sockfd; - char request_msg[64], *buffer; - void *buf_ptr; - struct sockaddr_in serv_addr; - uint32_t uint32_tmp, uint32_time; - uint16_t uint16_tmp; - struct node_table *node; - - *node_buffer_ptr = NULL; - 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, "DumpNode LastUpdate=%lu", - (long) (update_time)); - if (send (sockfd, request_msg, strlen (request_msg) + 1, 0) < - strlen (request_msg)) { - close (sockfd); - return EINVAL; - } - buffer = NULL; - buffer_offset = 0; - buffer_size = 8 * 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 of 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; - if (strcmp (buffer, "nochange") == 0) { - free (buffer); - return -1; + int msg_size ; + int rc ; + slurm_fd sockfd ; + slurm_msg_t request_msg ; + slurm_msg_t response_msg ; + last_update_msg_t last_time_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 ) + return SLURM_SOCKET_ERROR ; + + + /* send request message */ + /* pack32 ( update_time , &buf_ptr , &buffer_size ); */ + last_time_msg . last_update = update_time ; + request_msg . msg_type = REQUEST_NODE_INFO ; + request_msg . data = &last_time_msg ; + 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_NODE_INFO: + *node_info_msg_pptr = ( node_info_msg_t * ) response_msg . data ; + break ; + case RESPONSE_SLURM_RC: + slurm_rc_msg = ( return_code_msg_t * ) response_msg . data ; + break ; + default: + return SLURM_UNEXPECTED_MSG_ERROR ; + break ; } - /* load buffer's header (data structure version and time) */ - buf_ptr = buffer; - unpack32 (&uint32_tmp, &buf_ptr, &buffer_size); - if (uint32_tmp != NODE_STRUCT_VERSION) { - free (buffer); - return EINVAL; - } - unpack32 (&uint32_time, &buf_ptr, &buffer_size); - - /* load individual node info */ - node = NULL; - for (i = 0; buffer_size > 0; i++) { - node = realloc (node, sizeof(struct node_table) * (i+1)); - if (node == NULL) { - free (buffer); - return ENOMEM; - } - unpackstr_ptr (&node[i].name, &uint16_tmp, &buf_ptr, &buffer_size); - if (node[i].name == NULL) - node[i].name = ""; - unpack16 (&node[i].node_state, &buf_ptr, &buffer_size); - unpack32 (&node[i].cpus, &buf_ptr, &buffer_size); - unpack32 (&node[i].real_memory, &buf_ptr, &buffer_size); - unpack32 (&node[i].tmp_disk, &buf_ptr, &buffer_size); - unpack32 (&node[i].weight, &buf_ptr, &buffer_size); - unpackstr_ptr (&node[i].features, &uint16_tmp, - &buf_ptr, &buffer_size); - if (node[i].features == NULL) - node[i].features = ""; - unpackstr_ptr (&node[i].partition, &uint16_tmp, - &buf_ptr, &buffer_size); - if (node[i].partition == NULL) - node[i].partition = ""; - } - - *node_buffer_ptr = malloc (sizeof (struct node_buffer)); - if (*node_buffer_ptr == NULL) { - free (buffer); - free (node); - return ENOMEM; - } - (*node_buffer_ptr)->last_update = (time_t) uint32_time; - (*node_buffer_ptr)->node_count = i; - (*node_buffer_ptr)->raw_buffer_ptr = buffer; - (*node_buffer_ptr)->node_table_ptr = node; - return 0; + return SLURM_SUCCESS ; } + diff --git a/src/api/partition_info.c b/src/api/partition_info.c index d42328d8030a082180909741dd07b7540f3e13d2..1350d54f421daa3b279b6db6ed946ce6c91a3a30 100644 --- a/src/api/partition_info.c +++ b/src/api/partition_info.c @@ -19,9 +19,9 @@ #include <arpa/inet.h> #include <unistd.h> -#include "slurm.h" -#include "pack.h" -#include "nodelist.h" +#include <src/api/slurm.h> +#include <src/common/nodelist.h> +#include <src/common/pack.h> #if DEBUG_MODULE /* main is used here for module testing purposes only */ diff --git a/src/api/slurm.h b/src/api/slurm.h index 4df6511e73b921f49dbf6a2bcea390b545e8e7bb..f79fcfa2f5a03a7612d0ab2bb237ec6d04733d0e 100644 --- a/src/api/slurm.h +++ b/src/api/slurm.h @@ -71,24 +71,6 @@ struct job_buffer { struct job_table *job_table_ptr; }; -struct node_table { - char *name; /* name of the node. a null name indicates defunct node */ - uint16_t node_state; /* state of the node, see node_states */ - uint32_t cpus; /* count of processors running on the node */ - uint32_t real_memory; /* megabytes of real memory on the node */ - uint32_t tmp_disk; /* megabytes of total disk in TMP_FS */ - uint32_t weight; /* desirability of use */ - char *partition; /* partition name */ - char *features; /* features associated with the node */ -}; - -struct node_buffer { - time_t last_update; /* time of last buffer update */ - uint32_t node_count; /* count of entries in node_table */ - void *raw_buffer_ptr; /* raw network buffer info */ - struct node_table *node_table_ptr; -}; - struct part_table { char *name; /* name of the partition */ uint32_t max_time; /* minutes or INFINITE */ @@ -158,26 +140,33 @@ extern void slurm_print_build_info ( FILE * out, struct build_table * build_tabl /* * slurm_free_job_info - free the job information buffer (if allocated) - * NOTE: buffer is loaded by load_job. + * NOTE: buffer is loaded by slurm_load_job. */ extern void slurm_free_job_info (job_info_msg_t * job_buffer_ptr); /* - * slurm_print_job_table - prints the job table object (if allocated) + * slurm_free_node_info - free the node information buffer (if allocated) + * NOTE: buffer is loaded by slurm_load_node. */ -extern void slurm_print_job_table ( job_table_t * job_ptr ); +extern void slurm_free_node_info (node_info_msg_t * node_buffer_ptr); /* - * slurm_print_build_info - prints the build information buffer (if allocated) + * slurm_print_job_info_msg - prints the job information buffer (if allocated) * NOTE: buffer is loaded by slurm_load_job_info . */ extern void slurm_print_job_info_msg ( job_info_msg_t * job_info_msg_ptr ) ; -/* - * slurm_free_node_info - free the node information buffer (if allocated) - * NOTE: buffer is loaded by slurm_load_node. +/* slurm_print_job_table - prints the job table object (if allocated) */ +extern void slurm_print_job_table ( job_table_t * job_ptr ); + +/* + * slurm_print_node_info_msg - prints the node information buffer (if allocated) + * NOTE: buffer is loaded by slurm_load_node_info . */ -extern void slurm_free_node_info (struct node_buffer *node_buffer_ptr); +extern void slurm_print_node_info_msg ( node_info_msg_t * node_info_msg_ptr ) ; + +/* slurm_print_node_table - prints the node table object (if allocated) */ +extern void slurm_print_node_table (node_table_t * node_ptr ); /* * slurm_free_part_info - free the partition information buffer (if allocated) @@ -201,33 +190,11 @@ extern int slurm_load_build (time_t update_time, struct build_table **build_table_ptr); -/* - * slurm_load_job - load the supplied job information buffer for use by info - * gathering APIs if job records have changed since the time specified. - * input: update_time - time of last update - * job_buffer_ptr - place to park job_buffer pointer - * output: job_buffer_ptr - pointer to allocated job_buffer - * returns -1 if no update since update_time, - * 0 if update with no error, - * EINVAL if the buffer (version or otherwise) is invalid, - * ENOMEM if malloc failure - * NOTE: the allocated memory at job_buffer_ptr freed by slurm_free_job_info. - */ -extern int slurm_load_jobs (time_t update_time, job_info_msg_t **job_info_msg_ptr); +/* slurm_load_job - load the supplied job information buffer if changed */ +extern int slurm_load_jobs (time_t update_time, job_info_msg_t **job_info_msg_pptr); -/* - * slurm_load_node - load the supplied node information buffer for use by info - * gathering APIs if node records have changed since the time specified. - * input: update_time - time of last update - * node_buffer_ptr - place to park node_buffer pointer - * output: node_buffer_ptr - pointer to allocated node_buffer - * returns -1 if no update since update_time, - * 0 if update with no error, - * EINVAL if the buffer (version or otherwise) is invalid, - * ENOMEM if malloc failure - * NOTE: the allocated memory at node_buffer_ptr freed by slurm_free_node_info. - */ -extern int slurm_load_node (time_t update_time, struct node_buffer **node_buffer_ptr); +/* slurm_load_node - load the supplied node information buffer if changed */ +extern int slurm_load_node (time_t update_time, node_info_msg_t **node_info_msg_pptr); /* * slurm_load_part - load the supplied partition information buffer for use by info diff --git a/src/common/nodelist.c b/src/common/nodelist.c index 1f833276d49c4df96fd97d6f45ca1cf64a00e7db..d097c9dae3891bc746209b0966eb1559d7e71795 100644 --- a/src/common/nodelist.c +++ b/src/common/nodelist.c @@ -19,6 +19,7 @@ #include <stdlib.h> #include <string.h> #include <syslog.h> +#include <src/common/nodelist.h> /* * bitfmt2int - convert a string describing bitmap (e.g. "0-30,45,50-60") diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c index c4f383ebff1816c2d15f7d482646edb33738fbed..0b72b02ea585499c3da7bcfaed8e0136a187d0ad 100644 --- a/src/common/slurm_protocol_defs.c +++ b/src/common/slurm_protocol_defs.c @@ -83,3 +83,29 @@ void slurm_free_job_table ( job_table_t * job ) free ( job ) ; } } + +void slurm_free_node_info ( node_info_msg_t * msg ) +{ + int i; + if ( msg ) + { + if ( msg -> node_array ) + { + for (i = 0; i < msg -> record_count; i++) { + slurm_free_node_table ( & ( msg->node_array[i] ) ) ; + } + } + free ( msg ); + } +} + +void slurm_free_node_table ( node_table_t * node ) +{ + if ( node ) + { + free (node->name) ; + free (node->features) ; + free (node->partition) ; + free ( node ) ; + } +} diff --git a/src/common/slurm_protocol_defs.h b/src/common/slurm_protocol_defs.h index ec859db531f2723c79662801bedf26bccadf215f..7f30adad0a6298339da95dc19513734ce26fd74d 100644 --- a/src/common/slurm_protocol_defs.h +++ b/src/common/slurm_protocol_defs.h @@ -211,6 +211,27 @@ typedef struct job_info_msg { job_table_t * job_array; } job_info_msg_t ; + +struct node_table { + char *name; /* node name */ + uint16_t node_state; /* enum node_states, ORed with STATE_NO_RESPOND if down */ + uint32_t cpus; /* configured count of cpus running on the node */ + uint32_t real_memory; /* configured megabytes of real memory on the node */ + uint32_t tmp_disk; /* configured megabytes of total disk in TMP_FS */ + uint32_t weight; /* arbitrary priority of node for scheduling work on */ + char *features; /* arbitrary list of features associated with a node */ + char *partition; /* name of partition node configured to */ +}; + +typedef struct node_table node_table_t ; +typedef struct node_table node_table_msg_t ; + +typedef struct node_info_msg { + uint32_t last_update; + uint32_t record_count; + node_table_t * node_array; +} node_info_msg_t ; + /* the following typedefs follow kevin's communication message naming comvention */ /* free message functions */ @@ -224,4 +245,7 @@ void inline slurm_free_job_info ( job_info_msg_t * msg ) ; void inline slurm_free_job_table ( job_table_t * job ) ; void inline slurm_free_job_desc_msg ( job_desc_msg_t * msg ) ; + +void inline slurm_free_node_info ( node_info_msg_t * msg ) ; +void inline slurm_free_node_table ( node_table_t * node ) ; #endif diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c index a8390aadc1c6e8e63634c9c9d4f1a6e8655b9b47..a265b7541e02507d60dd1d5ef38c573b9dba7b85 100644 --- a/src/slurmctld/controller.c +++ b/src/slurmctld/controller.c @@ -1,15 +1,28 @@ -/* +/*****************************************************************************\ * controller.c - main control machine daemon for slurm - * see slurm.h for documentation on external functions and data structures - * - * NOTE: DEBUG_MODULE of read_config requires that it be loaded with - * bits_bytes, partition_mgr, read_config, and node_mgr - * - * author: moe jette, jette@llnl.gov - */ - /* Changes - * Kevin Tew June 3, 2002 - * reimplemented the entire routine to use the new communication library*/ + ***************************************************************************** + * Copyright (C) 2002 The Regents of the University of California. + * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). + * Written by Kevin Tew <tew1@llnl.gov> et. al. + * UCRL-CODE-2002-040. + * + * This file is part of SLURM, a resource management program. + * For details, see <http://www.llnl.gov/linux/slurm/>. + * + * SLURM is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * SLURM is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along + * with ConMan; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +\*****************************************************************************/ #ifdef have_config_h # include <config.h> @@ -504,14 +517,11 @@ fill_build_table ( struct build_table * build_ptr ) void slurmctld_req_old (int sockfd) { int error_code, in_size, i; - char in_line[BUF_SIZE], node_name[MAX_NAME_LEN]; - int cpus, real_memory, tmp_disk; - char *node_name_ptr, *part_name, *time_stamp; + char in_line[BUF_SIZE]; + char *node_name_ptr, *part_name; uint32_t job_id; - time_t last_update; clock_t start_time; char *dump; - int dump_size, dump_loc; in_size = recv (sockfd, in_line, sizeof (in_line), 0); start_time = clock ();