diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in index f3f587ee1a175f72dff98b4756aa94b27552fa5a..5e743f52d3aa4e7d00d827faafc558575240476c 100644 --- a/slurm/slurm.h.in +++ b/slurm/slurm.h.in @@ -994,7 +994,8 @@ typedef struct slurm_ctl_conf { char *resume_program; /* program to make nodes full power */ uint16_t ret2service; /* 1 return DOWN node to service at * registration */ - char *sched_conf; /* contents of scheduler plugin config file */ + char *sched_params; /* SchedulerParameters OR + * contents of scheduler plugin config file */ uint16_t sched_time_slice; /* gang scheduler slice time, secs */ char *schedtype; /* type of scheduler to use */ uint16_t schedport; /* port for scheduler connection */ diff --git a/src/api/config_info.c b/src/api/config_info.c index e83e960a8be2bb04f313d3e8a6782cc81464b227..c14213de1ba173469b609b918b453807bb806c37 100644 --- a/src/api/config_info.c +++ b/src/api/config_info.c @@ -247,10 +247,8 @@ void slurm_print_ctl_conf ( FILE* out, slurm_ctl_conf_ptr->resume_rate); fprintf(out, "ReturnToService = %u\n", slurm_ctl_conf_ptr->ret2service); - if (slurm_ctl_conf_ptr->sched_conf) { - fprintf(out, "SCHEDULER_CONF = %s\n", - slurm_ctl_conf_ptr->sched_conf); - } + fprintf(out, "SchedulerParameters = %s\n", + slurm_ctl_conf_ptr->sched_params); fprintf(out, "SchedulerPort = %u\n", slurm_ctl_conf_ptr->schedport); fprintf(out, "SchedulerRootFilter = %u\n", diff --git a/src/common/read_config.c b/src/common/read_config.c index 462c02db59333662ecd110017d44e006cb6a8d3d..36d72e4731a9284e06f6bbdf7d2a25a33594d654 100644 --- a/src/common/read_config.c +++ b/src/common/read_config.c @@ -191,6 +191,7 @@ s_p_options_t slurm_conf_options[] = { {"ResumeRate", S_P_UINT16}, {"ReturnToService", S_P_UINT16}, {"SchedulerAuth", S_P_STRING, defunct_option}, + {"SchedulerParameters", S_P_STRING}, {"SchedulerPort", S_P_UINT16}, {"SchedulerRootFilter", S_P_UINT16}, {"SchedulerTimeSlice", S_P_UINT16}, @@ -1185,7 +1186,7 @@ init_slurm_conf (slurm_ctl_conf_t *ctl_conf_ptr) xfree (ctl_conf_ptr->resume_program); ctl_conf_ptr->resume_rate = (uint16_t) NO_VAL; ctl_conf_ptr->ret2service = (uint16_t) NO_VAL; - xfree( ctl_conf_ptr->sched_conf ); + xfree( ctl_conf_ptr->sched_params ); ctl_conf_ptr->sched_time_slice = (uint16_t) NO_VAL; xfree( ctl_conf_ptr->schedtype ); ctl_conf_ptr->schedport = (uint16_t) NO_VAL; @@ -1777,6 +1778,8 @@ validate_and_set_defaults(slurm_ctl_conf_t *conf, s_p_hashtbl_t *hashtbl) if (!s_p_get_uint16(&conf->resume_rate, "ResumeRate", hashtbl)) conf->resume_rate = DEFAULT_RESUME_RATE; + s_p_get_string(&conf->sched_params, "SchedulerParameters", hashtbl); + if (s_p_get_uint16(&conf->schedport, "SchedulerPort", hashtbl)) { if (conf->schedport == 0) { error("SchedulerPort=0 is invalid"); @@ -1786,14 +1789,14 @@ validate_and_set_defaults(slurm_ctl_conf_t *conf, s_p_hashtbl_t *hashtbl) conf->schedport = DEFAULT_SCHEDULER_PORT; } - if (!s_p_get_uint16(&conf->sched_time_slice, "SchedulerTimeSlice", - hashtbl)) - conf->sched_time_slice = DEFAULT_SCHED_TIME_SLICE; - if (!s_p_get_uint16(&conf->schedrootfltr, "SchedulerRootFilter", hashtbl)) conf->schedrootfltr = DEFAULT_SCHEDROOTFILTER; + if (!s_p_get_uint16(&conf->sched_time_slice, "SchedulerTimeSlice", + hashtbl)) + conf->sched_time_slice = DEFAULT_SCHED_TIME_SLICE; + if (!s_p_get_string(&conf->schedtype, "SchedulerType", hashtbl)) conf->schedtype = xstrdup(DEFAULT_SCHEDTYPE); diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c index 105b358a5dc3a79fbd1f18e9ba2aefc86ff1856c..90d2b3e5ad6a25a4651760408e3ab2d79523d4cb 100644 --- a/src/common/slurm_protocol_defs.c +++ b/src/common/slurm_protocol_defs.c @@ -930,7 +930,7 @@ void slurm_free_ctl_conf(slurm_ctl_conf_info_msg_t * config_ptr) xfree(config_ptr->propagate_rlimits); xfree(config_ptr->propagate_rlimits_except); xfree(config_ptr->resume_program); - xfree(config_ptr->sched_conf); + xfree(config_ptr->sched_params); xfree(config_ptr->schedtype); xfree(config_ptr->select_type); xfree(config_ptr->slurm_conf); diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c index 84f52d35f845c15ce24231af3c5b626ca6a99f36..76055cb048877e37d707d3227c93967b5479954b 100644 --- a/src/common/slurm_protocol_pack.c +++ b/src/common/slurm_protocol_pack.c @@ -2296,7 +2296,7 @@ _pack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t * build_ptr, Buf buffer) pack16(build_ptr->resume_rate, buffer); pack16(build_ptr->ret2service, buffer); - packstr(build_ptr->sched_conf, buffer); + packstr(build_ptr->sched_params, buffer); pack16(build_ptr->schedport, buffer); pack16(build_ptr->schedrootfltr, buffer); pack16(build_ptr->sched_time_slice, buffer); @@ -2458,7 +2458,7 @@ _unpack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t ** safe_unpack16(&build_ptr->resume_rate, buffer); safe_unpack16(&build_ptr->ret2service, buffer); - safe_unpackstr_xmalloc(&build_ptr->sched_conf, &uint32_tmp, buffer); + safe_unpackstr_xmalloc(&build_ptr->sched_params, &uint32_tmp, buffer); safe_unpack16(&build_ptr->schedport, buffer); safe_unpack16(&build_ptr->schedrootfltr, buffer); safe_unpack16(&build_ptr->sched_time_slice, buffer); @@ -2557,7 +2557,7 @@ unpack_error: xfree(build_ptr->propagate_rlimits); xfree(build_ptr->propagate_rlimits_except); xfree(build_ptr->resume_program); - xfree(build_ptr->sched_conf); + xfree(build_ptr->sched_params); xfree(build_ptr->schedtype); xfree(build_ptr->select_type); xfree(build_ptr->slurm_conf); diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c index 985459cbf5163b951617b2ba7f75bbe1a1e8face..e413d8a57af649fa7b0977828c22d7bd39af6146 100644 --- a/src/slurmctld/proc_req.c +++ b/src/slurmctld/proc_req.c @@ -410,7 +410,10 @@ void _fill_ctld_conf(slurm_ctl_conf_t * conf_ptr) conf_ptr->resume_rate = conf->resume_rate; conf_ptr->ret2service = conf->ret2service; - conf_ptr->sched_conf = slurm_sched_p_get_conf(); + if (conf->sched_params) + conf_ptr->sched_params = xstrdup(conf->sched_params); + else + conf_ptr->sched_params = slurm_sched_p_get_conf(); conf_ptr->schedport = conf->schedport; conf_ptr->schedrootfltr = conf->schedrootfltr; conf_ptr->sched_time_slice = conf->sched_time_slice;