@@ -126,6 +126,13 @@ class EventKey(NamedTuple):
126
126
"""The task event."""
127
127
event : str
128
128
129
+ """The task event message.
130
+
131
+ Warning: This information is not currently preserved in the DB so will be
132
+ lost on restart.
133
+ """
134
+ message : str
135
+
129
136
"""The job tokens."""
130
137
tokens : 'Tokens'
131
138
@@ -897,7 +904,7 @@ def setup_event_handlers(self, itask, event, message):
897
904
msg = message
898
905
self ._db_events_insert (itask , event , msg )
899
906
self ._setup_job_logs_retrieval (itask , event )
900
- self ._setup_event_mail (itask , event )
907
+ self ._setup_event_mail (itask , event , message )
901
908
self ._setup_custom_event_handlers (itask , event , message )
902
909
903
910
def _custom_handler_callback (
@@ -951,14 +958,18 @@ def _process_event_email(
951
958
subject = "[%d task events] %s" % (
952
959
len (id_keys ), schd .workflow )
953
960
cmd = ["mail" , "-s" , subject ]
961
+
954
962
# From: and To:
955
963
cmd .append ("-r" )
956
964
cmd .append (ctx .mail_from )
957
965
cmd .append (ctx .mail_to )
966
+
958
967
# STDIN for mail, tasks
959
968
stdin_str = ""
960
969
for id_key in sorted (id_keys ):
961
- stdin_str += f'{ id_key .event } : { id_key .tokens .relative_id } \n '
970
+ stdin_str += f'job: { id_key .tokens .relative_id } \n '
971
+ stdin_str += f'event: { id_key .event } \n '
972
+ stdin_str += f'message: { id_key .message } \n \n '
962
973
963
974
# STDIN for mail, event info + workflow detail
964
975
stdin_str += "\n "
@@ -1491,6 +1502,7 @@ def _setup_job_logs_retrieval(self, itask, event) -> None:
1491
1502
id_key = EventKey (
1492
1503
self .HANDLER_JOB_LOGS_RETRIEVE ,
1493
1504
event ,
1505
+ event ,
1494
1506
itask .tokens .duplicate (job = itask .submit_num ),
1495
1507
)
1496
1508
if id_key in self ._event_timers :
@@ -1514,7 +1526,12 @@ def _setup_job_logs_retrieval(self, itask, event) -> None:
1514
1526
)
1515
1527
)
1516
1528
1517
- def _setup_event_mail (self , itask : 'TaskProxy' , event : str ) -> None :
1529
+ def _setup_event_mail (
1530
+ self ,
1531
+ itask : 'TaskProxy' ,
1532
+ event : str ,
1533
+ message : str ,
1534
+ ) -> None :
1518
1535
"""Set up task event notification, by email."""
1519
1536
if event not in self ._get_events_conf (itask , "mail events" , []):
1520
1537
# event does not need to be processed
@@ -1523,6 +1540,7 @@ def _setup_event_mail(self, itask: 'TaskProxy', event: str) -> None:
1523
1540
id_key = EventKey (
1524
1541
self .HANDLER_MAIL ,
1525
1542
get_event_id (event , itask ),
1543
+ message ,
1526
1544
itask .tokens .duplicate (job = itask .submit_num ),
1527
1545
)
1528
1546
if id_key in self ._event_timers :
@@ -1571,6 +1589,7 @@ def _setup_custom_event_handlers(
1571
1589
id_key = EventKey (
1572
1590
f'{ self .HANDLER_CUSTOM } -{ i :02d} ' ,
1573
1591
get_event_id (event , itask ),
1592
+ message ,
1574
1593
itask .tokens .duplicate (job = itask .submit_num ),
1575
1594
)
1576
1595
0 commit comments