diff --git a/compute/src/test/java/org/jclouds/compute/BaseComputeServiceLiveTest.java b/compute/src/test/java/org/jclouds/compute/BaseComputeServiceLiveTest.java index 72b376e831..8a84eb71f9 100755 --- a/compute/src/test/java/org/jclouds/compute/BaseComputeServiceLiveTest.java +++ b/compute/src/test/java/org/jclouds/compute/BaseComputeServiceLiveTest.java @@ -474,6 +474,7 @@ public abstract class BaseComputeServiceLiveTest { template = client.templateBuilder().options(blockOnComplete(false).blockOnPort(8080, 600).inboundPorts(22, 8080)) .build(); + // note this is a dependency on the template resolution template.getOptions().runScript( RunScriptData.createScriptInstallAndStartJBoss(keyPair.get("public"), template.getImage() diff --git a/compute/src/test/java/org/jclouds/compute/RunScriptData.java b/compute/src/test/java/org/jclouds/compute/RunScriptData.java index f09d10b758..1907c8de55 100644 --- a/compute/src/test/java/org/jclouds/compute/RunScriptData.java +++ b/compute/src/test/java/org/jclouds/compute/RunScriptData.java @@ -33,6 +33,7 @@ import org.jclouds.compute.predicates.OperatingSystemPredicates; import org.jclouds.scriptbuilder.InitBuilder; import org.jclouds.scriptbuilder.domain.AuthorizeRSAPublicKey; import org.jclouds.scriptbuilder.domain.Statement; +import org.jclouds.scriptbuilder.domain.Statements; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -56,32 +57,34 @@ public class RunScriptData { throw new IllegalArgumentException("don't know how to handle" + os.toString()); } + public static Statement authorizePortInIpTables(int port) { + return Statements.newStatementList(// just in case iptables are being used, try to open 8080 + exec("iptables -I INPUT 1 -p tcp --dport " + port + " -j ACCEPT"),// + // TODO gogrid rules only allow ports 22, 3389, 80 and 443. + // the above rule will be ignored, so we have to apply this + // directly + exec("iptables -I RH-Firewall-1-INPUT 1 -p tcp --dport " + port + " -j ACCEPT"),// + exec("iptables-save")); + } + public static Statement createScriptInstallAndStartJBoss(String publicKey, OperatingSystem os) { Map envVariables = ImmutableMap.of("jbossHome", jbossHome); Statement toReturn = new InitBuilder( - "jboss", - jbossHome, - jbossHome, - envVariables, - ImmutableList - . of( - new AuthorizeRSAPublicKey(publicKey),// - installJavaAndCurl(os),// - // just in case iptables are being used, try to open 8080 - exec("iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT"),// - // TODO gogrid rules only allow ports 22, 3389, 80 and 443. - // the above rule will be ignored, so we have to apply this - // directly - exec("iptables -I RH-Firewall-1-INPUT 1 -p tcp --dport 8080 -j ACCEPT"),// - exec("iptables-save"),// - extractTargzIntoDirectory( - URI - .create("http://commondatastorage.googleapis.com/jclouds-repo/jboss-as-distribution-6.0.0.20100911-M5.tar.gz"), - "/usr/local"), exec("{md} " + jbossHome), exec("mv /usr/local/jboss-*/* " - + jbossHome),// - exec("chmod -R oug+r+w " + jbossHome)),// - ImmutableList - . of(interpret("java -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.endorsed.dirs=lib/endorsed -classpath bin/run.jar org.jboss.Main -b 0.0.0.0"))); + "jboss", + jbossHome, + jbossHome, + envVariables, + ImmutableList. of( + new AuthorizeRSAPublicKey(publicKey),// + installJavaAndCurl(os),// + authorizePortInIpTables(8080),// + extractTargzIntoDirectory( + URI.create("http://commondatastorage.googleapis.com/jclouds-repo/jboss-as-distribution-6.0.0.20100911-M5.tar.gz"), + "/usr/local"),// + exec("{md} " + jbossHome), exec("mv /usr/local/jboss-*/* " + jbossHome),// + exec("chmod -R oug+r+w " + jbossHome)),// + ImmutableList + . of(interpret("java -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.endorsed.dirs=lib/endorsed -classpath bin/run.jar org.jboss.Main -b 0.0.0.0"))); return toReturn; } @@ -93,28 +96,28 @@ public class RunScriptData { } public static final Statement APT_RUN_SCRIPT = newStatementList(// - exec(installAfterUpdatingIfNotPresent("curl")),// - exec("(which java && java -fullversion 2>&1|egrep -q 1.6 ) ||"),// - execHttpResponse(URI.create("http://whirr.s3.amazonaws.com/0.2.0-incubating-SNAPSHOT/sun/java/install")),// - exec(new StringBuilder()// - .append("echo nameserver 208.67.222.222 >> /etc/resolv.conf\n")// - // jeos hasn't enough room! - .append("rm -rf /var/cache/apt /usr/lib/vmware-tools\n")// - .append("echo \"export PATH=\\\"\\$JAVA_HOME/bin/:\\$PATH\\\"\" >> /root/.bashrc")// - .toString())); + exec(installAfterUpdatingIfNotPresent("curl")),// + exec("(which java && java -fullversion 2>&1|egrep -q 1.6 ) ||"),// + execHttpResponse(URI.create("http://whirr.s3.amazonaws.com/0.2.0-incubating-SNAPSHOT/sun/java/install")),// + exec(new StringBuilder()// + .append("echo nameserver 208.67.222.222 >> /etc/resolv.conf\n")// + // jeos hasn't enough room! + .append("rm -rf /var/cache/apt /usr/lib/vmware-tools\n")// + .append("echo \"export PATH=\\\"\\$JAVA_HOME/bin/:\\$PATH\\\"\" >> /root/.bashrc")// + .toString())); public static final Statement YUM_RUN_SCRIPT = newStatementList( - exec("which curl ||yum --nogpgcheck -y install curl"),// - exec("(which java && java -fullversion 2>&1|egrep -q 1.6 ) ||"),// - execHttpResponse(URI.create("http://whirr.s3.amazonaws.com/0.2.0-incubating-SNAPSHOT/sun/java/install")),// - exec(new StringBuilder()// - .append("echo nameserver 208.67.222.222 >> /etc/resolv.conf\n") // - .append("echo \"export PATH=\\\"\\$JAVA_HOME/bin/:\\$PATH\\\"\" >> /root/.bashrc")// - .toString())); + exec("which curl ||yum --nogpgcheck -y install curl"),// + exec("(which java && java -fullversion 2>&1|egrep -q 1.6 ) ||"),// + execHttpResponse(URI.create("http://whirr.s3.amazonaws.com/0.2.0-incubating-SNAPSHOT/sun/java/install")),// + exec(new StringBuilder()// + .append("echo nameserver 208.67.222.222 >> /etc/resolv.conf\n") // + .append("echo \"export PATH=\\\"\\$JAVA_HOME/bin/:\\$PATH\\\"\" >> /root/.bashrc")// + .toString())); public static final Statement ZYPPER_RUN_SCRIPT = exec(new StringBuilder()// - .append("echo nameserver 208.67.222.222 >> /etc/resolv.conf\n")// - .append("which curl || zypper install curl\n")// - .append("(which java && java -fullversion 2>&1|egrep -q 1.6 ) || zypper install java-1.6.0-openjdk\n")// - .toString()); + .append("echo nameserver 208.67.222.222 >> /etc/resolv.conf\n")// + .append("which curl || zypper install curl\n")// + .append("(which java && java -fullversion 2>&1|egrep -q 1.6 ) || zypper install java-1.6.0-openjdk\n")// + .toString()); }