From 2f2e54d234e42146e7142f54dd9acdd5cffd49d1 Mon Sep 17 00:00:00 2001 From: Junichiro Takagi Date: Fri, 19 Oct 2012 01:09:55 +0900 Subject: [PATCH 1/2] Refs #243. Added --config option. --- bin/storm | 6 ++++++ src/jvm/backtype/storm/utils/Utils.java | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/bin/storm b/bin/storm index e5ea16a2f..6b8472f73 100755 --- a/bin/storm +++ b/bin/storm @@ -25,6 +25,7 @@ else: CONF_DIR = os.path.expanduser("~/.storm") STORM_DIR = "/".join(os.path.realpath( __file__ ).split("/")[:-2]) CONFIG_OPTS = [] +CONFFILE = "" def get_config_opts(): global CONFIG_OPTS @@ -104,10 +105,12 @@ def parse_args(string): return [re.compile(r'\\(.)').sub('\\1', x) for x in args] def exec_storm_class(klass, jvmtype="-server", jvmopts=[], extrajars=[], args=[], fork=False): + global CONFFILE all_args = [ "java", jvmtype, get_config_opts(), "-Dstorm.home=" + STORM_DIR, "-Djava.library.path=" + confvalue("java.library.path", extrajars), + "-Dstorm.conf.file=" + CONFFILE, "-cp", get_classpath(extrajars), ] + jvmopts + [klass] + list(args) print "Running: " + " ".join(all_args) @@ -382,6 +385,9 @@ def parse_config_opts(args): token = curr.pop() if token == "-c": config_list.append(curr.pop()) + elif token == "--config": + global CONFFILE + CONFFILE = curr.pop() else: args_list.append(token) diff --git a/src/jvm/backtype/storm/utils/Utils.java b/src/jvm/backtype/storm/utils/Utils.java index a301272c5..36d4d5c9f 100644 --- a/src/jvm/backtype/storm/utils/Utils.java +++ b/src/jvm/backtype/storm/utils/Utils.java @@ -153,7 +153,13 @@ public static Map readCommandLineOpts() { public static Map readStormConfig() { Map ret = readDefaultConfig(); - Map storm = findAndReadConfigFile("storm.yaml", false); + String confFile = System.getProperty("storm.conf.file"); + Map storm; + if (confFile==null || confFile.equals("")) { + storm = findAndReadConfigFile("storm.yaml", false); + } else { + storm = findAndReadConfigFile(confFile, true); + } ret.putAll(storm); ret.putAll(readCommandLineOpts()); return ret; From 6cf173409a4dff054e0af1cb1ce2849763a36d1d Mon Sep 17 00:00:00 2001 From: Nathan Marz Date: Thu, 18 Oct 2012 12:20:43 -0700 Subject: [PATCH 2/2] make --config work for localconfvalue and remoteconfvalue --- bin/storm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/storm b/bin/storm index 6b8472f73..d4fa114f5 100755 --- a/bin/storm +++ b/bin/storm @@ -53,8 +53,9 @@ def get_classpath(extrajars): return normclasspath(":".join(ret)) def confvalue(name, extrapaths): + global CONFFILE command = [ - "java", "-client", get_config_opts(), "-cp", get_classpath(extrapaths), "backtype.storm.command.config_value", name + "java", "-client", get_config_opts(), "-Dstorm.conf.file=" + CONFFILE, "-cp", get_classpath(extrapaths), "backtype.storm.command.config_value", name ] p = sub.Popen(command, stdout=sub.PIPE) output, errors = p.communicate()