package dk.kaspergsm.stormdeploy.configurations;
import static org.jclouds.scriptbuilder.domain.Statements.exec;
import java.util.ArrayList;
import java.util.List;
import dk.kaspergsm.stormdeploy.userprovided.ConfigurationFactory;
import org.jclouds.scriptbuilder.domain.Statement;
import dk.kaspergsm.stormdeploy.Tools;
/**
* Contains all methods to configure ZeroMQ on nodes
*
* @author Kasper Grud Skat Madsen
*/
public class ZeroMQ {
private static String _condZmq = "$(find /usr/* -name 'libzmq.a' | wc -l) -eq 0";
private static String _condJzmq = "$(find /usr/* -name 'zmq.jar' | wc -l) -eq 0";
private ZeroMQ() {
}
public static List<Statement> download() {
List<Statement> st = new ArrayList<Statement>();
st.add(exec(Tools.conditionalExec(_condZmq, "cd " + ConfigurationFactory.getConfig().getInstallDir())));
st.add(exec(Tools.conditionalExec(_condZmq, "wget http://download.zeromq.org/zeromq-2.1.7.tar.gz")));
st.add(exec(Tools.conditionalExec(_condZmq, "tar -zxf zeromq-2.1.7.tar.gz")));
st.add(exec(Tools.conditionalExec(_condZmq, "rm zeromq-2.1.7.tar.gz")));
return st;
}
public static List<Statement> configure() {
List<Statement> st = new ArrayList<Statement>();
st.add(exec(Tools.conditionalExec(_condZmq, "cd zeromq-2.1.7")));
st.add(exec(Tools.conditionalExec(_condZmq, "./configure")));
st.add(exec(Tools.conditionalExec(_condZmq, "make")));
st.add(exec(Tools.conditionalExec(_condZmq, "make install")));
st.add(exec(Tools.conditionalExec(_condZmq, "ldconfig")));
st.add(exec(Tools.conditionalExec(_condJzmq, "git clone https://github.com/nathanmarz/jzmq.git")));
st.add(exec(Tools.conditionalExec(_condJzmq, "cd jzmq")));
st.add(exec(Tools.conditionalExec(_condJzmq, "./autogen.sh")));
st.add(exec(Tools.conditionalExec(_condJzmq, "./configure")));
st.add(exec(Tools.conditionalExec(_condJzmq, "make")));
st.add(exec(Tools.conditionalExec(_condJzmq, "make install")));
return st;
}
}