You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@predictionio.apache.org by do...@apache.org on 2017/03/13 16:58:05 UTC

incubator-predictionio git commit: [PIO-51] Properly locate engine directory

Repository: incubator-predictionio
Updated Branches:
  refs/heads/develop 0d8646572 -> 6d92b4576


[PIO-51] Properly locate engine directory

When --engine-dir is passed as CLI argument, use this instead of user.dir

Closes #357


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/commit/6d92b457
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/tree/6d92b457
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/diff/6d92b457

Branch: refs/heads/develop
Commit: 6d92b45763e9d8f1164ef0610562aa1c87cc96d9
Parents: 0d86465
Author: Chan Lee <ch...@gmail.com>
Authored: Mon Mar 13 09:57:35 2017 -0700
Committer: Donald Szeto <do...@apache.org>
Committed: Mon Mar 13 09:57:35 2017 -0700

----------------------------------------------------------------------
 .../scala/org/apache/predictionio/tools/RunServer.scala   |  5 +++--
 .../scala/org/apache/predictionio/tools/RunWorkflow.scala | 10 ++++++----
 .../org/apache/predictionio/tools/commands/Engine.scala   |  3 ++-
 .../org/apache/predictionio/tools/console/Console.scala   |  8 +++-----
 4 files changed, 14 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/6d92b457/tools/src/main/scala/org/apache/predictionio/tools/RunServer.scala
----------------------------------------------------------------------
diff --git a/tools/src/main/scala/org/apache/predictionio/tools/RunServer.scala b/tools/src/main/scala/org/apache/predictionio/tools/RunServer.scala
index 1c70974..db055b5 100644
--- a/tools/src/main/scala/org/apache/predictionio/tools/RunServer.scala
+++ b/tools/src/main/scala/org/apache/predictionio/tools/RunServer.scala
@@ -47,7 +47,7 @@ case class ServerArgs(
   eventServer: EventServerArgs = EventServerArgs(),
   batch: String = "",
   accessKey: String = "",
-  variantJson: File = new File("engine.json"),
+  variantJson: Option[File] = None,
   jsonExtractor: JsonExtractorOption = JsonExtractorOption.Both)
 
 
@@ -68,7 +68,8 @@ object RunServer extends Logging {
       "--engineInstanceId",
       engineInstanceId,
       "--engine-variant",
-      engineDirPath + File.separator + serverArgs.variantJson.getName,
+      serverArgs.variantJson.getOrElse(
+        new File(engineDirPath, "engine.json")).getCanonicalPath,
       "--ip",
       serverArgs.deploy.ip,
       "--port",

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/6d92b457/tools/src/main/scala/org/apache/predictionio/tools/RunWorkflow.scala
----------------------------------------------------------------------
diff --git a/tools/src/main/scala/org/apache/predictionio/tools/RunWorkflow.scala b/tools/src/main/scala/org/apache/predictionio/tools/RunWorkflow.scala
index 97831a6..462770e 100644
--- a/tools/src/main/scala/org/apache/predictionio/tools/RunWorkflow.scala
+++ b/tools/src/main/scala/org/apache/predictionio/tools/RunWorkflow.scala
@@ -36,7 +36,7 @@ import scala.sys.process._
 
 case class WorkflowArgs(
   batch: String = "",
-  variantJson: File = new File("engine.json"),
+  variantJson: Option[File] = None,
   verbosity: Int = 0,
   engineParamsKey: Option[String] = None,
   engineFactory: Option[String] = None,
@@ -56,15 +56,17 @@ object RunWorkflow extends Logging {
     verbose: Boolean = false): Expected[(Process, () => Unit)] = {
 
     val jarFiles = jarFilesForScala(engineDirPath).map(_.toURI)
-    val variantJson = engineDirPath + File.separator + wa.variantJson.getName
-    val ei = Console.getEngineInfo(new File(variantJson))
+    val variantJson = wa.variantJson.getOrElse(new File(engineDirPath, "engine.json"))
+    val ei = Console.getEngineInfo(
+      variantJson,
+      engineDirPath)
     val args = Seq(
       "--engine-id",
       ei.engineId,
       "--engine-version",
       ei.engineVersion,
       "--engine-variant",
-      variantJson,
+      variantJson.toURI.toString,
       "--verbosity",
       wa.verbosity.toString) ++
       wa.engineFactory.map(

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/6d92b457/tools/src/main/scala/org/apache/predictionio/tools/commands/Engine.scala
----------------------------------------------------------------------
diff --git a/tools/src/main/scala/org/apache/predictionio/tools/commands/Engine.scala b/tools/src/main/scala/org/apache/predictionio/tools/commands/Engine.scala
index 69a3924..c4dc8d4 100644
--- a/tools/src/main/scala/org/apache/predictionio/tools/commands/Engine.scala
+++ b/tools/src/main/scala/org/apache/predictionio/tools/commands/Engine.scala
@@ -222,7 +222,8 @@ object Engine extends EitherLogging {
       return Left(verifyResult.left.get)
     }
     val ei = Console.getEngineInfo(
-      new File(engineDirPath, serverArgs.variantJson.getName))
+      serverArgs.variantJson.getOrElse(new File(engineDirPath, "engine.json")),
+      engineDirPath)
     val engineInstances = storage.Storage.getMetaDataEngineInstances
     val engineInstance = engineInstanceId map { eid =>
       engineInstances.get(eid)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/6d92b457/tools/src/main/scala/org/apache/predictionio/tools/console/Console.scala
----------------------------------------------------------------------
diff --git a/tools/src/main/scala/org/apache/predictionio/tools/console/Console.scala b/tools/src/main/scala/org/apache/predictionio/tools/console/Console.scala
index f4c891a..810fee0 100644
--- a/tools/src/main/scala/org/apache/predictionio/tools/console/Console.scala
+++ b/tools/src/main/scala/org/apache/predictionio/tools/console/Console.scala
@@ -120,10 +120,9 @@ object Console extends Logging {
         "deployment.")
       opt[String]("engine-dir") abbr("ed") action { (x, c) =>
         c.copy(engine = c.engine.copy(engineDir = Some(x)))
-      } text("Specify absolute path for engine directory, default to " +
-        "current directory.")
+      } text("Specify path for engine directory, default to current directory.")
       opt[File]("variant") abbr("v") action { (x, c) =>
-        c.copy(workflow = c.workflow.copy(variantJson = x))
+        c.copy(workflow = c.workflow.copy(variantJson = Some(x)))
       }
       opt[File]("sbt") action { (x, c) =>
         c.copy(build = c.build.copy(sbt = Some(x)))
@@ -734,7 +733,7 @@ object Console extends Logging {
     }
   }
 
-  def getEngineInfo(jsonFile: File): EngineInfo = {
+  def getEngineInfo(jsonFile: File, engineDir: String): EngineInfo = {
     // Use engineFactory as engineId
     val variantJson = parse(Source.fromFile(jsonFile).mkString)
     val engineId = variantJson \ "engineFactory" match {
@@ -754,7 +753,6 @@ object Console extends Logging {
     }
 
     // Use hash of engine directory as engineVersion
-    val engineDir = sys.props("user.dir")
     val engineVersion = java.security.MessageDigest.getInstance("SHA-1").
       digest(engineDir.getBytes).map("%02x".format(_)).mkString