From 655112961cc49775bc01654a560f172543976407 Mon Sep 17 00:00:00 2001 From: Miguel Covarrubias Date: Mon, 12 Jun 2017 16:04:03 -0400 Subject: [PATCH] Make workflow type optional in store, remove references to WDL in Swagger. --- .../changesets/workflow_store_type_and_version.xml | 6 --- .../slick/tables/WorkflowStoreEntryComponent.scala | 2 +- .../database/sql/tables/WorkflowStoreEntry.scala | 2 +- engine/src/main/resources/swagger/cromwell.yaml | 44 ++++++++++++++++------ .../workflow/workflowstore/SqlWorkflowStore.scala | 5 +-- scripts/test_upgrade/test_upgrade.sh | 8 ++-- .../cromwell/services/ServicesStoreSpec.scala | 2 +- 7 files changed, 41 insertions(+), 28 deletions(-) diff --git a/database/migration/src/main/resources/changesets/workflow_store_type_and_version.xml b/database/migration/src/main/resources/changesets/workflow_store_type_and_version.xml index d724242c7..bdb38ad09 100644 --- a/database/migration/src/main/resources/changesets/workflow_store_type_and_version.xml +++ b/database/migration/src/main/resources/changesets/workflow_store_type_and_version.xml @@ -14,10 +14,4 @@ - - - diff --git a/database/sql/src/main/scala/cromwell/database/slick/tables/WorkflowStoreEntryComponent.scala b/database/sql/src/main/scala/cromwell/database/slick/tables/WorkflowStoreEntryComponent.scala index cc67c4eb5..0c2b08106 100644 --- a/database/sql/src/main/scala/cromwell/database/slick/tables/WorkflowStoreEntryComponent.scala +++ b/database/sql/src/main/scala/cromwell/database/slick/tables/WorkflowStoreEntryComponent.scala @@ -15,7 +15,7 @@ trait WorkflowStoreEntryComponent { def workflowExecutionUuid = column[String]("WORKFLOW_EXECUTION_UUID") - def workflowType = column[String]("WORKFLOW_TYPE", O.Length(30)) + def workflowType = column[Option[String]]("WORKFLOW_TYPE", O.Length(30)) def workflowTypeVersion = column[Option[String]]("WORKFLOW_TYPE_VERSION") diff --git a/database/sql/src/main/scala/cromwell/database/sql/tables/WorkflowStoreEntry.scala b/database/sql/src/main/scala/cromwell/database/sql/tables/WorkflowStoreEntry.scala index b159864e1..41ca7794e 100644 --- a/database/sql/src/main/scala/cromwell/database/sql/tables/WorkflowStoreEntry.scala +++ b/database/sql/src/main/scala/cromwell/database/sql/tables/WorkflowStoreEntry.scala @@ -6,7 +6,7 @@ case class WorkflowStoreEntry ( workflowExecutionUuid: String, workflowDefinition: Option[Clob], - workflowType: String, + workflowType: Option[String], workflowTypeVersion: Option[String], workflowInputs: Option[Clob], workflowOptions: Option[Clob], diff --git a/engine/src/main/resources/swagger/cromwell.yaml b/engine/src/main/resources/swagger/cromwell.yaml index df4dd5cb4..dd16c32da 100644 --- a/engine/src/main/resources/swagger/cromwell.yaml +++ b/engine/src/main/resources/swagger/cromwell.yaml @@ -58,33 +58,33 @@ paths: type: string in: path default: v1 - - name: wdlSource - description: WDL Source + - name: workflowSource + description: Workflow source file required: true type: file in: formData - name: workflowInputs - description: WDL Inputs JSON, 1 + description: Workflow Inputs JSON, 1 required: false type: file in: formData - name: workflowInputs_2 - description: WDL Inputs JSON, 2 + description: Workflow Inputs JSON, 2 required: false type: file in: formData - name: workflowInputs_3 - description: WDL Inputs JSON, 3 + description: Workflow Inputs JSON, 3 required: false type: file in: formData - name: workflowInputs_4 - description: WDL Inputs JSON, 4 + description: Workflow Inputs JSON, 4 required: false type: file in: formData - name: workflowInputs_5 - description: WDL Inputs JSON, 5 + description: Workflow Inputs JSON, 5 required: false type: file in: formData @@ -93,13 +93,23 @@ paths: required: false type: file in: formData + - name: workflowType + description: Type of workflow + required: false + type: string + in: formData + - name: workflowTypeVersion + description: Version of workflow type + required: false + type: string + in: formData - name: customLabels description: Custom Labels JSON required: false type: file in: formData - name: workflowDependencies - description: Zip file containing WDL dependencies + description: Zip file containing workflow dependencies required: false type: file in: formData @@ -129,13 +139,13 @@ paths: type: string in: path default: v1 - - name: wdlSource - description: WDL Source + - name: workflowSource + description: Workflow Source required: true type: file in: formData - name: workflowInputs - description: WDL Inputs JSON as an array + description: Workflow Inputs JSON as an array required: true type: file in: formData @@ -144,13 +154,23 @@ paths: required: false type: file in: formData + - name: workflowType + description: Type of workflow + required: false + type: string + in: formData + - name: workflowTypeVersion + description: Version of workflow type + required: false + type: string + in: formData - name: customLabels description: Custom Labels JSON required: false type: file in: formData - name: workflowDependencies - description: Zip file containing WDL dependencies + description: Zip file containing workflow dependencies required: false type: file in: formData diff --git a/engine/src/main/scala/cromwell/engine/workflow/workflowstore/SqlWorkflowStore.scala b/engine/src/main/scala/cromwell/engine/workflow/workflowstore/SqlWorkflowStore.scala index f757bdcf5..d8ca17ab6 100644 --- a/engine/src/main/scala/cromwell/engine/workflow/workflowstore/SqlWorkflowStore.scala +++ b/engine/src/main/scala/cromwell/engine/workflow/workflowstore/SqlWorkflowStore.scala @@ -56,7 +56,7 @@ case class SqlWorkflowStore(sqlDatabase: WorkflowStoreSqlDatabase) extends Workf private def fromWorkflowStoreEntry(workflowStoreEntry: WorkflowStoreEntry): WorkflowToStart = { val sources = WorkflowSourceFilesCollection( workflowSource = workflowStoreEntry.workflowDefinition.toRawString, - workflowType = Option(workflowStoreEntry.workflowType), + workflowType = workflowStoreEntry.workflowType, workflowTypeVersion = workflowStoreEntry.workflowTypeVersion, inputsJson = workflowStoreEntry.workflowInputs.toRawString, workflowOptionsJson = workflowStoreEntry.workflowOptions.toRawString, @@ -76,8 +76,7 @@ case class SqlWorkflowStore(sqlDatabase: WorkflowStoreSqlDatabase) extends Workf WorkflowStoreEntry( workflowExecutionUuid = WorkflowId.randomId().toString, workflowDefinition = workflowSourceFiles.workflowSource.toClobOption, - // TODO ensure safety - workflowType = workflowSourceFiles.workflowType.get, + workflowType = workflowSourceFiles.workflowType, workflowTypeVersion = workflowSourceFiles.workflowTypeVersion, workflowInputs = workflowSourceFiles.inputsJson.toClobOption, workflowOptions = workflowSourceFiles.workflowOptionsJson.toClobOption, diff --git a/scripts/test_upgrade/test_upgrade.sh b/scripts/test_upgrade/test_upgrade.sh index 2b47d0c32..7eb6a22e6 100755 --- a/scripts/test_upgrade/test_upgrade.sh +++ b/scripts/test_upgrade/test_upgrade.sh @@ -67,7 +67,7 @@ do echo -n "submitting job ${i}a and ${i}b..." RESULT_FILE="$OUT_DIR/submitResult_${i}_ab.json" curl -X POST --header "Accept: application/json" "http://localhost:8000/api/workflows/v1/batch" \ - -F wdlSource=@scatter_files.wdl \ + -F workflowSource=@scatter_files.wdl \ -F workflowInputs=@scatter_files_input_part1_ab.json \ -F workflowInputs_2=@scatter_files_input_part2.json \ -F workflowInputs_3=@scatter_files_input_part3.json \ @@ -80,7 +80,7 @@ do echo -n "submitting job ${i}c..." RESULT_FILE="$OUT_DIR/submitResult_${i}_c.json" curl -X POST --header "Accept: application/json" "http://localhost:8000/api/workflows/v1/batch" \ - -F wdlSource=@scatter_files.wdl \ + -F workflowSource=@scatter_files.wdl \ -F workflowInputs=@scatter_files_input_part1_c.json \ -F workflowInputs_2=@scatter_files_input_part2.json \ -F workflowInputs_3=@scatter_files_input_part3.json \ @@ -125,7 +125,7 @@ i=3 echo -n "submitting job ${i}a and ${i}b..." RESULT_FILE="$OUT_DIR/submitResult_${i}_ab.json" curl -X POST --header "Accept: application/json" "http://localhost:8000/api/workflows/v1/batch" \ - -F wdlSource=@scatter_files.wdl \ + -F workflowSource=@scatter_files.wdl \ -F workflowInputs=@scatter_files_input_part1_ab.json \ -F workflowInputs_2=@scatter_files_input_part2.json \ -F workflowInputs_3=@scatter_files_input_part3.json \ @@ -138,7 +138,7 @@ echo "done (Response in: $RESULT_FILE)." echo -n "submitting job ${i}c..." RESULT_FILE="$OUT_DIR/submitResult_${i}_c.json" curl -X POST --header "Accept: application/json" "http://localhost:8000/api/workflows/v1/batch" \ - -F wdlSource=@scatter_files.wdl \ + -F workflowSource=@scatter_files.wdl \ -F workflowInputs=@scatter_files_input_part1_c.json \ -F workflowInputs_2=@scatter_files_input_part2.json \ -F workflowInputs_3=@scatter_files_input_part3.json \ diff --git a/services/src/test/scala/cromwell/services/ServicesStoreSpec.scala b/services/src/test/scala/cromwell/services/ServicesStoreSpec.scala index 136dfd76f..603bf2906 100644 --- a/services/src/test/scala/cromwell/services/ServicesStoreSpec.scala +++ b/services/src/test/scala/cromwell/services/ServicesStoreSpec.scala @@ -621,5 +621,5 @@ object ServicesStoreSpec { } } - private val WdlWorkflowType = "WDL" + private val WdlWorkflowType = Option("WDL") }