Commit be0ddddc by Jon Maron

redirect output from python scripts to files

parent bd1567a7
......@@ -109,7 +109,7 @@ def executeEnvSh(confDir):
proc.communicate()
def java(classname, args, classpath, jvm_opts_list):
def java(classname, args, classpath, jvm_opts_list, logdir=None):
if os.environ["JAVA_HOME"] is not None and os.environ["JAVA_HOME"]:
prg = os.path.join(os.environ["JAVA_HOME"], "bin", "java")
else:
......@@ -121,7 +121,7 @@ def java(classname, args, classpath, jvm_opts_list):
commandline.append(classpath)
commandline.append(classname)
commandline.extend(args)
return runProcess(commandline)
return runProcess(commandline, logdir)
def jar(path):
if os.environ["JAVA_HOME"] is not None and os.environ["JAVA_HOME"]:
......@@ -153,7 +153,7 @@ def which(program):
return None
def runProcess(commandline):
def runProcess(commandline, logdir=None):
"""
Run a process
:param commandline: command line
......@@ -161,7 +161,13 @@ def runProcess(commandline):
"""
global finished
debug ("Executing : %s" % commandline)
return subprocess.Popen(commandline)
timestr = time.strftime("metadata.%Y%m%d-%H%M%S")
stdoutFile = None
stderrFile = None
if logdir:
stdoutFile = open(os.path.join(logdir, timestr + ".out"), "w")
stderrFile = open(os.path.join(logdir,timestr + ".err"), "w")
return subprocess.Popen(commandline, stdout=stdoutFile, stderr=stderrFile)
def print_output(name, src, toStdErr):
"""
......
......@@ -64,7 +64,7 @@ def main():
args = ["-app", os.path.join(web_app_dir, "metadata")]
args.extend(sys.argv[1:])
process = mc.java("org.apache.hadoop.metadata.Main", args, metadata_classpath, jvm_opts_list)
process = mc.java("org.apache.hadoop.metadata.Main", args, metadata_classpath, jvm_opts_list, logdir)
mc.writePid(metadata_pid_file, process)
print "Metadata Server started!!!\n"
......
......@@ -50,13 +50,13 @@ class TestMetadata(unittest.TestCase):
'org.apache.hadoop.metadata.Main',
['-app', 'metadata_home/server/webapp/metadata'],
'metadata_home/conf:metadata_home/server/webapp/metadata/WEB-INF/classes:metadata_home/server/webapp/metadata/WEB-INF/lib\\*:metadata_home/libext\\*',
['-Dmetadata.log.dir=metadata_home/logs', '-Dmetadata.log.file=application.log', '-Dmetadata.home=metadata_home', '-Dmetadata.conf=metadata_home/conf', '-Xmx1024m'])
['-Dmetadata.log.dir=metadata_home/logs', '-Dmetadata.log.file=application.log', '-Dmetadata.home=metadata_home', '-Dmetadata.conf=metadata_home/conf', '-Xmx1024m'], 'metadata_home/logs')
else:
java_mock.assert_called_with(
'org.apache.hadoop.metadata.Main',
['-app', 'metadata_home/server/webapp/metadata'],
'metadata_home/conf:metadata_home/server/webapp/metadata/WEB-INF/classes:metadata_home/server/webapp/metadata/WEB-INF/lib/*:metadata_home/libext/*',
['-Dmetadata.log.dir=metadata_home/logs', '-Dmetadata.log.file=application.log', '-Dmetadata.home=metadata_home', '-Dmetadata.conf=metadata_home/conf', '-Xmx1024m'])
['-Dmetadata.log.dir=metadata_home/logs', '-Dmetadata.log.file=application.log', '-Dmetadata.home=metadata_home', '-Dmetadata.conf=metadata_home/conf', '-Xmx1024m'], 'metadata_home/logs')
pass
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment