Author: abayer Date: Thu Aug 23 23:36:18 2012 New Revision: 1376777 URL: http://svn.apache.org/viewvc?rev=1376777&view=rev Log: WHIRR-638. Parameterize OAB Java install. Contributed by Graham Gear.
Modified: whirr/trunk/CHANGES.txt whirr/trunk/core/src/main/java/org/apache/whirr/ClusterSpec.java whirr/trunk/core/src/main/java/org/apache/whirr/service/jclouds/VariablesToExport.java whirr/trunk/core/src/main/resources/functions/install_oab_java.sh whirr/trunk/core/src/test/java/org/apache/whirr/ClusterSpecTest.java Modified: whirr/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/whirr/trunk/CHANGES.txt?rev=1376777&r1=1376776&r2=1376777&view=diff ============================================================================== --- whirr/trunk/CHANGES.txt (original) +++ whirr/trunk/CHANGES.txt Thu Aug 23 23:36:18 2012 @@ -6,6 +6,8 @@ Trunk (unreleased changes) IMPROVEMENTS + WHIRR-638. Parameterize OAB Java install. (Graham Gear via abayer) + BUG FIXES WHIRR-641. Improved parsing of config -> Modified: whirr/trunk/core/src/main/java/org/apache/whirr/ClusterSpec.java URL: http://svn.apache.org/viewvc/whirr/trunk/core/src/main/java/org/apache/whirr/ClusterSpec.java?rev=1376777&r1=1376776&r2=1376777&view=diff ============================================================================== --- whirr/trunk/core/src/main/java/org/apache/whirr/ClusterSpec.java (original) +++ whirr/trunk/core/src/main/java/org/apache/whirr/ClusterSpec.java Thu Aug 23 23:36:18 2012 @@ -183,6 +183,8 @@ public class ClusterSpec { AUTO_HOSTNAME_SUFFIX(String.class, false, "If given, use this (along with AUTO_HOSTNAME_PREFIX, if set) to set " + "the hostname for the instances."), + JDK_INSTALL_URL(String.class, false, "JDK install URL"), + AWS_EC2_PLACEMENT_GROUP(String.class, false, "If given, use this existing EC2 placement group. (aws-ec2 specific option)"); private Class<?> type; @@ -304,7 +306,9 @@ public class ClusterSpec { private String autoHostnamePrefix; private String autoHostnameSuffix; - + + private String jdkInstallUrl; + private Configuration config; public ClusterSpec() throws ConfigurationException { @@ -338,6 +342,8 @@ public class ClusterSpec { setAutoHostnamePrefix(getString(Property.AUTO_HOSTNAME_PREFIX)); setAutoHostnameSuffix(getString(Property.AUTO_HOSTNAME_SUFFIX)); + setJdkInstallUrl(getString(Property.JDK_INSTALL_URL)); + setProvider(getString(Property.PROVIDER)); setEndpoint(getString(Property.ENDPOINT)); setIdentity(getString(Property.IDENTITY)); @@ -432,6 +438,8 @@ public class ClusterSpec { r.setAutoHostnamePrefix(getAutoHostnamePrefix()); r.setAutoHostnameSuffix(getAutoHostnameSuffix()); + r.setJdkInstallUrl(getJdkInstallUrl()); + return r; } @@ -799,7 +807,7 @@ public class ClusterSpec { public void setAutoHostnameSuffix(String autoHostnameSuffix) { this.autoHostnameSuffix = autoHostnameSuffix; } - + public String getAutoHostnamePrefix() { return autoHostnamePrefix; } @@ -807,8 +815,16 @@ public class ClusterSpec { public void setAutoHostnamePrefix(String autoHostnamePrefix) { this.autoHostnamePrefix = autoHostnamePrefix; } + + public String getJdkInstallUrl() { + return jdkInstallUrl; + } - /** + public void setJdkInstallUrl(String jdkInstallUrl) { + this.jdkInstallUrl = jdkInstallUrl; + } + +/** * The rsa public key which is authorized to login to your on the cloud nodes. * * @param publicKey @@ -960,6 +976,7 @@ public class ClusterSpec { && Objects.equal(getAwsEc2PlacementGroup(), that.getAwsEc2PlacementGroup()) && Objects.equal(getAutoHostnamePrefix(), that.getAutoHostnamePrefix()) && Objects.equal(getAutoHostnameSuffix(), that.getAutoHostnameSuffix()) + && Objects.equal(getJdkInstallUrl(), that.getJdkInstallUrl()) ; } return false; @@ -994,7 +1011,8 @@ public class ClusterSpec { getAwsEc2SpotPrice(), getAwsEc2PlacementGroup(), getAutoHostnamePrefix(), - getAutoHostnameSuffix() + getAutoHostnameSuffix(), + getJdkInstallUrl() ); } @@ -1029,6 +1047,7 @@ public class ClusterSpec { .add("awsEc2PlacementGroup",getAwsEc2PlacementGroup()) .add("autoHostnamePrefix",getAutoHostnamePrefix()) .add("autoHostnameSuffix",getAutoHostnameSuffix()) + .add("jdkInstallUrl", getJdkInstallUrl()) .toString(); } } Modified: whirr/trunk/core/src/main/java/org/apache/whirr/service/jclouds/VariablesToExport.java URL: http://svn.apache.org/viewvc/whirr/trunk/core/src/main/java/org/apache/whirr/service/jclouds/VariablesToExport.java?rev=1376777&r1=1376776&r2=1376777&view=diff ============================================================================== --- whirr/trunk/core/src/main/java/org/apache/whirr/service/jclouds/VariablesToExport.java (original) +++ whirr/trunk/core/src/main/java/org/apache/whirr/service/jclouds/VariablesToExport.java Thu Aug 23 23:36:18 2012 @@ -81,6 +81,9 @@ class VariablesToExport implements Suppl metadataMap.put("AUTO_HOSTNAME_PREFIX", clusterSpec.getAutoHostnamePrefix()); } } + if(clusterSpec.getJdkInstallUrl() != null) { + metadataMap.put("JDK_INSTALL_URL", clusterSpec.getJdkInstallUrl()); + } if (instance != null) { metadataMap.put("ROLES", Joiner.on(",").join(instance.getRoles())); if (instance.getPublicIp() != null) Modified: whirr/trunk/core/src/main/resources/functions/install_oab_java.sh URL: http://svn.apache.org/viewvc/whirr/trunk/core/src/main/resources/functions/install_oab_java.sh?rev=1376777&r1=1376776&r2=1376777&view=diff ============================================================================== --- whirr/trunk/core/src/main/resources/functions/install_oab_java.sh (original) +++ whirr/trunk/core/src/main/resources/functions/install_oab_java.sh Thu Aug 23 23:36:18 2012 @@ -23,9 +23,9 @@ function install_oab_java_deb() { apt-get update - wget https://raw.github.com/flexiondotorg/oab-java6/master/oab-java6.sh -O oab-java6.sh - chmod +x oab-java6.sh - ./oab-java6.sh + wget https://raw.github.com/flexiondotorg/oab-java6/master/oab-java.sh -O oab-java.sh + chmod +x oab-java.sh + ./oab-java.sh apt-get update @@ -39,17 +39,22 @@ function install_oab_java_deb() { } function install_oab_java_rpm() { - MACHINE_TYPE=`uname -m` - if [ ${MACHINE_TYPE} == 'x86_64' ]; then - JDK_PACKAGE=jdk-6u21-linux-x64-rpm.bin - else - JDK_PACKAGE=jdk-6u21-linux-i586-rpm.bin - fi JDK_INSTALL_PATH=/usr/java mkdir -p $JDK_INSTALL_PATH cd $JDK_INSTALL_PATH - wget http://whirr-third-party.s3.amazonaws.com/$JDK_PACKAGE - chmod +x $JDK_PACKAGE + if [ -z "${JDK_INSTALL_URL+xxx}" ]; then + MACHINE_TYPE=`uname -m` + if [ ${MACHINE_TYPE} == 'x86_64' ]; then + JDK_PACKAGE=jdk-6u21-linux-x64-rpm.bin + else + JDK_PACKAGE=jdk-6u21-linux-i586-rpm.bin + fi + wget http://whirr-third-party.s3.amazonaws.com/$JDK_PACKAGE + else + JDK_PACKAGE=$(basename $JDK_INSTALL_URL) + wget $JDK_INSTALL_URL + fi + chmod +x $JDK_PACKAGE mv /bin/more /bin/more.no yes | ./$JDK_PACKAGE -noregister mv /bin/more.no /bin/more Modified: whirr/trunk/core/src/test/java/org/apache/whirr/ClusterSpecTest.java URL: http://svn.apache.org/viewvc/whirr/trunk/core/src/test/java/org/apache/whirr/ClusterSpecTest.java?rev=1376777&r1=1376776&r2=1376777&view=diff ============================================================================== --- whirr/trunk/core/src/test/java/org/apache/whirr/ClusterSpecTest.java (original) +++ whirr/trunk/core/src/test/java/org/apache/whirr/ClusterSpecTest.java Thu Aug 23 23:36:18 2012 @@ -360,7 +360,21 @@ public class ClusterSpecTest { assertEquals(null, ec2Spec.getAutoHostnamePrefix()); assertEquals(null, ec2Spec.getAutoHostnameSuffix()); } - + + @Test + public void testJdkInstallUrl() throws Exception { + Configuration cloudServersConfig = new PropertiesConfiguration(); + + ClusterSpec cloudServersSpec = ClusterSpec.withTemporaryKeys(cloudServersConfig); + assertEquals(null, cloudServersSpec.getJdkInstallUrl()); + + cloudServersConfig = new PropertiesConfiguration(); + cloudServersConfig.addProperty("whirr.jdk-install-url", "http://whirr-third-party.s3.amazonaws.com/jdk-6u21-linux-i586-rpm.bin"); + + cloudServersSpec = ClusterSpec.withTemporaryKeys(cloudServersConfig); + assertEquals("http://whirr-third-party.s3.amazonaws.com/jdk-6u21-linux-i586-rpm.bin", cloudServersSpec.getJdkInstallUrl()); + } + @Test public void testApplySubroleAliases() throws ConfigurationException {