From 859cc230ced02f722d89013a8d47c5816af49674 Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Wed, 5 Nov 2003 22:37:45 +0000 Subject: [PATCH] Scontrol ping command reads configuration file directly rather than getting the configuration form slurmctld (which could be down). --- src/scontrol/scontrol.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/scontrol/scontrol.c b/src/scontrol/scontrol.c index 93e8243dfe4..5520a7e0c57 100644 --- a/src/scontrol/scontrol.c +++ b/src/scontrol/scontrol.c @@ -84,12 +84,13 @@ static void _ping_slurmctld(slurm_ctl_conf_info_msg_t *slurm_ctl_conf_ptr); static void _print_completing (void); static void _print_completing_job(job_info_t *job_ptr, node_info_msg_t *node_info_msg); -static void _print_config (char *config_param, bool ping_only); +static void _print_config (char *config_param); static void _print_daemons (void); static void _print_job (char * job_id_str); static void _print_node (char *node_name, node_info_msg_t *node_info_ptr); static void _print_node_list (char *node_list); static void _print_part (char *partition_name); +static void _print_ping (void); static void _print_step (char *job_step_id_str); static void _print_version( void ); static int _process_command (int argc, char *argv[]); @@ -479,10 +480,9 @@ _print_completing_job(job_info_t *job_ptr, node_info_msg_t *node_info_msg) /* * _print_config - print the specified configuration parameter and value * IN config_param - NULL to print all parameters and values - * IN ping_only - just ping slurmctld daemons */ static void -_print_config (char *config_param, bool ping_only) +_print_config (char *config_param) { int error_code; static slurm_ctl_conf_info_msg_t *old_slurm_ctl_conf_ptr = NULL; @@ -514,7 +514,7 @@ _print_config (char *config_param, bool ping_only) old_slurm_ctl_conf_ptr = slurm_ctl_conf_ptr; - if ((error_code == SLURM_SUCCESS) && !ping_only) { + if (error_code == SLURM_SUCCESS) { slurm_print_ctl_conf (stdout, slurm_ctl_conf_ptr) ; fprintf(stdout, "\n"); } @@ -522,6 +522,22 @@ _print_config (char *config_param, bool ping_only) _ping_slurmctld (slurm_ctl_conf_ptr); } +/* Print state of controllers only */ +static void +_print_ping (void) +{ + static slurm_ctl_conf_info_msg_t *slurm_conf_ptr = NULL; + + if (slurm_conf_ptr == NULL) { + slurm_conf_ptr = xmalloc(sizeof(slurm_ctl_conf_info_msg_t)); + init_slurm_conf(slurm_conf_ptr); + read_slurm_conf_ctl(slurm_conf_ptr); + validate_config(slurm_conf_ptr); + } + + _ping_slurmctld (slurm_conf_ptr); +} + /* Report if slurmctld daemons are responding */ static void _ping_slurmctld(slurm_ctl_conf_info_msg_t *slurm_ctl_conf_ptr) @@ -1065,7 +1081,7 @@ _process_command (int argc, char *argv[]) "too many arguments for keyword:%s\n", argv[0]); } - _print_config (NULL, true); + _print_ping (); } else if (strncasecmp (argv[0], "quiet", 4) == 0) { if (argc > 1) { @@ -1114,9 +1130,9 @@ _process_command (int argc, char *argv[]) } else if (strncasecmp (argv[1], "config", 3) == 0) { if (argc > 2) - _print_config (argv[2], false); + _print_config (argv[2]); else - _print_config (NULL, false); + _print_config (NULL); } else if (strncasecmp (argv[1], "daemons", 3) == 0) { if (argc > 2) { -- GitLab