diff --git a/src/main/resources/templates/run-jar.ssp b/src/main/resources/templates/run-jar.ssp index 1678806..749a043 100644 --- a/src/main/resources/templates/run-jar.ssp +++ b/src/main/resources/templates/run-jar.ssp @@ -6,10 +6,12 @@ <%@ val location:String = evalObject.evaluateVariable(javaJob.javaJob.jarLocation,localVariables).toString%> <%@ val mainClass:String = evalObject.evaluateVariable(javaJob.javaJob.mainClass,localVariables).toString%> <%@ val bucket:String = location.substring(5).split("/").head %> -<%@ val objectName:String = location.substring(5).split("/").last %> +<%@ val objectName:String = location.substring(5).split("/").drop(1).mkString("/") %> <%@ var name: String%> +<%@ var command1:String = s"gsutil -m cp -r ${location} ."%> +<%@ var command2:String = s"java -cp ${objectName} ${mainClass} ${ javaJob.javaJob.args.get.map(f=> evalObject.evaluateVariable(f,localVariables )).mkString(" ")}"%> ${name} = bash_operator.BashOperator( task_id='run_jar_${name}', - bash_command='java -cp /tmp/${objectName} ${mainClass} ${ javaJob.javaJob.args.get.map(f=> evalObject.evaluateVariable(f,localVariables )).mkString(" ")}' + bash_command='${command1};${command2}' ) \ No newline at end of file diff --git a/src/main/scala/com/recipegrace/bbc/workflow/RunJavaFlowBlock.scala b/src/main/scala/com/recipegrace/bbc/workflow/RunJavaFlowBlock.scala index eaf0255..3989f92 100644 --- a/src/main/scala/com/recipegrace/bbc/workflow/RunJavaFlowBlock.scala +++ b/src/main/scala/com/recipegrace/bbc/workflow/RunJavaFlowBlock.scala @@ -35,14 +35,16 @@ class RunJavaFlowBlock(javaJob: JavaJob, variables:Map[String,Expression], confi object evalObject extends ExpressionCreator val id = IDGenerator.autoId val defaultArgs = Map ( "programConfiguration"->configuration, "localVariables" -> variables,"evalObject" -> evalObject) - val copyJarKey = displayName +"_C"+id + /* val copyJarKey = displayName +"_C"+id val copyJarContent = Templates.translate("templates/download-jar.ssp",Map("name" -> copyJarKey, "javaJob" -> javaJob) ++defaultArgs) - +*/ val runJarKey = displayName+"_R"+id val runJarContent = Templates.translate("templates/run-jar.ssp",Map("name" -> runJarKey, "javaJob" -> javaJob) ++defaultArgs) - List( KeyAndContent(copyJarKey,copyJarContent,true), KeyAndContent (runJarKey,runJarContent,true)) + List( + //KeyAndContent(copyJarKey,copyJarContent,true), + KeyAndContent (runJarKey,runJarContent,true)) } } diff --git a/src/test/scala/com/recipegrace/bbc/composer/TemplateTest.scala b/src/test/scala/com/recipegrace/bbc/composer/TemplateTest.scala index 661b609..4693534 100644 --- a/src/test/scala/com/recipegrace/bbc/composer/TemplateTest.scala +++ b/src/test/scala/com/recipegrace/bbc/composer/TemplateTest.scala @@ -37,6 +37,7 @@ class TemplateTest extends BaseBBCGrammarTest with ExpressionCreator{ val job = parseAll(_javaJobBody, jobDefintiion).get + /* Templates.translate("templates/download-jar.ssp", Map("name" -> taskName, "localVariables" -> localVariables, "evalObject" -> evalObject, "programConfiguration" -> programConfiguration, @@ -47,6 +48,7 @@ class TemplateTest extends BaseBBCGrammarTest with ExpressionCreator{ | object='${objectName}', | filename='/tmp/${objectName}' )""".stripMargin + */ Templates.translate("templates/run-jar.ssp", Map("name" -> taskName, "localVariables" -> localVariables, "evalObject" -> evalObject, @@ -54,7 +56,7 @@ class TemplateTest extends BaseBBCGrammarTest with ExpressionCreator{ "javaJob" -> job._2)) shouldBe "\n" + s""" $taskName = bash_operator.BashOperator( | task_id='run_jar_${taskName}', - | bash_command='java -cp /tmp/${objectName} $mainClass ${programArguments.mkString(" ")}' + | bash_command='gsutil -m cp -r gs://${bucketName}/${objectName} .;java -cp ${objectName} $mainClass ${programArguments.mkString(" ")}' )""".stripMargin } test("delete gcs") {