Skip to content

Commit 74cc138

Browse files
authored
Merge pull request #5749 from grondo/flux-job-eventlog-shorthand
flux-job: add shorthand paths for `flux job eventlog` and `wait-event`
2 parents 102eb14 + 8703ce6 commit 74cc138

16 files changed

+116
-75
lines changed

src/cmd/job/eventlog.c

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ struct optparse_option eventlog_opts[] = {
4141
"(default if omitted), 'never', or 'auto' (default)."
4242
},
4343
{ .name = "path", .key = 'p', .has_arg = 1, .arginfo = "PATH",
44-
.usage = "Specify alternate eventlog path suffix "
45-
"(e.g. \"guest.exec.eventlog\")",
44+
.usage = "Specify alternate eventlog name or path suffix "
45+
"(e.g. \"exec\", \"output\", or \"guest.exec.eventlog\")",
4646
},
4747
OPTPARSE_TABLE_END
4848
};
@@ -78,8 +78,8 @@ struct optparse_option wait_event_opts[] = {
7878
"(default if omitted), 'never', or 'auto' (default)."
7979
},
8080
{ .name = "path", .key = 'p', .has_arg = 1, .arginfo = "PATH",
81-
.usage = "Specify alternate eventlog path suffix "
82-
"(e.g. \"guest.exec.eventlog\")",
81+
.usage = "Specify alternate eventlog name or path suffix "
82+
"(e.g. \"exec\", \"output\", or \"guest.exec.eventlog\")",
8383
},
8484
{ .name = "waitcreate", .key = 'W', .has_arg = 0,
8585
.usage = "If path does not exist, wait for its creation",
@@ -96,6 +96,31 @@ struct eventlog_ctx {
9696
struct eventlog_formatter *evf;
9797
};
9898

99+
struct path_shortname {
100+
const char *name;
101+
const char *path;
102+
};
103+
104+
/* Set of shorthand names for common job eventlog paths:
105+
*/
106+
struct path_shortname eventlog_paths[] = {
107+
{ "exec", "guest.exec.eventlog" },
108+
{ "output", "guest.output" },
109+
{ "input", "guest.input" },
110+
{ NULL, NULL },
111+
};
112+
113+
const char *path_lookup (const char *name)
114+
{
115+
const struct path_shortname *path = eventlog_paths;
116+
while (path->name) {
117+
if (streq (name, path->name))
118+
return path->path;
119+
path++;
120+
}
121+
return name;
122+
}
123+
99124
static void formatter_parse_options (optparse_t *p,
100125
struct eventlog_formatter *evf)
101126
{
@@ -169,7 +194,7 @@ int cmd_eventlog (optparse_t *p, int argc, char **argv)
169194

170195
ctx.jobid = argv[optindex++];
171196
ctx.id = parse_jobid (ctx.jobid);
172-
ctx.path = optparse_get_str (p, "path", "eventlog");
197+
ctx.path = path_lookup (optparse_get_str (p, "path", "eventlog"));
173198
ctx.p = p;
174199

175200
if (!(ctx.evf = eventlog_formatter_create ()))
@@ -341,7 +366,7 @@ int cmd_wait_event (optparse_t *p, int argc, char **argv)
341366
ctx.id = parse_jobid (ctx.jobid);
342367
ctx.p = p;
343368
ctx.wait_event = argv[optindex++];
344-
ctx.path = optparse_get_str (p, "path", "eventlog");
369+
ctx.path = path_lookup (optparse_get_str (p, "path", "eventlog"));
345370
timeout = optparse_get_duration (p, "timeout", -1.0);
346371
if (optparse_hasopt (p, "waitcreate"))
347372
flags |= FLUX_JOB_EVENT_WATCH_WAITCREATE;

t/t2201-job-cmd.t

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,7 @@ test_expect_success 'flux-job: load modules for live kill tests' '
694694
# N.B. SIGTERM == 15
695695
test_expect_success 'flux-job: kill basic works' '
696696
id=$(flux submit --wait-event=start sleep 100) &&
697-
flux job wait-event -vt 30 -p guest.exec.eventlog $id shell.start &&
697+
flux job wait-event -vt 30 -p exec $id shell.start &&
698698
flux job kill ${id} &&
699699
flux job wait-event -t 30 ${id} finish > kill1.out &&
700700
grep status=$((15+128<<8)) kill1.out
@@ -703,15 +703,15 @@ test_expect_success 'flux-job: kill basic works' '
703703
# N.B. SIGUSR1 == 10
704704
test_expect_success 'flux-job: kill --signal works' '
705705
id=$(flux submit --wait-event=start sleep 100) &&
706-
flux job wait-event -vt 30 -p guest.exec.eventlog $id shell.start &&
706+
flux job wait-event -vt 30 -p exec $id shell.start &&
707707
flux job kill --signal=SIGUSR1 ${id} &&
708708
flux job wait-event -t 30 ${id} finish > kill2.out &&
709709
grep status=$((10+128<<8)) kill2.out
710710
'
711711

712712
test_expect_success 'flux job: killall -f kills one job' '
713713
id=$(flux submit sleep 600) &&
714-
flux job wait-event -vt 30 -p guest.exec.eventlog $id shell.init &&
714+
flux job wait-event -vt 30 -p exec $id shell.init &&
715715
flux job killall -f &&
716716
run_timeout 60 flux queue drain
717717
'
@@ -720,7 +720,7 @@ test_expect_success 'flux job: cancel can operate on multiple jobs' '
720720
ids=$(flux submit --bcc=1-3 sleep 600) &&
721721
for id in ${ids}; do
722722
flux job wait-event \
723-
-vt 30 -p guest.exec.eventlog $id shell.init
723+
-vt 30 -p exec $id shell.init
724724
done &&
725725
flux job cancel ${ids} cancel multiple jobs &&
726726
for id in ${ids}; do
@@ -742,8 +742,7 @@ test_expect_success 'flux job: raise can operate on multiple jobs' '
742742
test_expect_success 'flux job: kill can operate on multiple jobs' '
743743
ids=$(flux submit --wait-event=start --bcc=1-3 sleep 600) &&
744744
for id in ${ids}; do
745-
flux job wait-event \
746-
-t 30 -p guest.exec.eventlog ${id} shell.init
745+
flux job wait-event -t 30 -p exec ${id} shell.init
747746
done &&
748747
flux job kill ${ids} &&
749748
for id in ${ids}; do

t/t2230-job-info-lookup.t

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,21 @@ test_expect_success 'flux job eventlog -p works (guest.exec.eventlog)' '
199199
flux job eventlog -p "guest.exec.eventlog" $jobid > eventlog_path2.out &&
200200
grep done eventlog_path2.out
201201
'
202-
202+
test_expect_success 'flux job eventlog -p works (exec)' '
203+
jobid=$(submit_job) &&
204+
flux job eventlog -p exec $jobid > eventlog_path3.out &&
205+
grep done eventlog_path3.out
206+
'
207+
test_expect_success 'flux job eventlog -p works (output)' '
208+
jobid=$(submit_job) &&
209+
flux job eventlog -p output $jobid > eventlog_path4.out &&
210+
grep encoding eventlog_path4.out
211+
'
212+
test_expect_success 'flux job eventlog -p works (output)' '
213+
jobid=$(submit_job) &&
214+
flux job eventlog -p input $jobid > eventlog_path5.out &&
215+
grep encoding eventlog_path5.out
216+
'
203217
test_expect_success 'flux job eventlog -p fails on invalid path' '
204218
jobid=$(submit_job) &&
205219
test_must_fail flux job eventlog -p "foobar" $jobid

t/t2231-job-info-eventlog-watch.t

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,10 @@ test_expect_success 'flux job wait-event -p works (guest.exec.eventlog)' '
212212
fj_wait_event -p "guest.exec.eventlog" $jobid done > wait_event_path2.out &&
213213
grep done wait_event_path2.out
214214
'
215-
215+
test_expect_success 'flux job wait-event -p works (exec)' '
216+
fj_wait_event -p exec $jobid done > wait_event_path2.1.out &&
217+
grep done wait_event_path2.1.out
218+
'
216219
test_expect_success 'flux job wait-event -p works (non-guest eventlog)' '
217220
jobid=$(submit_job) &&
218221
kvsdir=$(flux job id --to=kvs $jobid) &&
@@ -236,9 +239,9 @@ test_expect_success 'flux job wait-event -p fails on path "guest."' '
236239
test_must_fail fj_wait_event -p "guest." $jobid submit
237240
'
238241

239-
test_expect_success 'flux job wait-event -p and --waitcreate works (guest.exec.eventlog)' '
242+
test_expect_success 'flux job wait-event -p and --waitcreate works (exec)' '
240243
jobid=$(submit_job) &&
241-
fj_wait_event --waitcreate -p "guest.exec.eventlog" $jobid done > wait_event_path4.out &&
244+
fj_wait_event --waitcreate -p exec $jobid done > wait_event_path4.out &&
242245
grep done wait_event_path4.out
243246
'
244247

@@ -298,7 +301,8 @@ test_expect_success NO_CHAIN_LINT 'flux job wait-event -p invalid and --waitcrea
298301

299302
test_expect_success 'flux job wait-event -p times out on no event (live job)' '
300303
jobid=$(submit_job_live sleeplong.json) &&
301-
test_expect_code 142 run_timeout -s ALRM 0.2 flux job wait-event -p "guest.exec.eventlog" $jobid foobar &&
304+
test_expect_code 142 run_timeout -s ALRM 0.2 \
305+
flux job wait-event -p exec $jobid foobar &&
302306
flux cancel $jobid
303307
'
304308

@@ -351,10 +355,10 @@ test_expect_success 'job-info: generate jobspec to consume all resources' '
351355
flux run --dry-run -n4 -c2 sleep 300 > sleeplong-all-rsrc.json
352356
'
353357

354-
test_expect_success NO_CHAIN_LINT 'flux job wait-event -p guest.exec.eventlog works (wait job)' '
358+
test_expect_success NO_CHAIN_LINT 'flux job wait-event -p exec works (wait job)' '
355359
jobidall=$(submit_job_live sleeplong-all-rsrc.json)
356360
jobid=$(submit_job_wait)
357-
fj_wait_event -v -p "guest.exec.eventlog" ${jobid} done > wait_event_path7.out &
361+
fj_wait_event -v -p exec ${jobid} done > wait_event_path7.out &
358362
waitpid=$! &&
359363
wait_watchers_nonzero "watchers" &&
360364
wait_watchers_nonzero "guest_watchers" &&
@@ -370,7 +374,8 @@ test_expect_success NO_CHAIN_LINT 'flux job wait-event -p guest.exec.eventlog wo
370374
test_expect_success 'flux job wait-event -p times out on no event (wait job)' '
371375
jobidall=$(submit_job_live sleeplong-all-rsrc.json) &&
372376
jobid=$(submit_job_wait) &&
373-
test_expect_code 142 run_timeout -s ALRM 0.2 flux job wait-event -p "guest.exec.eventlog" $jobid foobar &&
377+
test_expect_code 142 run_timeout -s ALRM 0.2 \
378+
flux job wait-event -p exec $jobid foobar &&
374379
flux cancel $jobidall &&
375380
flux cancel $jobid
376381
'
@@ -383,7 +388,7 @@ test_expect_success 'flux job wait-event -p times out on no event (wait job)' '
383388
test_expect_success NO_CHAIN_LINT 'flux job wait-event -p guest.exec.eventlog works (never start job)' '
384389
jobidall=$(submit_job_live sleeplong-all-rsrc.json)
385390
jobid=$(submit_job_wait)
386-
fj_wait_event -v -p "guest.exec.eventlog" ${jobid} done > wait_event_path8.out &
391+
fj_wait_event -v -p exec ${jobid} done > wait_event_path8.out &
387392
waitpid=$! &&
388393
wait_watchers_nonzero "watchers" &&
389394
wait_watchers_nonzero "guest_watchers" &&

t/t2232-job-info-security.t

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -99,20 +99,20 @@ test_expect_success 'flux job eventlog fails on bad first event (user)' '
9999

100100
test_expect_success 'flux job guest.exec.eventlog works via -p (owner)' '
101101
jobid=$(submit_job) &&
102-
flux job eventlog -p guest.exec.eventlog $jobid
102+
flux job eventlog -p exec $jobid
103103
'
104104

105105
test_expect_success 'flux job guest.exec.eventlog works via -p (user)' '
106106
jobid=$(submit_job 9000) &&
107107
set_userid 9000 &&
108-
flux job eventlog -p guest.exec.eventlog $jobid &&
108+
flux job eventlog -p exec $jobid &&
109109
unset_userid
110110
'
111111

112112
test_expect_success 'flux job guest.exec.eventlog fails via -p (wrong user)' '
113113
jobid=$(submit_job 9000) &&
114114
set_userid 9999 &&
115-
! flux job eventlog -p guest.exec.eventlog $jobid &&
115+
! flux job eventlog -p exec $jobid &&
116116
unset_userid
117117
'
118118

@@ -202,41 +202,41 @@ test_expect_success 'flux job wait-event fails (wrong user)' '
202202

203203
test_expect_success 'flux job wait-event guest.exec.eventlog works via -p (owner)' '
204204
jobid=$(submit_job) &&
205-
flux job wait-event -p guest.exec.eventlog $jobid done
205+
flux job wait-event -p exec $jobid done
206206
'
207207

208208
test_expect_success 'flux job wait-event guest.exec.eventlog works via -p (user)' '
209209
jobid=$(submit_job 9000) &&
210210
set_userid 9000 &&
211-
flux job wait-event -p guest.exec.eventlog $jobid done &&
211+
flux job wait-event -p exec $jobid done &&
212212
unset_userid
213213
'
214214

215215
test_expect_success 'flux job wait-event guest.exec.eventlog fails via -p (wrong user)' '
216216
jobid=$(submit_job 9000) &&
217217
set_userid 9999 &&
218-
! flux job wait-event -p guest.exec.eventlog $jobid done &&
218+
! flux job wait-event -p exec $jobid done &&
219219
unset_userid
220220
'
221221

222222
test_expect_success 'flux job wait-event guest.exec.eventlog works via -p (live job, owner)' '
223223
jobid=$(submit_job_live) &&
224-
flux job wait-event -p guest.exec.eventlog $jobid init &&
224+
flux job wait-event -p exec $jobid init &&
225225
flux cancel $jobid
226226
'
227227

228228
test_expect_success 'flux job wait-event guest.exec.eventlog works via -p (live job, user)' '
229229
jobid=$(submit_job_live 9000) &&
230230
set_userid 9000 &&
231-
flux job wait-event -p guest.exec.eventlog $jobid init &&
231+
flux job wait-event -p exec $jobid init &&
232232
unset_userid &&
233233
flux cancel $jobid
234234
'
235235

236236
test_expect_success 'flux job wait-event guest.exec.eventlog fails via -p (live job, wrong user)' '
237237
jobid=$(submit_job_live 9000) &&
238238
set_userid 9999 &&
239-
! flux job wait-event -p guest.exec.eventlog $jobid init &&
239+
! flux job wait-event -p exec $jobid init &&
240240
unset_userid &&
241241
flux cancel $jobid
242242
'

t/t2402-job-exec-dummy.t

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ test_expect_success 'job-exec: status is maximum job shell exit codes' '
4747
test_expect_success 'job-exec: job exception kills job shells' '
4848
id=$(flux submit -n4 -N4 sleep 300) &&
4949
flux job wait-event -vt 5 $id start &&
50-
flux job wait-event -vt 5 -p guest.exec.eventlog $id shell.start &&
50+
flux job wait-event -vt 5 -p exec $id shell.start &&
5151
flux cancel $id &&
5252
flux job wait-event -vt 5 $id clean &&
5353
flux job eventlog $id | grep -E "status=(15|36608)"

t/t2404-job-exec-multiuser.t

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ test_expect_success NO_ASAN 'job-exec: kill multiuser job uses the IMP' '
8989
flux job submit --flags=signed sleep-job.signed) &&
9090
flux job list-ids ${id} > ${id}.json &&
9191
jq -e ".userid == 42" < ${id}.json &&
92-
flux job wait-event -p guest.exec.eventlog -vt 30 ${id} shell.start &&
92+
flux job wait-event -p exec -vt 30 ${id} shell.start &&
9393
flux cancel ${id} &&
9494
test_expect_code 143 run_timeout 30 flux job status -v ${id} &&
9595
flux dmesg | grep "test-imp: Kill .*signal 15"

t/t2500-job-attach.t

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ test_expect_success NO_CHAIN_LINT 'attach: output appears before cancel' '
132132
jobid=$(flux submit ${script})
133133
flux job attach -E ${jobid} 1>attach5.out 2>attach5.err &
134134
waitpid=$! &&
135-
flux job wait-event --timeout=10.0 -p guest.exec.eventlog ${jobid} test-output-ready &&
135+
flux job wait-event --timeout=10.0 -p exec ${jobid} test-output-ready &&
136136
flux cancel ${jobid} &&
137137
! wait ${waitpid} &&
138138
grep before attach5.out &&

t/t2501-job-status.t

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ test_expect_success 'status: exit code ignores nonfatal exceptions' '
8282
flux job status -vvv $jobid
8383
'
8484
test_expect_success 'status: returns 143 (SIGTERM) for canceled running job' '
85-
flux job wait-event -p guest.exec.eventlog ${killed} shell.start &&
85+
flux job wait-event -p exec ${killed} shell.start &&
8686
flux cancel ${killed} &&
8787
test_expect_code 143 flux job status -v ${killed}
8888
'

t/t2602-job-shell.t

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -201,32 +201,32 @@ test_expect_success 'create helper job submission script' '
201201
'
202202
test_expect_success 'job-shell: test shell kill event handling' '
203203
id=$(flux submit -n4 -N4 ./sleepinf.sh) &&
204-
flux job wait-event -p guest.exec.eventlog $id shell.init &&
205-
flux job wait-event -p guest.output $id data &&
204+
flux job wait-event -p exec $id shell.init &&
205+
flux job wait-event -p output $id data &&
206206
flux job kill $id &&
207207
flux job wait-event $id finish >kill1.finish.out &&
208208
grep status=$((15+128<<8)) kill1.finish.out
209209
'
210210
test_expect_success 'job-shell: test shell kill event handling: SIGKILL' '
211211
id=$(flux submit -n4 -N4 ./sleepinf.sh) &&
212-
flux job wait-event -p guest.exec.eventlog $id shell.init &&
213-
flux job wait-event -p guest.output $id data &&
212+
flux job wait-event -p exec $id shell.init &&
213+
flux job wait-event -p output $id data &&
214214
flux job kill -s SIGKILL $id &&
215215
flux job wait-event $id finish >kill2.finish.out &&
216216
grep status=$((9+128<<8)) kill2.finish.out
217217
'
218218
test_expect_success 'job-shell: test shell kill event handling: numeric signal' '
219219
id=$(flux submit -n4 -N4 ./sleepinf.sh) &&
220-
flux job wait-event -p guest.exec.eventlog $id shell.init &&
221-
flux job wait-event -p guest.output $id data &&
220+
flux job wait-event -p exec $id shell.init &&
221+
flux job wait-event -p output $id data &&
222222
flux job kill -s 2 $id &&
223223
flux job wait-event $id finish >kill3.finish.out &&
224224
grep status=$((2+128<<8)) kill3.finish.out
225225
'
226226
test_expect_success 'job-shell: mangled shell kill event logged' '
227227
id=$(flux submit -n4 -N4 ./sleepinf.sh | flux job id) &&
228-
flux job wait-event -p guest.exec.eventlog $id shell.init &&
229-
flux job wait-event -p guest.output $id data &&
228+
flux job wait-event -p exec $id shell.init &&
229+
flux job wait-event -p output $id data &&
230230
flux event pub shell-${id}.kill "{}" &&
231231
flux job kill ${id} &&
232232
flux job wait-event -vt 1 $id finish >kill4.finish.out &&
@@ -236,8 +236,8 @@ test_expect_success 'job-shell: mangled shell kill event logged' '
236236
'
237237
test_expect_success 'job-shell: shell kill event: kill(2) failure logged' '
238238
id=$(flux submit -n4 -N4 ./sleepinf.sh | flux job id) &&
239-
flux job wait-event -p guest.exec.eventlog $id shell.init &&
240-
flux job wait-event -p guest.output $id data &&
239+
flux job wait-event -p exec $id shell.init &&
240+
flux job wait-event -p output $id data &&
241241
flux event pub shell-${id}.kill "{\"signum\":199}" &&
242242
flux job kill ${id} &&
243243
flux job wait-event $id finish >kill5.finish.out &&

0 commit comments

Comments
 (0)