Commit 6017887
committed
fix: dispatch email channel when force_sync=True and celery is enabled
When `force_sync=True` is passed to `send_notification_internal`, the
notification row was created and SSE events fired, but email (and any
other async channel) was never dispatched because the channel plugins are
only registered when celery tasks are enabled. This meant tool-request
notifications — which the service layer explicitly forces to sync so the
client gets a response ID — would not deliver email to admins.
Changes:
- Add `_dispatch_notification_via_channels` to `NotificationManager` that
marks the row dispatched and then calls `_dispatch_notification_to_users`,
mirroring the pattern in `dispatch_pending_notifications_via_channels`.
- Call it inside `send_notification_internal` when `force_sync=True` and
celery is enabled (i.e. channels are registered).
- Deduplicate the sync/async branching that was duplicated between
`NotificationService.send_notification_internal` and the manager: the
service now delegates directly to the manager.
- Make `contact_email` and `notification_settings_url` on
`NotificationContext` `Optional` (the builder already produced `None`
for both when config is absent; templates already guard with `{% if %}`).
- Add unit test asserting email channel fires on `force_sync=True`.
- Add integration test with mock SMTP verifying end-to-end email delivery
for tool-request submissions when celery tasks are enabled.1 parent b4fe427 commit 6017887
4 files changed
Lines changed: 84 additions & 16 deletions
File tree
- lib/galaxy
- managers
- webapps/galaxy/services
- test
- integration
- unit/app/managers
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
194 | 194 | | |
195 | 195 | | |
196 | 196 | | |
197 | | - | |
198 | | - | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
199 | 200 | | |
200 | 201 | | |
201 | 202 | | |
| |||
208 | 209 | | |
209 | 210 | | |
210 | 211 | | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
211 | 216 | | |
212 | 217 | | |
213 | 218 | | |
214 | 219 | | |
215 | 220 | | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
216 | 228 | | |
217 | 229 | | |
218 | 230 | | |
| |||
723 | 735 | | |
724 | 736 | | |
725 | 737 | | |
726 | | - | |
| 738 | + | |
727 | 739 | | |
728 | | - | |
| 740 | + | |
729 | 741 | | |
730 | 742 | | |
731 | 743 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
13 | | - | |
14 | 12 | | |
15 | 13 | | |
16 | 14 | | |
| |||
177 | 175 | | |
178 | 176 | | |
179 | 177 | | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
| 178 | + | |
190 | 179 | | |
191 | 180 | | |
192 | 181 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
3 | 7 | | |
4 | 8 | | |
5 | 9 | | |
| |||
210 | 214 | | |
211 | 215 | | |
212 | 216 | | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
213 | 259 | | |
214 | 260 | | |
215 | 261 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| 35 | + | |
34 | 36 | | |
35 | 37 | | |
36 | 38 | | |
| |||
39 | 41 | | |
40 | 42 | | |
41 | 43 | | |
| 44 | + | |
42 | 45 | | |
43 | 46 | | |
44 | 47 | | |
| |||
469 | 472 | | |
470 | 473 | | |
471 | 474 | | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
472 | 493 | | |
473 | 494 | | |
474 | 495 | | |
| |||
0 commit comments