log - Add slurm_conf_t->log_flags for LogTimeFormat options Give the LogTimeFormat options a member of their own so the format keeps the whole of log_fmt and neither has to be masked out of the other. The member is typed log_flags_t rather than a width, so it says what it holds. An enum has no guaranteed width, so every serialization casts to the uint16_t the wire carries.
diff --git a/slurm/slurm.h b/slurm/slurm.h index eaabbd4..399248e 100644 --- a/slurm/slurm.h +++ b/slurm/slurm.h
@@ -3163,6 +3163,7 @@ char *launch_params; /* step launcher plugin options */ char *license_params; /* license parameters */ char *licenses; /* licenses available on this cluster */ + log_flags_t log_flags; /* Log file timestamp options */ uint16_t log_fmt; /* Log file timestamp format */ char *mail_domain; /* default domain to append to usernames */ char *mail_prog; /* pathname of mail program */
diff --git a/src/common/read_config.c b/src/common/read_config.c index 4920b20..340643f 100644 --- a/src/common/read_config.c +++ b/src/common/read_config.c
@@ -4380,6 +4380,7 @@ (void) s_p_get_string(&conf->licenses, "Licenses", hashtbl); /* Default log format */ + conf->log_flags = LOG_FLAGS_DEFAULT; conf->log_fmt = LOG_FMT_DEFAULT; if (s_p_get_string(&temp_str, "LogTimeFormat", hashtbl)) { /*
diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c index 2efda85..8f72785 100644 --- a/src/common/slurm_protocol_pack.c +++ b/src/common/slurm_protocol_pack.c
@@ -4241,6 +4241,7 @@ packstr(conf->launch_params, buffer); packstr(conf->license_params, buffer); packstr(conf->licenses, buffer); + pack16((uint16_t) conf->log_flags, buffer); pack16(conf->log_fmt, buffer); pack32(conf->max_array_sz, buffer); @@ -5204,6 +5205,7 @@ static int _unpack_slurm_conf(slurm_conf_t **conf_ptr, const uint16_t protocol_version, buf_t *buffer) { + uint16_t uint16_tmp = 0; uint32_t uint32_tmp = 0; list_t *tmp_list = NULL; slurm_conf_t *conf = xmalloc(sizeof(*conf)); @@ -5328,6 +5330,8 @@ safe_unpackstr(&conf->launch_params, buffer); safe_unpackstr(&conf->license_params, buffer); safe_unpackstr(&conf->licenses, buffer); + safe_unpack16(&uint16_tmp, buffer); + conf->log_flags = uint16_tmp; safe_unpack16(&conf->log_fmt, buffer); safe_unpack32(&conf->max_array_sz, buffer);
diff --git a/src/plugins/data_parser/v0.0.46/parsers.c b/src/plugins/data_parser/v0.0.46/parsers.c index 57c179f..c955ac1 100644 --- a/src/plugins/data_parser/v0.0.46/parsers.c +++ b/src/plugins/data_parser/v0.0.46/parsers.c
@@ -12153,6 +12153,7 @@ add_parse(CSV_STRING, launch_params, "LaunchParameters", "Step launcher plugin options"), add_parse(CSV_STRING, licenses, "Licenses", "Licenses available on this cluster"), add_parse(CSV_STRING, license_params, "LicenseParameters", "Options for licenses/HRES"), + add_skip(log_flags), add_parse(LOG_TIME_FORMAT, log_fmt, "LogTimeFormat", "Format of the timestamp in slurmctld and slurmd log files"), add_parse(STRING, mail_domain, "MailDomain", "Default domain to append to usernames"), add_parse(STRING, mail_prog, "MailProg", "Pathname of mail program"), @@ -12425,6 +12426,7 @@ add_skip(launch_params), add_skip(licenses), add_skip(license_params), + add_skip(log_flags), add_skip(log_fmt), add_skip(mail_domain), add_skip(mail_prog),
diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c index 93b647a..af652d1 100644 --- a/src/slurmctld/proc_req.c +++ b/src/slurmctld/proc_req.c
@@ -408,6 +408,7 @@ conf_ptr->launch_params = xstrdup(conf->launch_params); conf_ptr->license_params = xstrdup(conf->license_params); conf_ptr->licenses = xstrdup(conf->licenses); + conf_ptr->log_flags = conf->log_flags; conf_ptr->log_fmt = conf->log_fmt; conf_ptr->mail_domain = xstrdup(conf->mail_domain);
diff --git a/src/slurmd/common/slurmstepd_init.c b/src/slurmd/common/slurmstepd_init.c index 3717b2b..e2c7ee9 100644 --- a/src/slurmd/common/slurmstepd_init.c +++ b/src/slurmd/common/slurmstepd_init.c
@@ -224,6 +224,7 @@ pack16(slurm_conf.kill_wait, buffer); packstr(slurm_conf.launch_params, buffer); /* licenses */ + pack16((uint16_t) slurm_conf.log_flags, buffer); pack16(slurm_conf.log_fmt, buffer); /* mail_domain */ /* mail_prog */ @@ -372,6 +373,7 @@ extern int unpack_slurm_conf_lite_no_alloc(buf_t *buffer) { uint16_t srun_port_min = 0, srun_port_max = 0; + uint16_t uint16_tmp = 0; init_slurm_conf(&slurm_conf); /* last_update */ @@ -463,6 +465,8 @@ safe_unpack16(&slurm_conf.kill_wait, buffer); safe_unpackstr(&slurm_conf.launch_params, buffer); /* licenses */ + safe_unpack16(&uint16_tmp, buffer); + slurm_conf.log_flags = uint16_tmp; safe_unpack16(&slurm_conf.log_fmt, buffer); /* mail_domain */ /* mail_prog */
diff --git a/src/slurmdbd/read_config.c b/src/slurmdbd/read_config.c index 06e3b7e..aade44d 100644 --- a/src/slurmdbd/read_config.c +++ b/src/slurmdbd/read_config.c
@@ -400,6 +400,7 @@ } /* Default log time format */ + slurm_conf.log_flags = LOG_FLAGS_DEFAULT; slurm_conf.log_fmt = LOG_FMT_DEFAULT; if (s_p_get_string(&temp_str, "LogTimeFormat", tbl)) { if (xstrcasestr(temp_str, "iso8601_ms"))