Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
jgainerdewar committed Jul 19, 2022
2 parents d4273fb + fd5a6b5 commit 432bcba
Show file tree
Hide file tree
Showing 12 changed files with 754 additions and 23 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Cromwell Change Log

## 82 Release Notes

* Restored missing example configuration file
* Upgraded to latest version of the Google Cloud Storage NIO library (0.124.8)
* Cromwell will now finitely retry the following Google Cloud Storage I/O error.
* Response code `400` bad request, message `User project specified in the request is invalid`
* The default retry count is `5` and may be customized with `system.io.number-of-attempts`.

## 81 Release Notes

### Workflow labels in TES tasks
Expand Down
10 changes: 9 additions & 1 deletion CromIAM/src/main/scala/cromiam/cromwell/CromwellClient.scala
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ class CromwellClient(scheme: String, interface: String, port: Int, log: LoggingA

def forwardToCromwell(httpRequest: HttpRequest): FailureResponseOrT[HttpResponse] = {
val future = {
val headers = httpRequest.headers.filterNot(_.name == TimeoutAccessHeader)
// See CromwellClient's companion object for info on these header modifications
val headers = httpRequest.headers.filterNot(header => header.name == TimeoutAccessHeader || header.name == HostHeader)
val cromwellRequest = httpRequest
.copy(uri = httpRequest.uri.withAuthority(interface, port).withScheme(scheme))
.withHeaders(headers)
Expand Down Expand Up @@ -112,6 +113,13 @@ object CromwellClient {
// See: https://github.com/akka/akka-http/issues/64
val TimeoutAccessHeader = "Timeout-Access"

// Header that all clients will add before they send a request.
// If we don't strip this header out and let Akka replace it automatically before forwarding
// requests to Cromwell, any host-based routing in front of Cromwell will fail because the
// header will still contain CromIAM's host, not Cromwell's.
// See: https://broadworkbench.atlassian.net/browse/DDO-2190
val HostHeader = "Host"

final case class CromwellConnectionFailure(f: Throwable) extends Exception(s"Unable to connect to Cromwell (${f.getMessage})", f)

implicit class EnhancedWorkflowLabels(val wl: WorkflowLabels) extends AnyVal {
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Many users today run their WDL workflows in [Terra](https://app.terra.bio/), a m

Users with specialized needs who wish to install and maintain their own Cromwell instances can [download](https://github.com/broadinstitute/cromwell/releases) a JAR or Docker image. The development team accepts reproducible bug reports from self-managed instances, but cannot feasibly provide direct support.

[Cromwell's backends](https://cromwell.readthedocs.io/en/stable/backends/Backends/) receive development resources proportional to user demand. The team is actively developing for Google Cloud and Microsoft Azure. Maintenance of other backends is primarily community-based.
[Cromwell's backends](https://cromwell.readthedocs.io/en/stable/backends/Backends/) receive development resources proportional to user demand. The team is actively developing for Google Cloud and Microsoft Azure (see [Cromwell on Azure](https://github.com/microsoft/CromwellOnAzure)). Maintenance of other backends is primarily community-based.

Cromwell [supports](https://cromwell.readthedocs.io/en/stable/LanguageSupport/) the WDL workflow language. Cromwell version 80 and above no longer support CWL.

Expand Down
Loading

0 comments on commit 432bcba

Please sign in to comment.