Skip to content

Commit 1e63aa4

Browse files
author
KasperMadsen
committed
Implemented writing instancetype in storm.yaml, for use by scheduler as
needed.
1 parent 602d2f4 commit 1e63aa4

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

src/dk/kaspergsm/stormdeploy/LaunchNodeThread.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
import java.util.ArrayList;
44
import java.util.List;
5+
import java.util.NoSuchElementException;
56
import java.util.Set;
67
import org.jclouds.compute.ComputeService;
7-
import org.jclouds.compute.RunNodesException;
8+
import org.jclouds.compute.domain.Hardware;
89
import org.jclouds.compute.domain.NodeMetadata;
910
import org.jclouds.compute.options.TemplateOptions;
1011
import org.jclouds.scriptbuilder.domain.Statement;
@@ -60,6 +61,7 @@ public LaunchNodeThread(ComputeService compute, Configuration config, String ins
6061
// Create initScript
6162
_initScript = new ArrayList<Statement>();
6263
_initScript.add(exec("echo \"" + daemons.toString() + "\" > ~/daemons"));
64+
_initScript.add(exec("echo \"" + instanceType.toString() + "\" > ~/.instance-type"));
6365
if (zkMyId != null)
6466
_initScript.addAll(Zookeeper.writeZKMyIds(_username, zkMyId));
6567

@@ -88,7 +90,18 @@ public void run() {
8890
.runScript(new StatementList(_initScript))
8991
.overrideLoginCredentials(Tools.getPrivateKeyCredentials(_username))
9092
.authorizePublicKey(Tools.getPublicKey())).build());
91-
} catch (RunNodesException ex) {
93+
} catch (NoSuchElementException ex) {
94+
// happens often when hardwareId is not found. List all possible hardware types
95+
if (ex.getMessage().toLowerCase().contains("hardwareid") && ex.getMessage().toLowerCase().contains("not found")) {
96+
log.error("You have specified unknown hardware profile. Here follows a list of supported profiles: ");
97+
Set<? extends Hardware> availableHardware = _compute.listHardwareProfiles();
98+
for (Hardware h : availableHardware) {
99+
log.info(h.toString());
100+
}
101+
} else {
102+
log.error("Problem: ", ex);
103+
}
104+
} catch (Exception ex) {
92105
log.error("Problem launching instance", ex);
93106
}
94107
}

src/dk/kaspergsm/stormdeploy/configurations/Storm.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package dk.kaspergsm.stormdeploy.configurations;
22

33
import static org.jclouds.scriptbuilder.domain.Statements.exec;
4+
45
import java.io.File;
56
import java.io.FileWriter;
67
import java.io.IOException;
78
import java.util.ArrayList;
89
import java.util.List;
10+
911
import org.jclouds.scriptbuilder.domain.Statement;
12+
1013
import dk.kaspergsm.stormdeploy.Tools;
1114

1215

@@ -28,10 +31,20 @@ public static List<Statement> configure(String hostname, List<String> zkNodesHos
2831
ArrayList<Statement> st = new ArrayList<Statement>();
2932
st.add(exec("cd ~/storm/conf/"));
3033
st.add(exec("touch storm.yaml"));
34+
35+
// Add nimbus.host
3136
st.add(exec("echo nimbus.host: \"" + hostname + "\" >> storm.yaml"));
37+
38+
// Add storm.zookeeper.servers
3239
st.add(exec("echo storm.zookeeper.servers: >> storm.yaml"));
3340
for (int i = 1; i <= zkNodesHostname.size(); i++)
3441
st.add(exec("echo - \"" + zkNodesHostname.get(i-1) + "\" >> storm.yaml"));
42+
43+
// Add supervisor metadata
44+
st.add(exec("echo supervisor.scheduler.meta: >> storm.yaml"));
45+
st.add(exec("instancetype=$(cat ~/.instance-type)"));
46+
st.add(exec("echo \" instancetype: \\\"$instancetype\\\"\" >> storm.yaml"));
47+
3548
return st;
3649
}
3750

0 commit comments

Comments
 (0)