Permalink
Browse files

Release 24

  • Loading branch information...
2 parents f7f068c + 26ade63 commit b71f06fba0dfd56287686bfa98b3df2abbee29a2 @kshakir kshakir committed Jan 5, 2017
Showing with 2,279 additions and 1,357 deletions.
  1. +10 −0 .travis.yml
  2. +6 −0 CHANGELOG.md
  3. +2 −2 LICENSE.txt
  4. +142 −0 README.md
  5. +1 −1 backend/src/main/scala/cromwell/backend/MemorySize.scala
  6. +1 −1 backend/src/main/scala/cromwell/backend/RuntimeAttributeDefinition.scala
  7. +7 −5 backend/src/main/scala/cromwell/backend/async/AsyncBackendJobExecutionActor.scala
  8. +12 −0 backend/src/main/scala/cromwell/backend/async/ExecutionHandle.scala
  9. +3 −3 backend/src/main/scala/cromwell/backend/backend.scala
  10. +5 −3 backend/src/main/scala/cromwell/backend/callcaching/CacheHitDuplicating.scala
  11. +2 −1 backend/src/main/scala/cromwell/backend/callcaching/FileHashingActor.scala
  12. +60 −0 backend/src/main/scala/cromwell/backend/io/GlobFunctions.scala
  13. +6 −5 backend/src/main/scala/cromwell/backend/io/WorkflowPaths.scala
  14. +481 −0 backend/src/main/scala/cromwell/backend/standard/StandardAsyncExecutionActor.scala
  15. +70 −0 backend/src/main/scala/cromwell/backend/standard/StandardJobExecutionActorParams.scala
  16. +42 −0 backend/src/main/scala/cromwell/backend/standard/StandardLifecycleActorFactory.scala
  17. +132 −0 backend/src/main/scala/cromwell/backend/standard/StandardSyncExecutionActor.scala
  18. +1 −2 backend/src/main/scala/cromwell/backend/validation/ContinueOnReturnCodeValidation.scala
  19. +1 −1 backend/src/main/scala/cromwell/backend/validation/MemoryValidation.scala
  20. +2 −2 backend/src/main/scala/cromwell/backend/validation/RuntimeAttributesDefault.scala
  21. +1 −1 backend/src/main/scala/cromwell/backend/validation/RuntimeAttributesValidation.scala
  22. +1 −1 backend/src/main/scala/cromwell/backend/validation/ValidatedRuntimeAttributesBuilder.scala
  23. +11 −11 backend/src/main/scala/cromwell/backend/wdl/ReadLikeFunctions.scala
  24. +7 −7 backend/src/main/scala/cromwell/backend/wdl/WriteFunctions.scala
  25. +4 −4 backend/src/test/scala/cromwell/backend/BackendSpec.scala
  26. +1 −1 backend/src/test/scala/cromwell/backend/validation/RuntimeAttributesDefaultSpec.scala
  27. +8 −0 core/src/main/resources/reference.conf
  28. +11 −0 core/src/main/scala/cromwell/core/CromwellUserGuardianStrategy.scala
  29. +1 −0 core/src/main/scala/cromwell/core/Dispatcher.scala
  30. +0 −22 core/src/main/scala/cromwell/core/ErrorOr.scala
  31. +4 −2 core/src/main/scala/cromwell/core/ExecutionStatus.scala
  32. +1 −1 core/src/main/scala/cromwell/core/WorkflowOptions.scala
  33. +13 −1 core/src/main/scala/cromwell/core/core.scala
  34. +3 −1 core/src/main/scala/cromwell/core/logging/WorkflowLogger.scala
  35. +7 −4 core/src/main/scala/cromwell/core/path/DefaultPathBuilder.scala
  36. +3 −1 core/src/main/scala/cromwell/core/path/PathFactory.scala
  37. +2 −0 core/src/main/scala/cromwell/core/path/PathImplicits.scala
  38. +3 −1 core/src/main/scala/cromwell/core/path/proxy/RetryableFileSystemProviderProxy.scala
  39. +1 −1 core/src/main/scala/cromwell/core/retry/Retry.scala
  40. +3 −1 core/src/main/scala/cromwell/util/JsonFormatting/WdlValueJsonFormatter.scala
  41. +0 −17 core/src/main/scala/cromwell/util/TerminalUtil.scala
  42. +0 −45 core/src/main/scala/cromwell/util/TryUtil.scala
  43. +1 −0 core/src/test/scala/cromwell/core/TestKitSuite.scala
  44. +0 −36 core/src/test/scala/cromwell/util/TryUtilSpec.scala
  45. +31 −8 engine/src/main/resources/swagger/cromwell.yaml
  46. +3 −3 engine/src/main/scala/cromwell/engine/EngineWorkflowDescriptor.scala
  47. +1 −1 engine/src/main/scala/cromwell/engine/backend/BackendConfiguration.scala
  48. +3 −1 engine/src/main/scala/cromwell/engine/backend/CromwellBackends.scala
  49. +2 −1 engine/src/main/scala/cromwell/engine/workflow/SingleWorkflowRunnerActor.scala
  50. +24 −9 engine/src/main/scala/cromwell/engine/workflow/WorkflowActor.scala
  51. +8 −6 engine/src/main/scala/cromwell/engine/workflow/lifecycle/MaterializeWorkflowDescriptorActor.scala
  52. +3 −3 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/CallMetadataHelper.scala
  53. +4 −1 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/EngineJobExecutionActor.scala
  54. +31 −5 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/ExecutionStore.scala
  55. +14 −5 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/JobPreparationActor.scala
  56. +13 −9 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/OutputStore.scala
  57. +2 −1 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/SubWorkflowExecutionActor.scala
  58. +175 −40 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/WorkflowExecutionActor.scala
  59. +4 −21 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/WorkflowExecutionActorData.scala
  60. +2 −1 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCache.scala
  61. +2 −1 ...ain/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCacheInvalidateActor.scala
  62. +2 −1 .../src/main/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCacheReadActor.scala
  63. +2 −1 ...src/main/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCacheWriteActor.scala
  64. +2 −1 ...c/main/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/EngineJobHashingActor.scala
  65. +2 −1 ...main/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/FetchCachedResultsActor.scala
  66. +2 −1 engine/src/main/scala/cromwell/engine/workflow/tokens/JobExecutionTokenDispenserActor.scala
  67. +3 −2 engine/src/main/scala/cromwell/engine/workflow/workflowstore/WorkflowStoreActor.scala
  68. +2 −1 engine/src/main/scala/cromwell/jobstore/JobStoreActor.scala
  69. +2 −1 engine/src/main/scala/cromwell/jobstore/JobStoreReaderActor.scala
  70. +2 −1 engine/src/main/scala/cromwell/jobstore/JobStoreWriterActor.scala
  71. +1 −1 engine/src/main/scala/cromwell/logging/TerminalLayout.scala
  72. +1 −3 engine/src/main/scala/cromwell/server/CromwellRootActor.scala
  73. +2 −1 engine/src/main/scala/cromwell/server/CromwellServer.scala
  74. +2 −1 engine/src/main/scala/cromwell/subworkflowstore/SubWorkflowStoreActor.scala
  75. +5 −4 engine/src/main/scala/cromwell/webservice/ApiDataModels.scala
  76. +3 −2 engine/src/main/scala/cromwell/webservice/CromwellApiHandler.scala
  77. +30 −22 engine/src/main/scala/cromwell/webservice/CromwellApiService.scala
  78. +12 −5 engine/src/test/scala/cromwell/MetadataWatchActor.scala
  79. +11 −2 engine/src/test/scala/cromwell/SimpleWorkflowActorSpec.scala
  80. +20 −5 engine/src/test/scala/cromwell/engine/workflow/WorkflowActorSpec.scala
  81. +10 −54 ...ne/src/test/scala/cromwell/engine/workflow/lifecycle/MaterializeWorkflowDescriptorActorSpec.scala
  82. +0 −2 ...e/src/test/scala/cromwell/engine/workflow/lifecycle/execution/SubWorkflowExecutionActorSpec.scala
  83. +1 −1 engine/src/test/scala/cromwell/engine/workflow/lifecycle/execution/ejea/PerTestHelper.scala
  84. +36 −0 engine/src/test/scala/cromwell/webservice/CromwellApiServiceSpec.scala
  85. +8 −4 filesystems/gcs/src/main/scala/cromwell/filesystems/gcs/GcsPathBuilder.scala
  86. +18 −13 filesystems/gcs/src/main/scala/cromwell/filesystems/gcs/GoogleConfiguration.scala
  87. +6 −6 filesystems/gcs/src/test/scala/cromwell/filesystems/gcs/GoogleConfigurationSpec.scala
  88. +5 −4 project/Dependencies.scala
  89. +1 −1 project/Settings.scala
  90. +14 −1 project/Version.scala
  91. +10 −4 services/src/main/scala/cromwell/services/ServiceRegistryActor.scala
  92. +2 −1 services/src/main/scala/cromwell/services/keyvalue/impl/SqlKeyValueServiceActor.scala
  93. +1 −0 services/src/main/scala/cromwell/services/metadata/CallMetadataKeys.scala
  94. +6 −2 services/src/main/scala/cromwell/services/metadata/MetadataQuery.scala
  95. +14 −3 services/src/main/scala/cromwell/services/metadata/MetadataService.scala
  96. +1 −1 services/src/main/scala/cromwell/services/metadata/WorkflowQueryKey.scala
  97. +1 −1 services/src/main/scala/cromwell/services/metadata/WorkflowQueryParameters.scala
  98. +2 −1 services/src/main/scala/cromwell/services/metadata/impl/MetadataServiceActor.scala
  99. +2 −1 services/src/main/scala/cromwell/services/metadata/impl/MetadataSummaryRefreshActor.scala
  100. +2 −1 services/src/main/scala/cromwell/services/metadata/impl/WriteMetadataActor.scala
  101. +6 −2 services/src/test/scala/cromwell/services/ServiceRegistryActorSpec.scala
  102. +1 −0 services/src/test/scala/cromwell/services/ServicesSpec.scala
  103. +6 −1 src/bin/travis/afterSuccess.sh
  104. +1 −1 src/bin/travis/resources/centaur.wdl
  105. +4 −0 src/bin/travis/testCentaurLocal.sh
  106. +3 −1 src/main/scala/cromwell/CromwellCommandLine.scala
  107. +27 −2 src/main/scala/cromwell/Main.scala
  108. +4 −0 src/test/scala/cromwell/CromwellCommandLineSpec.scala
  109. +1 −1 ...edBackends/htcondor/src/main/scala/cromwell/backend/impl/htcondor/HtCondorJobExecutionActor.scala
  110. +1 −1 ...edBackends/htcondor/src/main/scala/cromwell/backend/impl/htcondor/HtCondorRuntimeAttributes.scala
  111. +2 −2 ...ckends/htcondor/src/test/scala/cromwell/backend/impl/htcondor/HtCondorRuntimeAttributesSpec.scala
  112. +192 −264 ...ortedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesAsyncBackendJobExecutionActor.scala
  113. +26 −17 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesAttributes.scala
  114. +2 −1 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesBackendSingletonActor.scala
  115. +9 −6 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesCacheHitCopyingActor.scala
  116. +7 −14 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesExpressionFunctions.scala
  117. +7 −1 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesFinalizationActor.scala
  118. +2 −1 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesInitializationActor.scala
  119. +18 −19 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesJobCachingActorHelper.scala
  120. +44 −92 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesJobExecutionActor.scala
  121. +1 −2 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesRuntimeAttributes.scala
  122. +2 −1 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesWorkflowPaths.scala
  123. +5 −5 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/io/JesAttachedDisk.scala
  124. +2 −1 ...ortedBackends/jes/src/main/scala/cromwell/backend/impl/jes/statuspolling/JesApiQueryManager.scala
  125. +2 −1 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/statuspolling/JesPollingActor.scala
  126. +36 −20 ...dBackends/jes/src/test/scala/cromwell/backend/impl/jes/JesAsyncBackendJobExecutionActorSpec.scala
  127. +9 −9 supportedBackends/jes/src/test/scala/cromwell/backend/impl/jes/JesAttributesSpec.scala
  128. +6 −5 supportedBackends/jes/src/test/scala/cromwell/backend/impl/jes/JesCallPathsSpec.scala
  129. +14 −14 supportedBackends/jes/src/test/scala/cromwell/backend/impl/jes/JesJobExecutionActorSpec.scala
  130. +4 −3 supportedBackends/jes/src/test/scala/cromwell/backend/impl/jes/JesWorkflowPathsSpec.scala
  131. +12 −14 ...edBackends/sfs/src/main/scala/cromwell/backend/impl/sfs/config/ConfigAsyncJobExecutionActor.scala
  132. +11 −8 supportedBackends/sfs/src/main/scala/cromwell/backend/impl/sfs/config/DeclarationValidation.scala
  133. +7 −6 supportedBackends/sfs/src/main/scala/cromwell/backend/sfs/BackgroundAsyncJobExecutionActor.scala
  134. +19 −17 supportedBackends/sfs/src/main/scala/cromwell/backend/sfs/SharedFileSystem.scala
  135. +86 −204 ...rtedBackends/sfs/src/main/scala/cromwell/backend/sfs/SharedFileSystemAsyncJobExecutionActor.scala
  136. +8 −38 ...ckends/sfs/src/main/scala/cromwell/backend/sfs/SharedFileSystemBackendLifecycleActorFactory.scala
  137. +6 −10 supportedBackends/sfs/src/main/scala/cromwell/backend/sfs/SharedFileSystemExpressionFunctions.scala
  138. +7 −4 ...ortedBackends/sfs/src/main/scala/cromwell/backend/sfs/SharedFileSystemJobCachingActorHelper.scala
  139. +0 −85 supportedBackends/sfs/src/main/scala/cromwell/backend/sfs/SharedFileSystemJobExecutionActor.scala
  140. +10 −8 ...ortedBackends/sfs/src/test/scala/cromwell/backend/sfs/SharedFileSystemJobExecutionActorSpec.scala
  141. +16 −1 supportedBackends/sfs/src/test/scala/cromwell/backend/sfs/SharedFileSystemSpec.scala
  142. +9 −14 supportedBackends/sfs/src/test/scala/cromwell/backend/sfs/TestLocalAsyncJobExecutionActor.scala
  143. +1 −1 supportedBackends/spark/src/main/scala/cromwell/backend/impl/spark/SparkJobExecutionActor.scala
  144. +1 −1 supportedBackends/spark/src/main/scala/cromwell/backend/impl/spark/SparkRuntimeAttributes.scala
  145. +2 −2 supportedBackends/spark/src/test/scala/cromwell/backend/impl/spark/SparkRuntimeAttributesSpec.scala
View
@@ -5,6 +5,16 @@ scala:
- 2.11.8
jdk:
- oraclejdk8
+cache:
+ # md5deep - https://github.com/travis-ci/travis-ci/issues/3122
+ branch: md5deep
+ directories:
+ - $HOME/.ivy2/cache
+ - $HOME/.sbt/boot/
+before_cache:
+ # Tricks to avoid unnecessary cache updates
+ - find $HOME/.ivy2 -name "ivydata-*.properties" -delete
+ - find $HOME/.sbt -name "*.lock" -delete
env:
global:
- CENTAUR_BRANCH=develop
View
@@ -1,5 +1,11 @@
# Cromwell Change Log
+## 24
+
+* When emitting workflow outputs to the Cromwell log only the first 1000 characters per output will be printed
+* Added support for conditional (`if`) statements.
+* Globs for Shared File System (SFS) backends, such as local or SGE, now use bash globbing instead of Java globbing, consistent with the JES backend.
+
## 23
* The `meta` and `parameter_meta` blocks are now valid within `workflow` blocks, not just `task`
View
@@ -1,4 +1,4 @@
-Copyright (c) 2015-2016, Broad Institute, Inc.
+Copyright (c) 2015, Broad Institute, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -24,4 +24,4 @@ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
View
142 README.md
@@ -20,7 +20,9 @@ A [Workflow Management System](https://en.wikipedia.org/wiki/Workflow_management
* [Command Line Usage](#command-line-usage)
* [run](#run)
* [server](#server)
+ * [version](#version)
* [Getting Started with WDL](#getting-started-with-wdl)
+ * [WDL Support](#wdl-support)
* [Configuring Cromwell](#configuring-cromwell)
* [Workflow Submission](#workflow-submission)
* [Database](#database)
@@ -85,6 +87,7 @@ A [Workflow Management System](https://en.wikipedia.org/wiki/Workflow_management
* [POST /api/workflows/:version/:id/abort](#post-apiworkflowsversionidabort)
* [GET /api/workflows/:version/backends](#get-apiworkflowsversionbackends)
* [GET /api/engine/:version/stats](#get-apiengineversionstats)
+ * [GET /api/engine/:version/version](#get-apiengineversionversion)
* [Error handling](#error-handling)
* [Developer](#developer)
* [Generating table of contents on Markdown files](#generating-table-of-contents-on-markdown-files)
@@ -158,6 +161,11 @@ run <WDL file> [<JSON inputs file>] [<JSON workflow options>]
Starts a web server on port 8000. See the web server
documentation for more details about the API endpoints.
+
+ -version
+
+ Returns the version of the Cromwell engine.
+
```
## run
@@ -283,10 +291,117 @@ $ java -jar cromwell.jar run threestep.wdl - - - /path/to/my_WDLs.zip
Start a server on port 8000, the API for the server is described in the [REST API](#rest-api) section.
+## version
+
+Returns the version of Cromwell engine.
+
# Getting Started with WDL
For many examples on how to use WDL see [the WDL site](https://github.com/broadinstitute/wdl#getting-started-with-wdl)
+## WDL Support
+
+:pig2: Cromwell supports the following subset of WDL features:
+
+* [Language Specification](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#language-specification)
+ * [Whitespace, Strings, Identifiers, Constants](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#whitespace-strings-identifiers-constants)
+ * [Types](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#types)
+ * [Fully Qualified Names & Namespaced Identifiers](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#fully-qualified-names--namespaced-identifiers)
+ * [Declarations](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#declarations)
+ * [Expressions](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#expressions)
+ * [Operator Precedence Table](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#operator-precedence-table)
+ * [Member Access](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#member-access)
+ * [Map and Array Indexing](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#map-and-array-indexing)
+ * [Function Calls](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#function-calls)
+ * [Array Literals](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#array-literals)
+ * [Map Literals](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#map-literals)
+* [Document](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#document)
+* [Task Definition](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#task-definition)
+ * [Sections](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#sections)
+ * [Command Section](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#command-section)
+ * [Command Parts](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#command-parts)
+ * [Command Part Options](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#command-part-options)
+ * [sep](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#sep)
+ * [true and false](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#true-and-false)
+ * [default](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#default)
+ * [Alternative heredoc syntax](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#alternative-heredoc-syntax)
+ * [Stripping Leading Whitespace](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#stripping-leading-whitespace)
+ * [Outputs Section](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#outputs-section)
+ * [String Interpolation](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#string-interpolation)
+ * [Runtime Section](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#runtime-section)
+ * [docker](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#docker)
+ * [memory](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#memory)
+ * [Parameter Metadata Section](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#parameter-metadata-section)
+ * [Metadata Section](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#metadata-section)
+* [Workflow Definition](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#workflow-definition)
+ * [Call Statement](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#call-statement)
+ * [Sub Workflows](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#sub-workflows)
+ * [Scatter](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#scatter)
+ * [Parameter Metadata](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#parameter-metadata)
+ * [Metadata](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#metadata)
+ * [Outputs](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#outputs)
+* [Namespaces](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#namespaces)
+* [Scope](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#scope)
+* [Optional Parameters & Type Constraints](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#optional-parameters--type-constraints)
+ * [Prepending a String to an Optional Parameter](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#prepending-a-string-to-an-optional-parameter)
+* [Scatter / Gather](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#scatter--gather)
+* [Variable Resolution](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#variable-resolution)
+ * [Task-Level Resolution](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#task-level-resolution)
+ * [Workflow-Level Resolution](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#workflow-level-resolution)
+* [Computing Inputs](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#computing-inputs)
+ * [Task Inputs](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#task-inputs)
+ * [Workflow Inputs](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#workflow-inputs)
+ * [Specifying Workflow Inputs in JSON](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#specifying-workflow-inputs-in-json)
+* [Type Coercion](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#type-coercion)
+* [Standard Library](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#standard-library)
+ * [File stdout()](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#file-stdout)
+ * [File stderr()](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#file-stderr)
+ * [Array\[String\] read_lines(String|File)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#arraystring-read_linesstringfile)
+ * [Array\[Array\[String\]\] read_tsv(String|File)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#arrayarraystring-read_tsvstringfile)
+ * [Map\[String, String\] read_map(String|File)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#mapstring-string-read_mapstringfile)
+ * [Object read_object(String|File)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#object-read_objectstringfile)
+ * [Array\[Object\] read_objects(String|File)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#arrayobject-read_objectsstringfile)
+ * [Int read_int(String|File)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#int-read_intstringfile)
+ * [String read_string(String|File)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#string-read_stringstringfile)
+ * [Float read_float(String|File)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#float-read_floatstringfile)
+ * [Boolean read_boolean(String|File)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#boolean-read_booleanstringfile)
+ * [File write_lines(Array\[String\])](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#file-write_linesarraystring)
+ * [File write_tsv(Array\[Array\[String\]\])](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#file-write_tsvarrayarraystring)
+ * [File write_map(Map\[String, String\])](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#file-write_mapmapstring-string)
+ * [File write_object(Object)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#file-write_objectobject)
+ * [File write_objects(Array\[Object\])](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#file-write_objectsarrayobject)
+ * [Float size(File, \[String\])](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#float-sizefile-string)
+ * [String sub(String, String, String)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#string-substring-string-string)
+ * [Array\[Int\] range(Int)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#arrayint-rangeint)
+ * [Array\[Array\[X\]\] transpose(Array\[Array\[X\]\])](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#arrayarrayx-transposearrayarrayx)
+ * [Pair(X,Y) zip(X,Y)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#pairxy-zipxy)
+ * [Pair(X,Y) cross(X,Y)](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#pairxy-crossxy)
+* [Data Types & Serialization](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#data-types--serialization)
+ * [Serialization of Task Inputs](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#serialization-of-task-inputs)
+ * [Primitive Types](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#primitive-types)
+ * [Compound Types](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#compound-types)
+ * [Array serialization](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#array-serialization)
+ * [Array serialization by expansion](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#array-serialization-by-expansion)
+ * [Array serialization using write_lines()](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#array-serialization-using-write_lines)
+ * [Map serialization](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#map-serialization)
+ * [Map serialization using write_map()](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#map-serialization-using-write_map)
+ * [Object serialization](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#object-serialization)
+ * [Object serialization using write_object()](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#object-serialization-using-write_object)
+ * [Array\[Object\] serialization](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#arrayobject-serialization)
+ * [Array\[Object\] serialization using write_objects()](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#arrayobject-serialization-using-write_objects)
+ * [De-serialization of Task Outputs](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#de-serialization-of-task-outputs)
+ * [Primitive Types](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#primitive-types)
+ * [Compound Types](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#compound-types)
+ * [Array deserialization](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#array-deserialization)
+ * [Array deserialization using read_lines()](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#array-deserialization-using-read_lines)
+ * [Map deserialization](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#map-deserialization)
+ * [Map deserialization using read_map()](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#map-deserialization-using-read_map)
+ * [Object deserialization](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#object-deserialization)
+ * [Object deserialization using read_object()](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#object-deserialization-using-read_object)
+ * [Array\[Object\] deserialization](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#arrayobject-deserialization)
+ * [Object deserialization using read_objects()](https://github.com/broadinstitute/wdl/blob/develop/SPEC.md#object-deserialization-using-read_objects)
+
+
# Configuring Cromwell
Cromwell's default configuration file is located at `src/main/resources/application.conf`.
@@ -2313,6 +2428,7 @@ contain one workflow submission response for each input, respectively.
* `workflowOptions` - *Optional* JSON file containing options for this
workflow execution. See the [run](#run) CLI sub-command for some more
information about this.
+* `wdlDependencies` - *Optional* ZIP file containing WDL files that are used to resolve import statements. Applied equally to all workflowInput sets.
cURL:
@@ -3115,6 +3231,32 @@ Response:
}
```
+## GET /api/engine/:version/version
+
+This endpoint returns the version of the Cromwell engine.
+
+cURL:
+```
+$ curl http://localhost:8000/api/engine/v1/version
+```
+
+HTTPie:
+```
+$ http http://localhost:8000/api/engine/v1/version
+```
+
+Response:
+```
+"date": "Sun, 18 Sep 2016 14:38:11 GMT",
+"server": "spray-can/1.3.3",
+"content-length": "33",
+"content-type": "application/json; charset=UTF-8"
+
+{
+ "cromwell": 23-8be799a-SNAP
+}
+```
+
## Error handling
@@ -4,7 +4,7 @@ package cromwell.backend
import cats.data.Validated._
import cats.syntax.cartesian._
import cats.syntax.validated._
-import cromwell.core.ErrorOr._
+import lenthall.validation.ErrorOr._
import mouse.string._
import scala.language.postfixOps
@@ -2,9 +2,9 @@ package cromwell.backend
import cromwell.core.WorkflowOptions
import cromwell.util.JsonFormatting.WdlValueJsonFormatter
+import lenthall.util.TryUtil
import wdl4s.{WdlExpressionException, _}
import wdl4s.expression.WdlStandardLibraryFunctions
-import wdl4s.util.TryUtil
import wdl4s.values.WdlValue
import scala.util.{Success, Try}
@@ -4,7 +4,7 @@ import akka.actor.{Actor, ActorLogging, ActorRef}
import cromwell.backend.BackendJobDescriptor
import cromwell.backend.BackendJobExecutionActor._
import cromwell.backend.async.AsyncBackendJobExecutionActor._
-import cromwell.core.CromwellFatalException
+import cromwell.core.CromwellFatalExceptionMarker
import cromwell.core.retry.{Retry, SimpleExponentialBackoff}
import cromwell.services.metadata.MetadataService.MetadataServiceResponse
@@ -35,10 +35,12 @@ trait AsyncBackendJobExecutionActor { this: Actor with ActorLogging =>
def retryable: Boolean
- private def withRetry[A](work: () => Future[A], backoff: SimpleExponentialBackoff): Future[A] = {
- def isFatal(t: Throwable) = t.isInstanceOf[CromwellFatalException]
+ def isFatal(throwable: Throwable): Boolean = throwable.isInstanceOf[CromwellFatalExceptionMarker]
- Retry.withRetry(work, isTransient = !isFatal(_), isFatal = isFatal, backoff = backoff)(context.system)
+ def isTransient(throwable: Throwable): Boolean = !isFatal(throwable)
+
+ private def withRetry[A](work: () => Future[A], backOff: SimpleExponentialBackoff): Future[A] = {
+ Retry.withRetry(work, isTransient = isTransient, isFatal = isFatal, backoff = backOff)(context.system)
}
private def robustExecuteOrRecover(mode: ExecutionMode) = {
@@ -74,7 +76,7 @@ trait AsyncBackendJobExecutionActor { this: Actor with ActorLogging =>
// -Ywarn-value-discard
context.system.scheduler.scheduleOnce(pollBackOff.backoffMillis.millis, self, IssuePollRequest(handle))
()
- case Finish(SuccessfulExecutionHandle(outputs, returnCode, jobDetritusFiles, executionEvents, resultsClonedFrom)) =>
+ case Finish(SuccessfulExecutionHandle(outputs, returnCode, jobDetritusFiles, executionEvents, _)) =>
completionPromise.success(JobSucceededResponse(jobDescriptor.key, Some(returnCode), outputs, Option(jobDetritusFiles), executionEvents))
context.stop(self)
case Finish(FailedNonRetryableExecutionHandle(throwable, returnCode)) =>
@@ -3,6 +3,7 @@ package cromwell.backend.async
import java.nio.file.Path
import cromwell.backend.BackendJobDescriptor
+import cromwell.backend.async.AsyncBackendJobExecutionActor.JobId
import cromwell.core.{ExecutionEvent, CallOutputs}
/**
@@ -14,6 +15,17 @@ trait ExecutionHandle {
def result: ExecutionResult
}
+case class PendingExecutionHandle[BackendJobId <: JobId, BackendRunInfo, BackendRunStatus]
+(
+ jobDescriptor: BackendJobDescriptor,
+ pendingJob: BackendJobId,
+ runInfo: Option[BackendRunInfo],
+ previousStatus: Option[BackendRunStatus]
+) extends ExecutionHandle {
+ override val isDone = false
+ override val result = NonRetryableExecution(new IllegalStateException("PendingExecutionHandle cannot yield a result"))
+}
+
final case class SuccessfulExecutionHandle(outputs: CallOutputs, returnCode: Int, jobDetritusFiles: Map[String, Path], executionEvents: Seq[ExecutionEvent], resultsClonedFrom: Option[BackendJobDescriptor] = None) extends ExecutionHandle {
override val isDone = true
override val result = SuccessfulExecution(outputs, returnCode, jobDetritusFiles, executionEvents, resultsClonedFrom)
@@ -33,9 +33,9 @@ case class BackendJobDescriptor(workflowDescriptor: BackendWorkflowDescriptor,
object BackendWorkflowDescriptor {
def apply(id: WorkflowId,
workflow: Workflow,
- inputs: Map[FullyQualifiedName, WdlValue],
+ knownValues: Map[FullyQualifiedName, WdlValue],
workflowOptions: WorkflowOptions) = {
- new BackendWorkflowDescriptor(id, workflow, inputs, workflowOptions, List.empty)
+ new BackendWorkflowDescriptor(id, workflow, knownValues, workflowOptions, List.empty)
}
}
@@ -44,7 +44,7 @@ object BackendWorkflowDescriptor {
*/
case class BackendWorkflowDescriptor(id: WorkflowId,
workflow: Workflow,
- inputs: Map[FullyQualifiedName, WdlValue],
+ knownValues: Map[FullyQualifiedName, WdlValue],
workflowOptions: WorkflowOptions,
breadCrumbs: List[BackendJobBreadCrumb]) {
Oops, something went wrong.

0 comments on commit b71f06f

Please sign in to comment.