Skip to content
Snippets Groups Projects
Commit 657f897d authored by Moe Jette's avatar Moe Jette
Browse files
parent e6c2ef84
No related branches found
No related tags found
No related merge requests found
...@@ -140,7 +140,11 @@ extern int job_modify_wiki(char *cmd_ptr, int *err_code, char **err_msg) ...@@ -140,7 +140,11 @@ extern int job_modify_wiki(char *cmd_ptr, int *err_code, char **err_msg)
error("wiki: MODIFYJOB lacks ARG="); error("wiki: MODIFYJOB lacks ARG=");
return -1; return -1;
} }
jobid = strtoul(arg_ptr+4, &tmp_char, 10); /* Change all parsed "=" to ":" then search for remaining "="
* and report results as unrecognized options */
arg_ptr[3] = ':';
arg_ptr += 4;
jobid = strtoul(arg_ptr, &tmp_char, 10);
if ((tmp_char[0] != '\0') && (!isspace(tmp_char[0]))) { if ((tmp_char[0] != '\0') && (!isspace(tmp_char[0]))) {
*err_code = -300; *err_code = -300;
*err_msg = "Invalid ARG value"; *err_msg = "Invalid ARG value";
...@@ -152,22 +156,35 @@ extern int job_modify_wiki(char *cmd_ptr, int *err_code, char **err_msg) ...@@ -152,22 +156,35 @@ extern int job_modify_wiki(char *cmd_ptr, int *err_code, char **err_msg)
part_ptr = strstr(cmd_ptr, "PARTITION="); part_ptr = strstr(cmd_ptr, "PARTITION=");
time_ptr = strstr(cmd_ptr, "TIMELIMIT="); time_ptr = strstr(cmd_ptr, "TIMELIMIT=");
if (bank_ptr) { if (bank_ptr) {
bank_ptr[4] = ':';
bank_ptr += 5; bank_ptr += 5;
_null_term(bank_ptr); _null_term(bank_ptr);
} }
if (nodes_ptr) { if (nodes_ptr) {
nodes_ptr[5] = ':';
nodes_ptr += 6; nodes_ptr += 6;
new_node_cnt = strtoul(nodes_ptr, NULL, 10); new_node_cnt = strtoul(nodes_ptr, NULL, 10);
} }
if (part_ptr) { if (part_ptr) {
part_ptr[9] = ':';
part_ptr += 10; part_ptr += 10;
_null_term(part_ptr); _null_term(part_ptr);
} }
if (time_ptr) { if (time_ptr) {
time_ptr[9] = ':';
time_ptr += 10; time_ptr += 10;
new_time_limit = strtoul(time_ptr, NULL, 10); new_time_limit = strtoul(time_ptr, NULL, 10);
} }
/* Look for any un-parsed "=" */
tmp_char = strchr(cmd_ptr, '=');
if (tmp_char) {
tmp_char[0] = '\0';
while (tmp_char[-1] && (!isspace(tmp_char[-1])))
tmp_char--;
error("wiki: Invalid MODIFYJOB option %s", tmp_char);
}
lock_slurmctld(job_write_lock); lock_slurmctld(job_write_lock);
slurm_rc = _job_modify(jobid, bank_ptr, new_node_cnt, part_ptr, slurm_rc = _job_modify(jobid, bank_ptr, new_node_cnt, part_ptr,
new_time_limit); new_time_limit);
......
...@@ -330,6 +330,7 @@ static void _modify_job(long my_job_id) ...@@ -330,6 +330,7 @@ static void _modify_job(long my_job_id)
"TS=%u AUTH=root DT=CMD=MODIFYJOB ARG=%ld " "TS=%u AUTH=root DT=CMD=MODIFYJOB ARG=%ld "
/* "PARTITION=pdebug " */ /* "PARTITION=pdebug " */
/* "NODES=2 " */ /* "NODES=2 " */
/* "INVALID=123 " */
"TIMELIMIT=10 BANK=test_bank", "TIMELIMIT=10 BANK=test_bank",
(uint32_t) now, my_job_id); (uint32_t) now, my_job_id);
_xmit(out_msg); _xmit(out_msg);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment