Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GH-1641] WFL Release v0.18.0 #599

Merged
merged 203 commits into from
Apr 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
203 commits
Select commit Hold shift + click to select a range
997bdad
Snapshot creation uses datetime rather than date (#355)
rhiananthony Apr 7, 2021
4f4be76
[GH-1278] Fix SG update-workload! implementation from updating Clio m…
ehigham Apr 7, 2021
7c93f7d
GH-1188: Bump GDCWholeGenomeSomaticSingleSample Version When Lantern …
tbl3rd Apr 7, 2021
9df9d2b
GitHub `develop` infrastructure + release changes (#356)
ehigham Apr 8, 2021
931da94
bump develop to 0.7.0 (#360)
ehigham Apr 8, 2021
7b9d9eb
GH-1282: Document WFL's support for Somatic Genomes. (#361)
tbl3rd Apr 9, 2021
bf1b649
Update CHANGELOG.md in develop (#362)
ehigham Apr 12, 2021
45f7a11
[GH-1284] Fix docker image generation (#363)
ehigham Apr 12, 2021
ced6f8f
[GH-1277] Prevent update loop from terminating (#364)
ehigham Apr 12, 2021
9cacd9f
util/do-or-nil-silently should move to build.clj (#367)
okotsopoulos Apr 13, 2021
5e81226
GH-1226 Support entity set creation when creating submissions. (#353)
okotsopoulos Apr 14, 2021
51fb6eb
Merge v0.6.1 into develop (#366)
ehigham Apr 14, 2021
a94500c
Create an interface all COVID work can build on top of. (#369)
rexwangcc Apr 16, 2021
17b5c87
GH-1272: Lists are not imported correctly into a Terra Workspace Enti…
tbl3rd Apr 20, 2021
8b5cff6
Add wfl.service/rawls.clj for interacting directly with Rawls API (#370)
okotsopoulos Apr 21, 2021
fc80a7a
Rename rawls/create-snapshot -> create-snapshot-reference (#373)
okotsopoulos Apr 22, 2021
949a930
[GH-1215] Add snapshot_reference_id to Sarscov2IlluminaFull table sch…
okotsopoulos Apr 23, 2021
7c54a20
[GH-1293] fix test-create-submissions-for-entity-set (#378)
ehigham Apr 27, 2021
4f27a60
Update documentation and infrastructure for release candidates (#377)
ehigham Apr 28, 2021
273b88d
Bump ssri from 6.0.1 to 6.0.2 in /ui (#382)
dependabot[bot] Apr 30, 2021
fe538f4
add interactive script ahead of covid-19 demo (#380)
ehigham Apr 30, 2021
b12c4f5
[GH-1213] Update DB schema for COVID workload creation (#381)
rexwangcc Apr 30, 2021
0494805
Add multimethods for source, executor and sink operations (#383)
ehigham May 4, 2021
b3e6cb2
[GH-1215] Import snapshots within COVID workload (#376)
okotsopoulos May 5, 2021
8302ceb
[GH-1295] Use Rawls to Import Workflow Outputs (#384)
ehigham May 6, 2021
109261c
GH-1285: [COVID] Launch submissions through Rawls, and keep track of …
tbl3rd May 7, 2021
bfbdae8
Bump url-parse from 1.4.7 to 1.5.1 in /ui (#388)
dependabot[bot] May 10, 2021
fcfd5b1
Update db schema again based on lasted discussions. (#387)
rexwangcc May 10, 2021
d688723
Bump y18n from 4.0.0 to 4.0.1 in /ui (#352)
dependabot[bot] May 10, 2021
d2e20ac
[GH-1301] Notify Workload Watchers when "User Visible" Exceptions Occ…
ehigham May 11, 2021
f42b8e5
Bump hosted-git-info from 2.8.8 to 2.8.9 in /ui (#392)
dependabot[bot] May 11, 2021
6e14881
Bump lodash from 4.17.19 to 4.17.21 in /ui (#390)
dependabot[bot] May 11, 2021
e3585f1
[GH-1311]: Create/Load COVID workloads (#389)
ehigham May 11, 2021
71b6a68
[GH-1313] TerraWorkspaceSink/update-sink! (#394)
ehigham May 14, 2021
3e8c573
[GH-1215] COVID TerraExecutor/update-executor!
okotsopoulos May 14, 2021
b37aa40
[GH-1306] Add `workflows` multimethod for workloads (#396)
ehigham May 17, 2021
d03d70c
[GH-1222] Check for new work in TDR (#371)
rexwangcc May 17, 2021
9cb6dcb
[GH-1314] expose workflows via `GET /api/v1/workload/{uuid}/workflows…
ehigham May 18, 2021
aef74e0
[GH-1317] start the workload source (#399)
ehigham May 18, 2021
6163319
TerraExecutor/update-executor should update active, failed workflow s…
okotsopoulos May 18, 2021
be4e9a3
GH-1307 GH-1312 Update method configuration using snapshot reference …
okotsopoulos May 19, 2021
72cbf70
[GH-1322] TDR Snapshots Source (#403)
ehigham May 19, 2021
625021d
[GH-1318] Stop Workload Source (#400)
ehigham May 19, 2021
b7b0266
GH-1216: [TDR New Work Detection] Extend System Tests for COVID proce…
tbl3rd May 19, 2021
c90b24e
[GH-1320] add `snapshotReaders` to tdr source (#405)
ehigham May 19, 2021
c07aad3
Remove liquibase-core from build dependencies. (#407)
tbl3rd May 19, 2021
8a3bff4
[GH-1213] Create covid workload verifications (#379)
rhiananthony May 19, 2021
51cf21e
GH-1316 Create submission within TerraExecutor update (#406)
okotsopoulos May 19, 2021
31ae3ac
[GH-1323] to-edn (#409)
ehigham May 21, 2021
460ec27
GH-1298: TerraWorkspaceSink - verify target entity columns exist (#410)
tbl3rd May 24, 2021
2ac7385
[GH-1327] Fix Start After Stop (#411)
ehigham May 25, 2021
ef3e65e
[GH-1327] update system tests after /stop changes (#412)
ehigham May 25, 2021
824431a
[GH-1333] Fix NullPointerException in TDR Source (#418)
ehigham May 26, 2021
1486ca7
[GH-1336] Fix continual snapshot creation (#419)
ehigham May 27, 2021
68d67a6
Bump browserslist from 4.13.0 to 4.16.6 in /ui
dependabot[bot] May 26, 2021
cadaf3e
[GH-1337] fix create snapshot job always failing
ehigham May 26, 2021
904428b
[GH-1338] Fix wfl not discovering new dataset rows
ehigham May 26, 2021
76af4ab
[GH-1339] Prevent Snapshot Job IDs from being clobbered with nils
ehigham May 27, 2021
6ca22bd
bump version in develop to 0.8.0 (#413)
ehigham May 27, 2021
0521051
[GH-1331] document `/stop` and `/workflows` (#417)
ehigham May 27, 2021
e752207
Add test-covid-workload to parallel test group (#424)
tbl3rd May 27, 2021
300439b
[GH-1341] Fix accepting malformed labels in workload request
ehigham May 27, 2021
4ba526f
[GH-1344] Enforce valid email addresses in workload `watchers`
ehigham May 27, 2021
1077523
[GH-1348] Remove :pipeline from COVID workload request (#426)
ehigham Jun 1, 2021
d64c989
[GH-1350] fix Terra Workspace sink validation (#427)
ehigham Jun 2, 2021
0532cf2
Bump dns-packet from 1.3.1 to 1.3.4 in /ui
dependabot[bot] May 28, 2021
fe8ab64
[GH-1324] Get or import snapshot (#422)
okotsopoulos Jun 2, 2021
8f7c98a
[GH-1354] Enforce `snapshotReaders` are email addresses (#428)
ehigham Jun 2, 2021
df82bbd
[GH-1356] Fix Coercion Failure for TDR Snapshots Source (#429)
ehigham Jun 3, 2021
bf79494
[GH-1357] Fix failure to sink workflow outputs (#431)
ehigham Jun 3, 2021
4ab4ddf
[GH-1359] Overwrite Workspace Entity On Sink (#432)
ehigham Jun 7, 2021
af3fdb3
Fix broken requirement install command in docs readme (#434)
okotsopoulos Jun 7, 2021
06dacca
Move docstring and document when true. (#436)
tbl3rd Jun 7, 2021
531c20f
[GH-1363] Fix Sporadic Firecloud Test Failures (#437)
ehigham Jun 7, 2021
3c5861f
Bump ws from 6.2.1 to 6.2.2 in /ui (#433)
dependabot[bot] Jun 8, 2021
b23ec56
GH-1375: Fix AoU nightly test: GET /api/v1/workload fails with spec e…
tbl3rd Jun 10, 2021
b8d35ff
update changelog for v0.7.0 (#441)
ehigham Jun 10, 2021
49e9044
GH-1332 wfl.tools.workloads/when-done should not exit prematurely (#438)
okotsopoulos Jun 11, 2021
399defe
update changelog for v0.7.1 (#445)
ehigham Jun 11, 2021
f956caf
Removing the arrays module and the corresponding integration test (#446)
rhiananthony Jun 11, 2021
49ddc00
[GH-1376] Moved generic pipeline processing interfaces from covid -> …
okotsopoulos Jun 14, 2021
33f4698
[GH-1388] Remove `pipeline-versions` from `GET /version`
ehigham Jun 14, 2021
73a852f
[GH-1389] Delete `^:excluded` arrays system tests
ehigham Jun 14, 2021
22938e6
Resolving NPM security vulnerabilities (#448)
rhiananthony Jun 15, 2021
f6fc34e
GH-1371: Lint more. (#439)
tbl3rd Jun 22, 2021
ac092db
[GH-1294] Migrate to use datasets in prod TDR (#453)
rexwangcc Jun 22, 2021
2bae684
GH-1346 Document workload Executor and Terra implementation (#451)
okotsopoulos Jun 23, 2021
867023f
[GH-1345] Document the workload `Source` and Implementations (#450)
ehigham Jun 23, 2021
0edf5fe
Clean up my testing code... (#456)
rexwangcc Jun 23, 2021
5d2cba4
Phoned a friend @tbl3rd to fix return type hint in executor docs (#457)
okotsopoulos Jun 23, 2021
8b75f4b
[GH-1347] Document the workload `Sink` and `Terra Workspace` sink imp…
ehigham Jun 23, 2021
a3b3fdf
Move `source` and `sink` Interfaces and Implementations into new name…
ehigham Jun 24, 2021
1d752f3
[GH-1393]: Add `/retry` Endpoint (#452)
ehigham Jun 24, 2021
0b2eabf
fix build failures in develop (#458)
ehigham Jun 24, 2021
8ab6eff
Documenting a Workload (#430)
rhiananthony Jun 24, 2021
59b1d2b
Changing order of executor block in docs (#459)
rhiananthony Jun 24, 2021
0172ef8
GH-1326 Move Sink code to new Namespace (#463)
okotsopoulos Jun 25, 2021
70dd760
Split specs into their specific modules (#460)
rfricke-asymmetrik Jun 25, 2021
a4ad9ac
[GH-1398] Fix `test-start-aou-workload` from polling forever (#462)
ehigham Jun 25, 2021
14caf75
[GH-1401] Add `retry` Attribute to TerraExecutorDetails Type and Inst…
ehigham Jun 25, 2021
893a514
Fix some namespace issues (#464)
rfricke-asymmetrik Jun 25, 2021
3848aad
[GH-1409] Add Status Query String to workflows GET request (#466)
rfricke-asymmetrik Jul 1, 2021
b2f51a5
Remove trim-slashes and fix endpoints in wfl.tools namespace (#469)
rfricke-asymmetrik Jul 7, 2021
2a7b7aa
[GH-1411] Describe Workflow Outputs (#471)
ehigham Jul 9, 2021
9719eda
Logging added to source namespace (#475)
okotsopoulos Jul 13, 2021
dfd752d
GH-1414 Executor falls back to fetching existing snapshot reference (…
okotsopoulos Jul 14, 2021
024621c
[GH-1139] Added new log namespace (#470)
rfricke-asymmetrik Jul 19, 2021
0f3a736
Remove error txt file (#479)
rfricke-asymmetrik Jul 19, 2021
4ed31e2
GH-1417: Remove the "skipped" nil UUID Cromwell status hack. (#393)
tbl3rd Jul 21, 2021
f962b36
[GH-1419] Terra Executor queue length should consider workflows with …
okotsopoulos Jul 26, 2021
2e880b5
GH-1397: Sweep and snapshot dataset row IDs that were missed when pol…
tbl3rd Jul 26, 2021
c30e774
[GH-1139] Logging level and configuration (#480)
rfricke-asymmetrik Jul 28, 2021
1be20dc
GH-1395: Document the new WFL retry capability for users. (#483)
tbl3rd Aug 5, 2021
4f39f01
[GH-1394] TerraExecutor retry implementation and Sarscov2IlluminaFull…
okotsopoulos Aug 9, 2021
23dee47
[GH-1395] GitHub Pages updates: COVID, staged workflows, retry functi…
okotsopoulos Aug 11, 2021
be6bc2f
Bump path-parse from 1.0.6 to 1.0.7 in /ui (#491)
dependabot[bot] Aug 12, 2021
83677c2
Mkdocs updates that improve the doc nav and security holes. (#492)
rexwangcc Aug 13, 2021
a15e803
[GH-1402] Write Workflow Outputs to the Terra Data Repository (#474)
ehigham Aug 13, 2021
dee3a80
GH-1328 Migrate to new Rawls Snapshot V2 endpoints (#493)
okotsopoulos Aug 13, 2021
69ee27b
ENG-1394 Update post-retry error maps per QA feedback (#494)
okotsopoulos Aug 17, 2021
a120487
[GH-1303] Google Cloud Logging Alerts (#486)
rfricke-asymmetrik Aug 18, 2021
b425eaa
[GH-1418] sourceLocation null fix (#487)
rfricke-asymmetrik Aug 18, 2021
75ebfa0
Github actions should build docs on develop. (#495)
rexwangcc Aug 20, 2021
310d57b
[GH-1301] Add Slack watcher support for user exceptions. (#467)
rexwangcc Aug 24, 2021
210dbae
Add a nightly system test against dev WFL (#498)
rexwangcc Aug 30, 2021
957ffed
Add a badge for WFL nightly test. (#500)
rexwangcc Sep 1, 2021
5cdd898
Remove the UI component of WFL. (#499)
rexwangcc Sep 2, 2021
dfc7212
[GH-1353] Fix spec error when skipValidation sent (#497)
rfricke-asymmetrik Sep 2, 2021
d74563d
[GH-1441] Stop swallowing UserExceptions (#501)
rfricke-asymmetrik Sep 8, 2021
a82d176
GH-1439 Succeeded workflow status should be permissible to retry (#503)
okotsopoulos Sep 9, 2021
d157260
GH-1454 Update covid and executor integration tests to reflect update…
okotsopoulos Sep 14, 2021
1174eda
GH-1450 Add retry attribute to TerraDataRepoSource type and instances…
okotsopoulos Sep 14, 2021
726f144
GH-1446: fix system tests again (#502)
tbl3rd Sep 21, 2021
23897c3
Keep non-null inputs and options from "Failed" workflows. (#508)
tbl3rd Sep 21, 2021
3cfff8d
GH-1462: Make :watchers key always optional. (#515)
tbl3rd Sep 23, 2021
d981184
Bump AoU Arrays.wdl version to 2.4.1 to drop default (#514)
tbl3rd Sep 24, 2021
398f810
GH-1444 TerraDataRepoSource should not snapshot more frequently than …
okotsopoulos Sep 29, 2021
b5f1b11
Updating the version for the develop branch to 0.9.0 (#517)
rhiananthony Oct 1, 2021
8d8b8e6
GH-1373 rename removeSucceeded in retry runbook (#519)
okotsopoulos Oct 4, 2021
25b0960
GH-1476 Log failed snapshot creation job's metadata and result (#518)
okotsopoulos Oct 5, 2021
5e92e82
GH-1517 log error instead of throw on TerraExecutor method config ver…
okotsopoulos Oct 28, 2021
a999bec
[GH-1517] Add automated test for updating method configurations with …
okotsopoulos Oct 29, 2021
aceb588
Merge main into develop (#533)
rfricke-asymmetrik Nov 5, 2021
ba1ab84
GH-1448: Exceptions fail to be logged as JSON. (#531)
tbl3rd Nov 5, 2021
9bccdec
GH-1473 Update GitHub Pages with new Swagger access (#516)
okotsopoulos Nov 5, 2021
6258579
[GH-1463] WFL API retry by status also requires submission id (#525)
okotsopoulos Nov 9, 2021
99242d5
GH-1515 WFL-created TDR snapshots include table in name (#536)
okotsopoulos Nov 10, 2021
bd22780
GH-1522 TerraWorkspaceSink: identifier can be a workflow input (#534)
okotsopoulos Nov 10, 2021
8870c27
[GH-1474-1494] TDR Sink Changes (#520)
rfricke-asymmetrik Nov 12, 2021
b334c02
GH-1529 Bump WFL develop version to 0.10.0 (#537)
okotsopoulos Nov 12, 2021
7932117
Update test inputs buckets (#538)
rfricke-asymmetrik Nov 18, 2021
a0414c9
GH-1516 Documentation updates - TerraExecutor retry (#539)
okotsopoulos Nov 30, 2021
ab00752
GH-1525 Document TerraWorkspaceSink identifier changes (#535)
okotsopoulos Nov 30, 2021
cf8c3e7
GH-1521 Pull v0.10.0 changelog into develop (#544)
okotsopoulos Dec 1, 2021
6340744
[GH-1465] Specify TDR Polling Interval (#542)
rfricke-asymmetrik Dec 6, 2021
a11e797
Add some documentation for changing the logging level (#546)
rfricke-asymmetrik Dec 6, 2021
f53cadd
GH-1546 Increment minor version to 0.11.0 (#545)
okotsopoulos Dec 6, 2021
6f2ee0b
:release "Arrays_v2.6.0" (#547)
tbl3rd Dec 8, 2021
1e56911
[GH-1555] add null check to rename-gather-bulk (#549)
rfricke-asymmetrik Dec 14, 2021
6b47abb
GH-1560 TerraExecutor tries to set root entity table on submission (#…
okotsopoulos Jan 10, 2022
9db876c
[GH-1540] Apply User Comments to Terra Submissions (#551)
rfricke-asymmetrik Jan 13, 2022
922f26e
Run AoU pipeline with the Arrays_v2.6.2 WDL. (#554)
tbl3rd Jan 18, 2022
e8ade78
GH-1527 Remove Firecloud calls when fetching TerraExecutor workflows …
okotsopoulos Jan 19, 2022
a5172f2
Bring CHANGELOG.md up to date with /main/.
tbl3rd Jan 19, 2022
cfb4cc2
Bring version up to date with /main/.
tbl3rd Jan 19, 2022
7d6dd8a
Run AoU pipeline with the Arrays_v2.6.3 WDL. (#557)
tbl3rd Jan 19, 2022
61db14e
GH-1542 TerraExecutor notifies Slack watchers on workflow completion …
okotsopoulos Jan 24, 2022
aeb21d5
GH-1578 TerraDataRepoSource filters old rows before reducing (#560)
okotsopoulos Jan 25, 2022
9817c5e
GH-1433 Test TDR snapshot creation within temporary dataset (#561)
okotsopoulos Jan 26, 2022
143a883
[GH-1563] [GH-1573] TerraDataRepoSource polls row metadata table (#559)
okotsopoulos Feb 2, 2022
165abf3
GH-1539 Stop started workloads in system tests (#562)
okotsopoulos Feb 2, 2022
e404e51
[GH-1591] Pull WFL v0.13.0 version, changelog into develop(#565)
okotsopoulos Feb 9, 2022
09d1030
[GH-1598] Update TerraExecutor documentation (#566)
okotsopoulos Feb 10, 2022
1be0f41
[DDO-1920] Configure GKE LB Backend Service timeout in Helm (#564)
jack-r-warren Feb 10, 2022
3375180
[GH-1607] wfl.log/stdout-logger should handle JSON-incompatible edn (…
okotsopoulos Feb 11, 2022
873fa30
[GH-1604] Disable / hide Slacking behind WFL_SLACK_ENABLED (#571)
okotsopoulos Feb 11, 2022
42835e6
[GH-1608] Pull WFL v0.14.x version, changelog into develop (#573)
okotsopoulos Feb 14, 2022
5166d3c
[GH-1566] Add workload info to logs (#552)
rfricke-asymmetrik Feb 14, 2022
c387135
Make do-or-nil log at :debug level. (#574)
tbl3rd Feb 15, 2022
945307e
[GH-1613] Deploy 0.15.0 (#575)
tbl3rd Feb 16, 2022
a5a06ac
[GH-1620] Set the API's image pullPolicy to Always. (#576)
tbl3rd Feb 17, 2022
8ae7476
Update CHANGELOG and version from main.
tbl3rd Feb 17, 2022
ee4fcc7
[GH-1622] No logs for you! (#581)
tbl3rd Feb 22, 2022
232cf80
[GH-1624] Rename covid -> staged in code, docs (#580)
okotsopoulos Feb 23, 2022
d2b0b07
[GH-1617] Consistent workload representation for logs (#579)
okotsopoulos Feb 24, 2022
d87fcec
Update CHANGELOG and version from main.
tbl3rd Feb 25, 2022
47fa99e
[GH-1628] Look at the first 7 workloads returned in test-workflows-by…
tbl3rd Feb 28, 2022
acb5cde
[GH-1553] [GH-1604] Add error handling to Slack service (#584)
okotsopoulos Mar 2, 2022
d6cedb8
[GH-1629] TerraExecutor gets method configuration version from Firecl…
okotsopoulos Mar 3, 2022
8345dd1
[GH-1631] Release WFL v0.16.0 (#586) (#588)
okotsopoulos Mar 7, 2022
08edeee
[GH-1633] Remove WFL_SLACK_ENABLED feature switch (#587)
okotsopoulos Mar 8, 2022
75805b1
[GH-1618] Add workload info to executor logs (#589)
okotsopoulos Mar 14, 2022
58bfbba
[GH-1593] Notify Slack watchers on failed TDR snapshot jobs (#590)
okotsopoulos Mar 14, 2022
705fa7e
[GH-1592] [GH-1635] Notify Slack watchers on Terra submission creatio…
okotsopoulos Mar 21, 2022
2909067
[GH-1634] Release WFL v0.17.0 (#592)
okotsopoulos Mar 21, 2022
c54e010
[GH-1638] Disable link unfurling when Slacking watchers (#593)
okotsopoulos Mar 22, 2022
2f36927
[GH-1619] Add workload info to sink logs (#594)
okotsopoulos Mar 24, 2022
8cbaf75
[GH-1433] No TDR temporary snapshots in tests (#595)
okotsopoulos Mar 24, 2022
4f1cc21
[GH-1639] Pin jinja2 version for mkdocks compatibility (#596)
okotsopoulos Mar 24, 2022
11aac38
[GH-1640] Broken Terra Submission links in completed workflow Slack m…
okotsopoulos Mar 28, 2022
d3d3f16
[GH-1623] workloads/update-workload! should define own transactions (…
okotsopoulos Mar 30, 2022
a8eef84
Merge branch 'develop' into release/0.18.0-rc
okotsopoulos Mar 31, 2022
66c2a9a
[GH-1641] WFL v0.18.0 version, changelog
okotsopoulos Mar 31, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 9 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Release 0.18.0
- [GH-1623] workloads/update-workload! should define own transactions ([#597](https://github.com/broadinstitute/wfl/pull/597))
- [GH-1640] Broken Terra Submission links in completed workflow Slack messages ([#598](https://github.com/broadinstitute/wfl/pull/598))
- [GH-1639] Pin jinja2 version for mkdocks compatibility ([#596](https://github.com/broadinstitute/wfl/pull/596))
- [GH-1433] No TDR temporary snapshots in tests ([#595](https://github.com/broadinstitute/wfl/pull/595))
- [GH-1619] Add workload info to sink logs ([#594](https://github.com/broadinstitute/wfl/pull/594))
- [GH-1638] Disable link unfurling when Slacking watchers ([#593](https://github.com/broadinstitute/wfl/pull/593))

# Release 0.17.0
- [GH-1592] [GH-1635] Notify Slack watchers on Terra submission creation ([#591](https://github.com/broadinstitute/wfl/pull/591))
- [GH-1593] Notify Slack watchers on failed TDR snapshot jobs ([#590](https://github.com/broadinstitute/wfl/pull/590))
Expand Down Expand Up @@ -410,4 +418,4 @@
- [GH-1013] Item Nesting V2 ([#188](https://github.com/broadinstitute/wfl/pull/188))
- [GH-1034] Fix reference_fasta function ([#194](https://github.com/broadinstitute/wfl/pull/194))
- [GH-771] WGS updates ([#191](https://github.com/broadinstitute/wfl/pull/191))
- [GH-819] External Exome Reprocessing ([#139](https://github.com/broadinstitute/wfl/pull/139))
- [GH-819] External Exome Reprocessing ([#139](https://github.com/broadinstitute/wfl/pull/139))
8 changes: 4 additions & 4 deletions api/src/wfl/api/workloads.clj
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
(fn [_transaction workload] (:pipeline workload)))

(defmulti update-workload!
"(transaction workload) -> workload"
(fn [_transaction workload] (:pipeline workload)))
"workload-record -> workload"
:pipeline)

(defmulti workflows
"Use db `transaction` to return the workflows managed by the `workload`."
Expand Down Expand Up @@ -148,10 +148,10 @@

(defmethod update-workload!
:default
[_ {:keys [pipeline] :as workload}]
[{:keys [pipeline] :as workload-record}]
(throw
(ex-info "Failed to update workload - no such pipeline"
{:workload workload
{:workload workload-record
:pipeline pipeline
:type ::invalid-pipeline})))

Expand Down
2 changes: 1 addition & 1 deletion api/src/wfl/executor.clj
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@
workflow-link (-> workflow
firecloud/workflow-url
(slack/link workflow))
submission-link (-> workspace
submission-link (-> submission
(firecloud/submission-url workspace)
(slack/link submission))]
(str/join \newline
Expand Down
19 changes: 12 additions & 7 deletions api/src/wfl/module/aou.clj
Original file line number Diff line number Diff line change
Expand Up @@ -314,13 +314,18 @@

(defmethod workloads/update-workload!
pipeline
[tx {:keys [started finished] :as workload}]
(letfn [(update! [{:keys [id] :as workload}]
(batch/update-workflow-statuses! tx workload)
(when (:stopped workload)
(batch/update-workload-status! tx workload))
(workloads/load-workload-for-id tx id))]
(if (and started (not finished)) (update! workload) workload)))
[{:keys [id started stopped finished] :as _workload-record}]
(jdbc/with-db-transaction [tx (postgres/wfl-db-config)]
(letfn [(load-workload []
(workloads/load-workload-for-id tx id))
(update! [workload]
(batch/update-workflow-statuses! tx workload)
(when stopped
(batch/update-workload-status! tx workload))
(load-workload))]
(if (and started (not finished))
(update! (load-workload))
(load-workload)))))

(defoverload workloads/workflows pipeline aou-workflows)
(defoverload workloads/workflows-by-filters pipeline aou-workflows-by-filters)
Expand Down
19 changes: 12 additions & 7 deletions api/src/wfl/module/batch.clj
Original file line number Diff line number Diff line change
Expand Up @@ -184,13 +184,18 @@
(mapcat submit-batch!))))

(defn update-workload!
"Use transaction TX to batch-update WORKLOAD statuses."
[tx {:keys [started finished] :as workload}]
(letfn [(update! [{:keys [id] :as workload}]
(batch-update-workflow-statuses! tx workload)
(update-workload-status! tx workload)
(workloads/load-workload-for-id tx id))]
(if (and started (not finished)) (update! workload) workload)))
"Batch-update `workload-record` statuses."
[{:keys [id started finished] :as _workload-record}]
(jdbc/with-db-transaction [tx (postgres/wfl-db-config)]
(letfn [(load-workload []
(workloads/load-workload-for-id tx id))
(update! [workload]
(batch-update-workflow-statuses! tx workload)
(update-workload-status! tx workload)
(load-workload))]
(if (and started (not finished))
(update! (load-workload))
(load-workload)))))

(defn stop-workload!
"Use transaction TX to stop the WORKLOAD."
Expand Down
32 changes: 18 additions & 14 deletions api/src/wfl/module/sg.clj
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
(ns wfl.module.sg
"Handle Somatic Genomes."
(:require [clojure.data.json :as json]
[clojure.spec.alpha :as s]
[clojure.set :as set]
[clojure.spec.alpha :as s]
[clojure.string :as str]
[wfl.api.workloads :as workloads :refer [defoverload]]
[wfl.jdbc :as jdbc]
Expand All @@ -13,6 +13,7 @@
[wfl.service.clio :as clio]
[wfl.service.cromwell :as cromwell]
[wfl.service.google.storage :as gcs]
[wfl.service.postgres :as postgres]
[wfl.util :as util]
[wfl.wfl :as wfl])
(:import [java.time OffsetDateTime]))
Expand Down Expand Up @@ -210,19 +211,22 @@
(run! (partial register-workflow-in-clio workload output) workflows))

(defn update-sg-workload!
"Use transaction `tx` to batch-update `workload` statuses."
[tx {:keys [started finished] :as workload}]
(letfn [(update! [{:keys [id] :as workload}]
(batch/batch-update-workflow-statuses! tx workload)
(batch/update-workload-status! tx workload)
(workloads/load-workload-for-id tx id))]
(if (and started (not finished))
(let [workload' (update! workload)]
(when (:finished workload')
(register-workload-in-clio workload'
(workloads/workflows tx workload')))
workload')
workload)))
"Batch-update `workload-record` statuses."
[{:keys [id started finished] :as _workload-record}]
(jdbc/with-db-transaction [tx (postgres/wfl-db-config)]
(letfn [(load-workload []
(workloads/load-workload-for-id tx id))
(update! [workload]
(batch/batch-update-workflow-statuses! tx workload)
(batch/update-workload-status! tx workload)
(load-workload))]
(if (and started (not finished))
(let [{:keys [finished] :as updated} (update! (load-workload))]
(when finished
(register-workload-in-clio updated
(workloads/workflows tx updated)))
updated)
(load-workload)))))

(defoverload workloads/create-workload! pipeline create-sg-workload!)
(defoverload workloads/start-workload! pipeline start-sg-workload!)
Expand Down
23 changes: 15 additions & 8 deletions api/src/wfl/module/staged.clj
Original file line number Diff line number Diff line change
Expand Up @@ -125,18 +125,25 @@
(if-not started (start workload (utc-now)) workload)))

(defn ^:private update-staged-workload
"Use transaction `tx` to update `workload` statuses."
[tx {:keys [started finished] :as workload}]
(letfn [(update! [{:keys [id source executor sink] :as workload} now]
"Update `workload-record` stages."
[{:keys [id started finished] :as _workload-record}]
(letfn [(load-workload [tx]
(workloads/load-workload-for-id tx id))
(update! [{:keys [source executor sink] :as workload} now]
(-> workload
(source/update-source!)
(executor/update-executor!)
(sink/update-sink!))
(patch-workload tx workload {:updated now})
(when (every? stage/done? [source executor sink])
(patch-workload tx workload {:finished now}))
(workloads/load-workload-for-id tx id))]
(if (and started (not finished)) (update! workload (utc-now)) workload)))
(jdbc/with-db-transaction [tx (postgres/wfl-db-config)]
(patch-workload tx workload {:updated now})
(when (every? stage/done? [source executor sink])
(patch-workload tx workload {:finished now}))
(load-workload tx)))]
(let [workload (jdbc/with-db-transaction [tx (postgres/wfl-db-config)]
(load-workload tx))]
(if (and started (not finished))
(update! workload (utc-now))
workload))))

(defn ^:private stop-staged-workload
"Use transaction `tx` to stop the `workload` looking for new data."
Expand Down
44 changes: 21 additions & 23 deletions api/src/wfl/server.clj
Original file line number Diff line number Diff line change
Expand Up @@ -79,41 +79,39 @@
(wrap-json-response {:pretty true})))

(defn ^:private do-update!
"Update `_workload` in a database transaction. "
[{:keys [id] :as _workload}]
(jdbc/with-db-transaction [tx (postgres/wfl-db-config)]
(let [workload (workloads/load-workload-for-id tx id)]
(try
(workloads/update-workload! tx workload)
(catch UserException e
(log/warning "Error updating workload"
:workload (workloads/to-log workload)
:exception e)
(slack/notify-watchers workload (.getMessage e)))))))
"Update `workload-record` and notify watchers on UserException."
[workload-record]
(try
(workloads/update-workload! workload-record)
(catch UserException e
(log/warning "UserException while updating workload"
:workload (workloads/to-log workload-record)
:exception e)
(slack/notify-watchers workload-record (.getMessage e)))))

(defn ^:private try-update
"Try to update the workflows in `workload` with a backstop."
[workload]
"Try to update `workload-record` with backstop."
[workload-record]
(try
(log/info "Updating workload"
:workload (workloads/to-log workload))
(do-update! workload)
(log/info "Updating workload" :workload (workloads/to-log workload-record))
(do-update! workload-record)
(catch Throwable t
(log/error "Failed to update workload"
:workload (workloads/to-log workload)
:workload (workloads/to-log workload-record)
:throwable t))))

(defn ^:private update-workloads
"Update the active workflows in the active workloads."
[]
(try
(log/info "Finding workloads to update...")
(run! try-update
(jdbc/with-db-transaction [tx (postgres/wfl-db-config)]
(jdbc/query tx (str/join \space
["SELECT * FROM workload"
"WHERE started IS NOT NULL"
"AND finished IS NULL"]))))
(let [query (str/join \space
["SELECT * FROM workload"
"WHERE started IS NOT NULL"
"AND finished IS NULL"])
records (jdbc/with-db-transaction [tx (postgres/wfl-db-config)]
(jdbc/query tx query))]
(run! try-update records))
(catch Throwable t
(log/error "Failed to update workloads" :throwable t))))

Expand Down
7 changes: 5 additions & 2 deletions api/src/wfl/service/slack.clj
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,13 @@
;; https://api.slack.com/methods/chat.postMessage#errors
;;
(defn ^:private post-message
"Post `message` to `channel`."
"Post `message` to `channel` with link unfurling disabled."
[channel message]
(let [headers {:Authorization (str "Bearer " (env/getenv "WFL_SLACK_TOKEN"))}
body (json/write-str {:channel channel :text message})]
body (json/write-str {:channel channel
:text message
:unfurl_links false
:unfurl_media false})]
(-> "https://slack.com/api/chat.postMessage"
(http/post {:headers headers
:content-type :application/json
Expand Down
27 changes: 14 additions & 13 deletions api/src/wfl/sink.clj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
[clojure.set :as set]
[clojure.spec.alpha :as s]
[clojure.string :as str]
[wfl.api.workloads :refer [defoverload]]
[wfl.api.workloads :as workloads :refer [defoverload]]
[wfl.environment :as env]
[wfl.jdbc :as jdbc]
[wfl.log :as log]
Expand Down Expand Up @@ -199,21 +199,20 @@
"Write outputs from consumable `executor` workflows
to `entityType` table in `workspace`."
[{executor :executor
{:keys [fromOutputs workspace entityType details] :as sink} :sink :as _workload}]
{:keys [fromOutputs workspace entityType details] :as sink} :sink :as workload}]
(when-let [[_ {:keys [uuid] :as workflow}] (stage/peek-queue executor)]
(log/debug {:action "Attempting to sink workflow outputs"
:workflow uuid
:entityType entityType})
(let [entityName (throw-or-entity-name-from-workflow workflow sink)
entity [entityType entityName]
attributes (terra-workspace-sink-to-attributes workflow fromOutputs)]
(when (entity-exists? workspace entity)
(firecloud/delete-entities workspace [entity]))
(rawls/batch-upsert workspace [(conj entity attributes)])
(stage/pop-queue! executor)
(log/debug {:action "Sunk workflow outputs"
:workflow uuid
:entity entity})
(log/info "Sunk workflow outputs to Terra workspace"
:workload (workloads/to-log workload)
:workflow uuid
:workspace workspace
:entityType entityType)
(jdbc/with-db-transaction [tx (postgres/wfl-db-config)]
(jdbc/insert! tx details {:entity entityName
:updated (util/utc-now)
Expand Down Expand Up @@ -421,7 +420,7 @@
(defn ^:private update-datarepo-sink
"Pull a workflow off the `_workload`'s `executor` queue and write its
outputs as new rows in a TDR dataset table."
[{:keys [executor sink uuid labels] :as _workload}]
[{:keys [executor sink] :as workload}]
(when-let [[_ workflow] (stage/peek-queue executor)]
(start-ingesting-outputs sink workflow)
(stage/pop-queue! executor))
Expand All @@ -430,10 +429,12 @@
(try
(let [result (datarepo/job-result job)]
(if (< (:bad_row_count result) 1)
(log/info "Sunk workflow outputs to dataset"
:labels labels :workload uuid)
(throw (UserException. "Row failed to sink to dataset"
{:job job :workflow workflow}))))
(log/info "Sunk all workflow outputs to TDR dataset"
:workload (workloads/to-log workload)
:job-id job
:workflow workflow)
(throw (UserException. "Row failed to sink to TDR dataset"
{:job-id job :workflow workflow}))))
(finally
(pop-job-queue! sink record)))))

Expand Down
23 changes: 12 additions & 11 deletions api/test/wfl/integration/datarepo_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -88,17 +88,18 @@
(is (== 1 (count row-ids))
"Single input row should have been written to the dataset")
(testing "creating snapshot after completed ingest"
(fixtures/with-temporary-snapshot
(snapshots/unique-snapshot-request tdr-profile
dataset
table-name
row-ids)
#(let [snapshot (datarepo/snapshot %)
expected-prefix (str (:name dataset) "_" table-name)]
(is (= % (:id snapshot)))
(is (str/starts-with? (:name snapshot) expected-prefix)
(str "Snapshot name should start with "
"dataset name and table name"))))))))))))
(let [request (snapshots/unique-snapshot-request
tdr-profile
dataset
table-name
row-ids)
snapshot-id (datarepo/create-snapshot request)
snapshot (datarepo/snapshot snapshot-id)
expected-prefix (str (:name dataset) "_" table-name)]
(is (= snapshot-id (:id snapshot)))
(is (str/starts-with? (:name snapshot) expected-prefix)
(str "Snapshot name should start with "
"dataset name and table name")))))))))))

(deftest test-flattened-query-result
(let [samplesheets (-> (datarepo/snapshot (:id testing-snapshot))
Expand Down
12 changes: 0 additions & 12 deletions api/test/wfl/tools/fixtures.clj
Original file line number Diff line number Diff line change
Expand Up @@ -193,18 +193,6 @@
datarepo/delete-snapshots-then-dataset
f))

;; Recommendation: only call this within a temporary dataset.
;; If calling within a fixed dataset, running the same test concurrently
;; may fail due to exclusive dataset locking on snapshot deletion.
;;
(defn with-temporary-snapshot
"Create a temporary Terra Data Repository Snapshot with `snapshot-request`"
[snapshot-request f]
(util/bracket
#(datarepo/create-snapshot snapshot-request)
datarepo/delete-snapshot
f))

(defn with-temporary-workspace
"Create and use a temporary Terra Workspace."
([workspace-prefix group f]
Expand Down
2 changes: 1 addition & 1 deletion api/test/wfl/tools/workloads.clj
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@
(def start-workload! (evalT wfl.api.workloads/start-workload!))
(def stop-workload! (evalT wfl.api.workloads/stop-workload!))
(def execute-workload! (evalT wfl.api.workloads/execute-workload!))
(def update-workload! (evalT wfl.api.workloads/update-workload!))
(def update-workload! wfl.api.workloads/update-workload!)
(def workflows (evalT wfl.api.workloads/workflows))
(def workflows-by-filters (evalT wfl.api.workloads/workflows-by-filters))

Expand Down
1 change: 1 addition & 0 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
pymdown-extensions==8.0.1
markdown-include==0.6.0
mkdocs-material==7.2.4
jinja2==3.0.3
2 changes: 1 addition & 1 deletion version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.17.0
0.18.0