Browse Source

[livy] Only set the repl callback url if it's present

Erick Tryzelaar 10 years ago
parent
commit
41fdc08244

+ 1 - 1
apps/spark/java/livy-server/src/main/scala/com/cloudera/hue/livy/server/SessionFactory.scala

@@ -33,7 +33,7 @@ class ProcessSessionFactory(livyConf: LivyConf) extends SessionFactory {
   override def createSession(lang: String): Future[Session] = {
     Future {
       val id = UUID.randomUUID().toString
-      ProcessSession.create(id, lang)
+      ProcessSession.create(livyConf, id, lang)
     }
   }
 }

+ 11 - 6
apps/spark/java/livy-server/src/main/scala/com/cloudera/hue/livy/server/sessions/ProcessSession.scala

@@ -2,20 +2,23 @@ package com.cloudera.hue.livy.server.sessions
 
 import java.lang.ProcessBuilder.Redirect
 
-import com.cloudera.hue.livy.{Logging, Utils}
+import com.cloudera.hue.livy.{LivyConf, Logging, Utils}
 
 import scala.collection.JavaConversions._
 import scala.collection.mutable.ArrayBuffer
 import scala.concurrent.Future
 
 object ProcessSession extends Logging {
-  def create(id: String, lang: String): Session = {
-    val process = startProcess(id, lang)
+
+  val CONF_LIVY_REPL_CALLBACK_URL = "livy.repl.callback-url"
+
+  def create(livyConf: LivyConf, id: String, lang: String): Session = {
+    val process = startProcess(livyConf, id, lang)
     new ProcessSession(id, process)
   }
 
   // Loop until we've started a process with a valid port.
-  private def startProcess(id: String, lang: String): Process = {
+  private def startProcess(livyConf: LivyConf, id: String, lang: String): Process = {
     val args = ArrayBuffer(
       "spark-submit",
       "--class",
@@ -32,8 +35,10 @@ object ProcessSession extends Logging {
 
     val pb = new ProcessBuilder(args)
 
-    val callbackUrl = System.getProperty("livy.server.callback-url")
-    pb.environment().put("LIVY_CALLBACK_URL", f"$callbackUrl/sessions/$id/callback")
+    livyConf.getOption(CONF_LIVY_REPL_CALLBACK_URL).foreach { case callbackUrl =>
+      pb.environment().put("LIVY_CALLBACK_URL", f"$callbackUrl/sessions/$id/callback")
+    }
+
     pb.environment().put("LIVY_PORT", "0")