浏览代码

HUE-8798 [core] Graceful fail when locate_java process returned nothing

Used when running a Hue command with -cm flag
Romain Rigaux 6 年之前
父节点
当前提交
3faaea2788
共有 1 个文件被更改,包括 6 次插入3 次删除
  1. 6 3
      desktop/core/src/desktop/manage_entry.py

+ 6 - 3
desktop/core/src/desktop/manage_entry.py

@@ -169,12 +169,15 @@ def entry():
         locate_java = subprocess.Popen(
         locate_java = subprocess.Popen(
           ['bash', '-c', '. /opt/cloudera/cm-agent/service/common/cloudera-config.sh; locate_java_home'],
           ['bash', '-c', '. /opt/cloudera/cm-agent/service/common/cloudera-config.sh; locate_java_home'],
           stdout=subprocess.PIPE, stderr=subprocess.PIPE)
           stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+      else:
+        locate_java = None
 
 
       JAVA_HOME = "UNKNOWN"
       JAVA_HOME = "UNKNOWN"
 
 
-      for line in iter(locate_java.stdout.readline, ''):
-        if 'JAVA_HOME' in line:
-          JAVA_HOME = line.rstrip().split('=')[1]
+      if locate_java is not None:
+        for line in iter(locate_java.stdout.readline, ''):
+          if 'JAVA_HOME' in line:
+            JAVA_HOME = line.rstrip().split('=')[1]
 
 
       if JAVA_HOME != "UNKNOWN":
       if JAVA_HOME != "UNKNOWN":
         os.environ["JAVA_HOME"] = JAVA_HOME
         os.environ["JAVA_HOME"] = JAVA_HOME