refactored test logic

This commit is contained in:
Adrian Cole 2010-12-17 19:15:35 +01:00
parent 3921856973
commit c1f6eab2c4
2 changed files with 47 additions and 43 deletions

View File

@ -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()

View File

@ -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,6 +57,16 @@ 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<String, String> envVariables = ImmutableMap.of("jbossHome", jbossHome);
Statement toReturn = new InitBuilder(
@ -63,22 +74,14 @@ public class RunScriptData {
jbossHome,
jbossHome,
envVariables,
ImmutableList
.<Statement> of(
ImmutableList.<Statement> 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"),//
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),//
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
.<Statement> 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")));