Skip to content

Commit 3ac950b

Browse files
committed
Revert [CTM-336] Add zip imports to Describe endpoint
1 parent aa606d6 commit 3ac950b

File tree

87 files changed

+54
-200
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+54
-200
lines changed

CromIAM/src/main/resources/swagger/cromiam.yaml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -867,11 +867,6 @@ paths:
867867
required: false
868868
type: file
869869
in: formData
870-
- name: workflowDependencies
871-
description: ZIP file containing workflow source files that are used to resolve local imports. This zip bundle will be unpacked in a sandbox accessible to this workflow.
872-
required: false
873-
type: file
874-
in: formData
875870
- $ref: '#/parameters/workflowTypeParam'
876871
- $ref: '#/parameters/workflowTypeVersionParam'
877872
responses:

centaur/src/main/scala/centaur/test/workflow/Workflow.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@ final case class Workflow private (testName: String,
4646
workflowUrl = data.workflowUrl,
4747
workflowType = data.workflowType,
4848
workflowTypeVersion = data.workflowTypeVersion,
49-
inputsJson = data.inputs.map(_.unsafeRunSync()),
50-
zippedImports = data.zippedImports
49+
inputsJson = data.inputs.map(_.unsafeRunSync())
5150
)
5251

5352
def secondRun: Workflow =

cromwellApiClient/src/main/scala/cromwell/api/CromwellClient.scala

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -271,13 +271,7 @@ object CromwellClient {
271271
Multipart.FormData.BodyPart(name, HttpEntity(MediaTypes.`application/json`, ByteString(source)))
272272
}
273273

274-
val zipBodyParts = Map(
275-
"workflowDependencies" -> describeRequest.zippedImports
276-
) collect { case (name, Some(file)) =>
277-
Multipart.FormData.BodyPart.fromPath(name, MediaTypes.`application/zip`, file.path)
278-
}
279-
280-
val multipartFormData = Multipart.FormData((sourceBodyParts ++ zipBodyParts).toSeq: _*)
274+
val multipartFormData = Multipart.FormData(sourceBodyParts.toSeq: _*)
281275
multipartFormData.toEntity()
282276
}
283277

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
package cromwell.api.model
22

3-
import better.files.File
4-
53
final case class WorkflowDescribeRequest(workflowSource: Option[String],
64
workflowUrl: Option[String],
75
workflowType: Option[String],
86
workflowTypeVersion: Option[String],
9-
inputsJson: Option[String],
10-
zippedImports: Option[File]
7+
inputsJson: Option[String]
118
)

engine/src/main/resources/swagger/cromwell.yaml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -679,11 +679,6 @@ paths:
679679
in: formData
680680
- $ref: '#/parameters/workflowTypeParam'
681681
- $ref: '#/parameters/workflowTypeVersionParam'
682-
- name: workflowDependencies
683-
description: ZIP file containing workflow source files that are used to resolve local imports. This zip bundle will be unpacked in a sandbox accessible to this workflow.
684-
required: false
685-
type: file
686-
in: formData
687682
responses:
688683
'200':
689684
description: Workflow description.

engine/src/main/scala/cromwell/engine/workflow/lifecycle/materialization/MaterializeWorkflowDescriptorActor.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ class MaterializeWorkflowDescriptorActor(override val serviceRegistryActor: Acto
343343
val zippedResolverCheck: IOChecked[Option[DirectoryResolver]] =
344344
fromEither[IO](sourceFiles.importsZipFileOption match {
345345
case None => None.validNelCheck
346-
case Some(zipContent) => zippedImportResolver(zipContent).toEither.map(Option.apply)
346+
case Some(zipContent) => zippedImportResolver(zipContent, workflowId).toEither.map(Option.apply)
347347
})
348348

349349
val labels = convertJsonToLabels(sourceFiles.labelsJson)

engine/src/main/scala/cromwell/webservice/routes/WomtoolRouteSupport.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ trait WomtoolRouteSupport extends WebServiceUtils with GithubAuthVendingSupport
6060
val workflowInputs = data.get("workflowInputs").map(_.utf8String)
6161
val workflowType = data.get("workflowType").map(_.utf8String)
6262
val workflowVersion = data.get("workflowTypeVersion").map(_.utf8String)
63-
val workflowDependencies = data.get("workflowDependencies").map(_.toArray)
6463

6564
val wsfc = WorkflowSourceFilesCollection(
6665
workflowSource,
@@ -71,7 +70,7 @@ trait WomtoolRouteSupport extends WebServiceUtils with GithubAuthVendingSupport
7170
workflowInputs.getOrElse(""),
7271
workflowOptions = WorkflowOptions.empty,
7372
labelsJson = "",
74-
importsFile = workflowDependencies,
73+
importsFile = None,
7574
workflowOnHold = false,
7675
warnings = Seq.empty,
7776
requestedWorkflowId = None

languageFactories/language-factory-core/src/main/scala/cromwell/languages/util/ImportResolver.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import net.ceedubs.ficus.Ficus._
2121

2222
import java.nio.file.{Path => NioPath}
2323
import java.security.MessageDigest
24+
import cromwell.core.WorkflowId
2425
import wom.ResolvedImportRecord
2526
import wom.core.{WorkflowSource, WorkflowUrl}
2627
import wom.values._
@@ -175,10 +176,10 @@ object ImportResolver {
175176
directoryHash.map(_.validNel).getOrElse("No hashKey available for directory importer".invalidNel)
176177
}
177178

178-
def zippedImportResolver(zippedImports: Array[Byte]): ErrorOr[DirectoryResolver] = {
179+
def zippedImportResolver(zippedImports: Array[Byte], workflowId: WorkflowId): ErrorOr[DirectoryResolver] = {
179180

180181
val zipHash = new String(MessageDigest.getInstance("MD5").digest(zippedImports))
181-
LanguageFactoryUtil.createImportsDirectory(zippedImports) map { dir =>
182+
LanguageFactoryUtil.createImportsDirectory(zippedImports, workflowId) map { dir =>
182183
DirectoryResolver(dir,
183184
Option(dir.toJava.getCanonicalPath),
184185
None,

languageFactories/language-factory-core/src/main/scala/cromwell/languages/util/LanguageFactoryUtil.scala

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import common.transforms.CheckedAtoB
77
import common.validation.Checked._
88
import common.validation.ErrorOr.ErrorOr
99
import cromwell.core.CromwellGraphNode.CromwellEnhancedOutputPort
10-
import cromwell.core.WorkflowSourceFilesCollection
10+
import cromwell.core.{WorkflowId, WorkflowSourceFilesCollection}
1111
import cromwell.core.path.BetterFileMethods.OpenOptions
1212
import cromwell.core.path.{DefaultPathBuilder, Path}
1313
import cromwell.languages.config.CromwellLanguages
@@ -29,14 +29,11 @@ object LanguageFactoryUtil {
2929
* @param zipContents the zip contents
3030
* @return where the imports were unzipped to
3131
*/
32-
def createImportsDirectory(zipContents: Array[Byte]): ErrorOr[Path] = {
32+
def createImportsDirectory(zipContents: Array[Byte], workflowId: WorkflowId): ErrorOr[Path] = {
3333

3434
def makeZipFile: Try[Path] = Try {
35-
// need the unique suffix to avoid collisions in concurrent scenarios
36-
// cant use workflowId because this method is used in validation phase before workflowId is assigned
37-
val uniqueSuffix = java.util.UUID.randomUUID().toString
3835
DefaultPathBuilder
39-
.createTempFile(s"imports_workflow_${uniqueSuffix}_", ".zip")
36+
.createTempFile(s"imports_workflow_${workflowId}_", ".zip")
4037
.writeByteArray(zipContents)(OpenOptions.default)
4138
}
4239

languageFactories/language-factory-core/src/test/scala/cromwell/languages/util/ImportResolverSpec.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.softwaremill.sttp._
55
import java.nio.file.{Files, Paths}
66
import common.assertion.CromwellTimeoutSpec
77
import common.assertion.ErrorOrAssertions._
8+
import cromwell.core.WorkflowId
89
import cromwell.core.path.DefaultPath
910
import cromwell.languages.util.ImportResolver.{
1011
DirectoryResolver,
@@ -385,7 +386,7 @@ class ImportResolverSpec extends AnyFlatSpec with CromwellTimeoutSpec with Match
385386
it should "resolve paths in zips" in {
386387
val zipResource = getClass.getResource("/QC.zip").toURI
387388
val zipBytes = Files.readAllBytes(Paths.get(zipResource))
388-
val resolvers = ImportResolver.zippedImportResolver(zipBytes)
389+
val resolvers = ImportResolver.zippedImportResolver(zipBytes, WorkflowId.randomId())
389390

390391
// Not the most elegant way to get the paths, but gets the job done.
391392
val resolver = resolvers.toList.head

0 commit comments

Comments
 (0)