Author: adriancole
Date: Mon Aug  6 01:01:46 2012
New Revision: 1369707

URL: http://svn.apache.org/viewvc?rev=1369707&view=rev
Log:
WHIRR-528: Add a retry loop around apt-get and yum commands to overcome 
transient errors

Added:
    whirr/trunk/core/src/main/resources/functions/retry_helpers.sh
Modified:
    whirr/trunk/CHANGES.txt
    whirr/trunk/core/pom.xml
    whirr/trunk/core/src/main/resources/functions/install_git.sh
    whirr/trunk/core/src/main/resources/functions/install_openjdk.sh
    whirr/trunk/core/src/main/resources/functions/install_ruby.sh
    
whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandler.java
    
whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_hadoop.sh
    whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_hbase.sh
    
whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_zookeeper.sh
    whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_hadoop.sh
    whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_hbase.sh
    
whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_zookeeper.sh
    
whirr/trunk/services/chef/src/main/java/org/apache/whirr/service/chef/ChefClusterActionHandler.java
    
whirr/trunk/services/chef/src/test/java/org/apache/whirr/service/chef/integration/ChefServiceTest.java
    
whirr/trunk/services/elasticsearch/src/main/java/org/apache/whirr/service/elasticsearch/ElasticSearchHandler.java
    
whirr/trunk/services/ganglia/src/main/java/org/apache/whirr/service/ganglia/GangliaMetadClusterActionHandler.java
    
whirr/trunk/services/ganglia/src/main/java/org/apache/whirr/service/ganglia/GangliaMonitorClusterActionHandler.java
    whirr/trunk/services/ganglia/src/main/resources/functions/install_ganglia.sh
    
whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopClusterActionHandler.java
    whirr/trunk/services/hadoop/src/main/resources/functions/install_hadoop.sh
    
whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaClusterActionHandler.java
    
whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaGroomServerClusterActionHandler.java
    
whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaMasterClusterActionHandler.java
    whirr/trunk/services/hama/src/main/resources/functions/install_hama.sh
    
whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/BasicServerClusterActionHandler.java
    
whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseMasterClusterActionHandler.java
    
whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseRegionServerClusterActionHandler.java
    whirr/trunk/services/hbase/src/main/resources/functions/install_hbase.sh
    whirr/trunk/services/hbase/src/main/resources/whirr-hbase-default.properties
    
whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-singlenode-test.properties
    
whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-test.properties
    
whirr/trunk/services/mahout/src/main/java/org/apache/whirr/service/mahout/MahoutClientClusterActionHandler.java
    
whirr/trunk/services/puppet/src/main/java/org/apache/whirr/service/puppet/PuppetInstallClusterActionHandler.java
    
whirr/trunk/services/voldemort/src/main/java/org/apache/whirr/service/voldemort/VoldemortClusterActionHandler.java
    
whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperClusterActionHandler.java

Modified: whirr/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/whirr/trunk/CHANGES.txt?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- whirr/trunk/CHANGES.txt (original)
+++ whirr/trunk/CHANGES.txt Mon Aug  6 01:01:46 2012
@@ -101,6 +101,8 @@ Trunk (unreleased changes)
 
     WHIRR-608. CDH HBase configuration uses CDH3 package and service names 
only (Bruno Dumon via adriancole)
 
+    WHIRR-528. Add a retry loop around apt-get and yum commands to overcome 
transient errors (Andrei Savu via adriancole)
+
   BUG FIXES
 
     WHIRR-582. Yarn service does not build in IntelliJ because of missing 
Hadoop test dependencies (Frank Scholten)

Modified: whirr/trunk/core/pom.xml
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/pom.xml?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- whirr/trunk/core/pom.xml (original)
+++ whirr/trunk/core/pom.xml Mon Aug  6 01:01:46 2012
@@ -164,7 +164,7 @@
     <resources>
       <resource>
         <directory>${project.basedir}/src/main/resources</directory>
-        <filtering>true</filtering>
+        <filtering>false</filtering>
       </resource>
     </resources>
     <plugins>

Modified: whirr/trunk/core/src/main/resources/functions/install_git.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/resources/functions/install_git.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- whirr/trunk/core/src/main/resources/functions/install_git.sh (original)
+++ whirr/trunk/core/src/main/resources/functions/install_git.sh Mon Aug  6 
01:01:46 2012
@@ -37,10 +37,10 @@ function install_git_rpm() {
   else
     rpm -Uvh 
http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
   fi
-  yum -y install git
+  retry_yum -y install git
 }
 
 function install_git_deb() {
-  apt-get update -qq
-  apt-get -y install git-core
+  retry_apt_get update -qq
+  retry_apt_get -y install git-core
 }

Modified: whirr/trunk/core/src/main/resources/functions/install_openjdk.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/resources/functions/install_openjdk.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- whirr/trunk/core/src/main/resources/functions/install_openjdk.sh (original)
+++ whirr/trunk/core/src/main/resources/functions/install_openjdk.sh Mon Aug  6 
01:01:46 2012
@@ -15,8 +15,8 @@
 # limitations under the License.
 #
 function install_openjdk_deb() {
-  apt-get update
-  apt-get -y install openjdk-6-jdk
+  retry_apt_get update
+  retry_apt_get -y install openjdk-6-jdk
   
   # Try to set JAVA_HOME in a number of commonly used locations
   # Lifting JAVA_HOME detection from jclouds
@@ -51,7 +51,7 @@ function install_openjdk_deb() {
 }
 
 function install_openjdk_rpm() {
-  yum -y install java-1.6.0-openjdk-devel
+  retry_yum -y install java-1.6.0-openjdk-devel
   
   # Try to set JAVA_HOME in a number of commonly used locations
   # Lifting JAVA_HOME detection from jclouds

Modified: whirr/trunk/core/src/main/resources/functions/install_ruby.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/resources/functions/install_ruby.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- whirr/trunk/core/src/main/resources/functions/install_ruby.sh (original)
+++ whirr/trunk/core/src/main/resources/functions/install_ruby.sh Mon Aug  6 
01:01:46 2012
@@ -36,12 +36,12 @@ function install_ruby_rpm() {
   else
     rpm -Uvh 
http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
   fi
-  yum -y install ruby ruby-rdoc rubygems
+  retry_yum -y install ruby ruby-rdoc rubygems
 }
 
 function install_ruby_deb() {
-  apt-get update -qq
-  apt-get install -y ruby ruby-dev rubygems libopenssl-ruby rdoc ri irb 
build-essential wget ssl-cert
+  retry_apt_get update -qq
+  retry_apt_get install -y ruby ruby-dev rubygems libopenssl-ruby rdoc ri irb 
build-essential wget ssl-cert
 }
 
 function add_to_path() {

Added: whirr/trunk/core/src/main/resources/functions/retry_helpers.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/resources/functions/retry_helpers.sh?rev=1369707&view=auto
==============================================================================
--- whirr/trunk/core/src/main/resources/functions/retry_helpers.sh (added)
+++ whirr/trunk/core/src/main/resources/functions/retry_helpers.sh Mon Aug  6 
01:01:46 2012
@@ -0,0 +1,52 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+function retry_helpers() {
+  echo "This function does nothing. It just needs to exist so 
Statements.call(\"retry_helpers\") doesn't call something which doesn't exist"
+}
+
+function retry() {
+  tries=$1
+  interval=$2
+  expected_exit_code=$3
+  shift 3
+
+  while [ "$tries" -gt 0 ]; do
+    $@
+    last_exit_code=$?
+
+    if [ "$last_exit_code" -eq "$expected_exit_code" ]; then
+      break
+    fi
+
+    tries=$((tries-1))
+    if [ "$tries" -gt 0 ]; then
+      sleep $interval
+    fi
+  done
+  # Ugly hack to avoid substitution (re_turn -> exit)
+  "re""turn" $last_exit_code
+}
+
+function retry_apt_get() {
+  retry 5 5 0 apt-get -o APT::Acquire::Retries=5 $@
+}
+
+function retry_yum() {
+  retry 5 5 0 yum $@
+}
+

Modified: 
whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -59,12 +59,12 @@ public class CassandraClusterActionHandl
   protected void beforeBootstrap(ClusterActionEvent event) throws IOException {
     ClusterSpec clusterSpec = event.getClusterSpec();
     Configuration conf = clusterSpec.getConfiguration();
-    
-    addStatement(event, call(getInstallFunction(conf, "java", 
"install_openjdk")));
-    addStatement(event, call("install_tarball"));
 
+    addStatement(event, call("retry_helpers"));
+    addStatement(event, call("install_tarball"));
     addStatement(event, call("install_service"));
-    addStatement(event, call("remove_service"));
+
+    addStatement(event, call(getInstallFunction(conf, "java", 
"install_openjdk")));
 
     Configuration config = clusterSpec.getConfiguration();
 

Modified: 
whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_hadoop.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_hadoop.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_hadoop.sh 
(original)
+++ 
whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_hadoop.sh 
Mon Aug  6 01:01:46 2012
@@ -107,12 +107,12 @@ function configure_cdh_hadoop() {
 
 function start_namenode() {
   if which dpkg &> /dev/null; then
-    apt-get -y install $HDFS_PACKAGE_PREFIX-namenode
+    retry_apt_get -y install $HDFS_PACKAGE_PREFIX-namenode
     AS_HDFS="su -s /bin/bash - hdfs -c"
     # Format HDFS
     [ ! -e /data/hadoop/hdfs ] && $AS_HDFS "$HADOOP namenode -format"
   elif which rpm &> /dev/null; then
-    yum install -y $HDFS_PACKAGE_PREFIX-namenode
+    retry_yum install -y $HDFS_PACKAGE_PREFIX-namenode
     AS_HDFS="/sbin/runuser -s /bin/bash - hdfs -c"
     # Format HDFS
     [ ! -e /data/hadoop/hdfs ] && $AS_HDFS "$HADOOP namenode -format"
@@ -142,9 +142,9 @@ function start_namenode() {
 function start_hadoop_daemon() {
   daemon=$1
   if which dpkg &> /dev/null; then
-    apt-get -y install $daemon
+    retry_apt_get -y install $daemon
   elif which rpm &> /dev/null; then
-    yum install -y $daemon
+    retry_yum install -y $daemon
   fi
   service $daemon start
 }

Modified: 
whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_hbase.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_hbase.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_hbase.sh 
(original)
+++ 
whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_hbase.sh 
Mon Aug  6 01:01:46 2012
@@ -142,8 +142,8 @@ function configure_cdh_hbase() {
 function install_hbase_daemon() {
   daemon=$1
   if which dpkg &> /dev/null; then
-    apt-get -y install $daemon
+    retry_apt_get -y install $daemon
   elif which rpm &> /dev/null; then
-    yum install -y $daemon
+    retry_yum install -y $daemon
   fi
 }

Modified: 
whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_zookeeper.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_zookeeper.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_zookeeper.sh
 (original)
+++ 
whirr/trunk/services/cdh/src/main/resources/functions/configure_cdh_zookeeper.sh
 Mon Aug  6 01:01:46 2012
@@ -73,9 +73,9 @@ EOF
   
   # Now that it's configured, install daemon package
   if which dpkg &> /dev/null; then
-    apt-get -y install $ZOOKEEPER_SERVER_PACKAGE
+    retry_apt_get -y install $ZOOKEEPER_SERVER_PACKAGE
   elif which rpm &> /dev/null; then
-    yum install -y $ZOOKEEPER_SERVER_PACKAGE
+    retry_yum install -y $ZOOKEEPER_SERVER_PACKAGE
   fi
 
   # Start ZooKeeper

Modified: 
whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_hadoop.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_hadoop.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_hadoop.sh 
(original)
+++ whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_hadoop.sh 
Mon Aug  6 01:01:46 2012
@@ -30,9 +30,9 @@ EOF
 deb http://archive.cloudera.com/debian lucid-$REPO contrib
 deb-src http://archive.cloudera.com/debian lucid-$REPO contrib
 EOF
-      curl -s http://archive.cloudera.com/debian/archive.key | sudo apt-key 
add -
+      curl -s http://archive.cloudera.com/debian/archive.key | apt-key add -
     fi
-    sudo apt-get -y update
+    retry_apt_get -y update
   elif which rpm &> /dev/null; then
     rm -f /etc/yum.repos.d/cloudera*.repo
     if [ $CDH_MAJOR_VERSION = "4" ]; then
@@ -53,7 +53,7 @@ gpgkey = http://archive.cloudera.com/red
 gpgcheck = 0
 EOF
     fi
-    yum update -y yum
+    retry_yum update -y retry_yum
   fi
 }
 
@@ -81,12 +81,12 @@ function install_cdh_hadoop() {
   register_cloudera_repo
   
   if which dpkg &> /dev/null; then
-    apt-get update
-    apt-get -y install $HADOOP_PACKAGE
+    retry_apt_get update
+    retry_apt_get -y install $HADOOP_PACKAGE
     cp -r /etc/$HADOOP/conf.empty $HADOOP_CONF_DIR
     update-alternatives --install /etc/$HADOOP/conf $HADOOP-conf 
$HADOOP_CONF_DIR 90
   elif which rpm &> /dev/null; then
-    yum install -y $HADOOP_PACKAGE
+    retry_yum install -y $HADOOP_PACKAGE
     cp -r /etc/$HADOOP/conf.empty $HADOOP_CONF_DIR
     alternatives --install /etc/$HADOOP/conf $HADOOP-conf $HADOOP_CONF_DIR 90
   fi

Modified: 
whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_hbase.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_hbase.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_hbase.sh 
(original)
+++ whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_hbase.sh 
Mon Aug  6 01:01:46 2012
@@ -29,9 +29,9 @@ EOF
 deb http://archive.cloudera.com/debian lucid-$REPO contrib
 deb-src http://archive.cloudera.com/debian lucid-$REPO contrib
 EOF
-      curl -s http://archive.cloudera.com/debian/archive.key | sudo apt-key 
add -
+      curl -s http://archive.cloudera.com/debian/archive.key | apt-key add -
     fi
-    sudo apt-get -y update
+    retry_apt_get -y update
   elif which rpm &> /dev/null; then
     rm -f /etc/yum.repos.d/cloudera*.repo
     if [ $CDH_MAJOR_VERSION = "4" ]; then
@@ -52,7 +52,7 @@ gpgkey = http://archive.cloudera.com/red
 gpgcheck = 0
 EOF
     fi
-    yum update -y yum
+    retry_yum update -y retry_yum
   fi
 }
 
@@ -103,10 +103,10 @@ function install_cdh_hbase() {
   fi
   
   if which dpkg &> /dev/null; then
-    apt-get update
-    apt-get -y install ${HBASE_PREFIX}hbase
+    retry_apt_get update
+    retry_apt_get -y install ${HBASE_PREFIX}hbase
   elif which rpm &> /dev/null; then
-    yum install -y ${HBASE_PREFIX}hbase
+    retry_yum install -y ${HBASE_PREFIX}hbase
   fi
   
   echo "export HBASE_HOME=$HBASE_HOME" >> ~root/.bashrc

Modified: 
whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_zookeeper.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_zookeeper.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_zookeeper.sh 
(original)
+++ 
whirr/trunk/services/cdh/src/main/resources/functions/install_cdh_zookeeper.sh 
Mon Aug  6 01:01:46 2012
@@ -29,9 +29,9 @@ EOF
 deb http://archive.cloudera.com/debian lucid-$REPO contrib
 deb-src http://archive.cloudera.com/debian lucid-$REPO contrib
 EOF
-      curl -s http://archive.cloudera.com/debian/archive.key | sudo apt-key 
add -
+      curl -s http://archive.cloudera.com/debian/archive.key | apt-key add -
     fi
-    sudo apt-get -y update
+    retry_apt_get -y update
   elif which rpm &> /dev/null; then
     rm -f /etc/yum.repos.d/cloudera*.repo
     if [ $CDH_MAJOR_VERSION = "4" ]; then
@@ -52,7 +52,7 @@ gpgkey = http://archive.cloudera.com/red
 gpgcheck = 0
 EOF
     fi
-    yum update -y yum
+    retry_yum update -y retry_yum
   fi
 }
 
@@ -85,10 +85,10 @@ function install_cdh_zookeeper() {
   register_cloudera_repo
   
   if which dpkg &> /dev/null; then
-    apt-get update
-    apt-get -y install $ZOOKEEPER_PACKAGE
+    retry_apt_get update
+    retry_apt_get -y install $ZOOKEEPER_PACKAGE
   elif which rpm &> /dev/null; then
-    yum install -y $ZOOKEEPER_PACKAGE
+    retry_yum install -y $ZOOKEEPER_PACKAGE
   fi
   
   echo "export ZOOKEEPER_HOME=$ZOOKEEPER_HOME" >> /etc/profile

Modified: 
whirr/trunk/services/chef/src/main/java/org/apache/whirr/service/chef/ChefClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/chef/src/main/java/org/apache/whirr/service/chef/ChefClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/chef/src/main/java/org/apache/whirr/service/chef/ChefClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/chef/src/main/java/org/apache/whirr/service/chef/ChefClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -57,6 +57,7 @@ public class ChefClusterActionHandler ex
   @Override
   protected void beforeBootstrap(ClusterActionEvent event) throws IOException,
       InterruptedException {
+    addStatement(event, call("retry_helpers"));
     if (isFirstChefRoleIn(event.getInstanceTemplate().getRoles()).apply(role)) 
{
       addInstallChefStatements(event);
       // for some reason even non-running recipes like ant are sometimes not
@@ -78,6 +79,7 @@ public class ChefClusterActionHandler ex
     if (role.equals("")) {
       return;
     }
+    addStatement(event, call("retry_helpers"));
     addStatement(event, new Recipe(cookbook, recipe, event.getClusterSpec()
         .getConfigurationForKeysWithPrefix(cookbook)));
   }

Modified: 
whirr/trunk/services/chef/src/test/java/org/apache/whirr/service/chef/integration/ChefServiceTest.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/chef/src/test/java/org/apache/whirr/service/chef/integration/ChefServiceTest.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/chef/src/test/java/org/apache/whirr/service/chef/integration/ChefServiceTest.java
 (original)
+++ 
whirr/trunk/services/chef/src/test/java/org/apache/whirr/service/chef/integration/ChefServiceTest.java
 Mon Aug  6 01:01:46 2012
@@ -151,7 +151,7 @@ public class ChefServiceTest {
   @Test(timeout = TestConstants.ITEST_TIMEOUT)
   public void testChefRunRecipesFromProvidedCookbooks() throws Exception {
     Recipe java = new Recipe("java");
-    java.attribs.put("install_flavor", "sun");
+    java.attribs.put("install_flavor", "openjdk");
 
     // Recipes have to run directly against ComputeService as they need to be
     // ran as initscripts, a future version of ClusterController might avoid
@@ -166,7 +166,7 @@ public class ChefServiceTest {
     responses = controller
         .runScriptOnNodesMatching(clusterSpec, allNodes, stmt);
 
-    assertResponsesContain(responses, stmt, "Java(TM) SE Runtime Environment");
+    assertResponsesContain(responses, stmt, "Runtime Environment");
 
     Recipe postgreSql = new Recipe("postgresql", "server");
 

Modified: 
whirr/trunk/services/elasticsearch/src/main/java/org/apache/whirr/service/elasticsearch/ElasticSearchHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/elasticsearch/src/main/java/org/apache/whirr/service/elasticsearch/ElasticSearchHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/elasticsearch/src/main/java/org/apache/whirr/service/elasticsearch/ElasticSearchHandler.java
 (original)
+++ 
whirr/trunk/services/elasticsearch/src/main/java/org/apache/whirr/service/elasticsearch/ElasticSearchHandler.java
 Mon Aug  6 01:01:46 2012
@@ -46,9 +46,11 @@ public class ElasticSearchHandler extend
     ClusterSpec spec = event.getClusterSpec();
     Configuration config = spec.getConfiguration();
 
-    addStatement(event, call(getInstallFunction(config, "java", 
"install_openjdk")));
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call("install_tarball"));
 
+    addStatement(event, call(getInstallFunction(config, "java", 
"install_openjdk")));
+
     String tarurl = prepareRemoteFileUrl(event,
         config.getString("whirr.elasticsearch.tarball.url", ""));
     addStatement(event, call("install_elasticsearch", tarurl));
@@ -66,6 +68,7 @@ public class ElasticSearchHandler extend
     );
 
     Configuration config = ElasticSearchConfigurationBuilder.buildConfig(spec, 
cluster);
+    addStatement(event, call("retry_helpers"));
     addStatement(event,
       ElasticSearchConfigurationBuilder.build("/tmp/elasticsearch.yml", 
config));
     addStatement(event, call("configure_elasticsearch",

Modified: 
whirr/trunk/services/ganglia/src/main/java/org/apache/whirr/service/ganglia/GangliaMetadClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/ganglia/src/main/java/org/apache/whirr/service/ganglia/GangliaMetadClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/ganglia/src/main/java/org/apache/whirr/service/ganglia/GangliaMetadClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/ganglia/src/main/java/org/apache/whirr/service/ganglia/GangliaMetadClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -70,6 +70,7 @@ public class GangliaMetadClusterActionHa
     ClusterSpec clusterSpec = event.getClusterSpec();
     Configuration config = getConfiguration(clusterSpec);
 
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call(getInstallFunction(config),
       "-r", GANGLIA_METAD_ROLE)
     );
@@ -90,6 +91,7 @@ public class GangliaMetadClusterActionHa
 
     // Call the configure function.
     String metadHost = 
cluster.getInstanceMatching(role(GANGLIA_METAD_ROLE)).getPrivateIp();
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call(configureFunction, "-m", metadHost));
   }
   

Modified: 
whirr/trunk/services/ganglia/src/main/java/org/apache/whirr/service/ganglia/GangliaMonitorClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/ganglia/src/main/java/org/apache/whirr/service/ganglia/GangliaMonitorClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/ganglia/src/main/java/org/apache/whirr/service/ganglia/GangliaMonitorClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/ganglia/src/main/java/org/apache/whirr/service/ganglia/GangliaMonitorClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -70,6 +70,7 @@ public class GangliaMonitorClusterAction
     ClusterSpec clusterSpec = event.getClusterSpec();
     Configuration config = getConfiguration(clusterSpec);
 
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call(getInstallFunction(config),
       "-r", GANGLIA_MONITOR_ROLE)
     );
@@ -89,6 +90,7 @@ public class GangliaMonitorClusterAction
 
     // Call the configure function.
     String metadHost = 
cluster.getInstanceMatching(role(GANGLIA_METAD_ROLE)).getPrivateIp();
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call(configureFunction, "-m", metadHost));
   }
   

Modified: 
whirr/trunk/services/ganglia/src/main/resources/functions/install_ganglia.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/ganglia/src/main/resources/functions/install_ganglia.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/ganglia/src/main/resources/functions/install_ganglia.sh 
(original)
+++ 
whirr/trunk/services/ganglia/src/main/resources/functions/install_ganglia.sh 
Mon Aug  6 01:01:46 2012
@@ -17,11 +17,11 @@
 
 function update_repo_ganglia() {
   if which dpkg &> /dev/null; then
-    sudo apt-get update
+    retry_apt_get update
   elif which rpm &> /dev/null; then
     #Registers the EPEL repository (this contains the ganglia rpms) 
     rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/$(uname 
-i)/epel-release-6-5.noarch.rpm
-    yum update -y yum
+    retry_yum update -y yum
   fi
 }
 

Modified: 
whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -67,10 +67,11 @@ public abstract class HadoopClusterActio
     ClusterSpec clusterSpec = event.getClusterSpec();
     Configuration conf = getConfiguration(clusterSpec);
 
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call("configure_hostnames"));
+    addStatement(event, call("install_tarball"));
 
     addStatement(event, call(getInstallFunction(conf, "java", 
"install_openjdk")));
-    addStatement(event, call("install_tarball"));
 
     String tarball = prepareRemoteFileUrl(event,
         conf.getString("whirr.hadoop.tarball.url"));
@@ -88,7 +89,8 @@ public abstract class HadoopClusterActio
     doBeforeConfigure(event);
 
     createHadoopConfigFiles(event, clusterSpec, cluster);
-    
+
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call(
       getConfigureFunction(getConfiguration(clusterSpec)),
       Joiner.on(",").join(event.getInstanceTemplate().getRoles()),

Modified: 
whirr/trunk/services/hadoop/src/main/resources/functions/install_hadoop.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hadoop/src/main/resources/functions/install_hadoop.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- whirr/trunk/services/hadoop/src/main/resources/functions/install_hadoop.sh 
(original)
+++ whirr/trunk/services/hadoop/src/main/resources/functions/install_hadoop.sh 
Mon Aug  6 01:01:46 2012
@@ -16,9 +16,9 @@
 #
 function update_repo() {
   if which dpkg &> /dev/null; then
-    sudo apt-get update
+    retry_apt_get update
   elif which rpm &> /dev/null; then
-    yum update -y yum
+    retry_yum update -y yum
   fi
 }
 

Modified: 
whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -45,9 +45,10 @@ public abstract class HamaClusterActionH
     ClusterSpec clusterSpec = event.getClusterSpec();
     Configuration conf = getConfiguration(clusterSpec);
 
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call("configure_hostnames"));
-    addStatement(event, call(getInstallFunction(conf, "java", 
"install_openjdk")));
     addStatement(event, call("install_tarball"));
+    addStatement(event, call(getInstallFunction(conf, "java", 
"install_openjdk")));
 
     String hamaInstallFunction = conf.getString(
         HamaConstants.KEY_INSTALL_FUNCTION, HamaConstants.FUNCTION_INSTALL);

Modified: 
whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaGroomServerClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaGroomServerClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaGroomServerClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaGroomServerClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -63,6 +63,8 @@ public class HamaGroomServerClusterActio
     String tarurl = prepareRemoteFileUrl(event, getConfiguration(clusterSpec)
         .getString(HamaConstants.KEY_TARBALL_URL));
 
+    addStatement(event, call("retry_helpers"));
+
     addStatement(event, call(hamaConfigureFunction, ROLE,
         HamaConstants.PARAM_MASTER, master, HamaConstants.PARAM_QUORUM, quorum,
         HamaConstants.PARAM_TARBALL_URL, tarurl));

Modified: 
whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaMasterClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaMasterClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaMasterClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/hama/src/main/java/org/apache/whirr/service/hama/HamaMasterClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -77,6 +77,8 @@ public class HamaMasterClusterActionHand
     String tarurl = prepareRemoteFileUrl(event, getConfiguration(clusterSpec)
         .getString(HamaConstants.KEY_TARBALL_URL));
 
+    addStatement(event, call("retry_helpers"));
+
     addStatement(event, call(hamaConfigureFunction, ROLE,
         HamaConstants.PARAM_MASTER, master, HamaConstants.PARAM_QUORUM, quorum,
         HamaConstants.PARAM_TARBALL_URL, tarurl));

Modified: whirr/trunk/services/hama/src/main/resources/functions/install_hama.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hama/src/main/resources/functions/install_hama.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- whirr/trunk/services/hama/src/main/resources/functions/install_hama.sh 
(original)
+++ whirr/trunk/services/hama/src/main/resources/functions/install_hama.sh Mon 
Aug  6 01:01:46 2012
@@ -16,9 +16,9 @@
 #
 function update_repo() {
   if which dpkg &> /dev/null; then
-    sudo apt-get update
+    retry_apt_get update
   elif which rpm &> /dev/null; then
-    yum update -y yum
+    retry_yum update -y yum
   fi
 }
 

Modified: 
whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/BasicServerClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/BasicServerClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/BasicServerClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/BasicServerClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -57,10 +57,12 @@ public class BasicServerClusterActionHan
     ClusterSpec clusterSpec = event.getClusterSpec();
     Configuration conf = getConfiguration(clusterSpec);
 
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call("configure_hostnames"));
-    addStatement(event, call(getInstallFunction(conf, "java", 
"install_openjdk")));
     addStatement(event, call("install_tarball"));
 
+    addStatement(event, call(getInstallFunction(conf, "java", 
"install_openjdk")));
+
     String tarurl = prepareRemoteFileUrl(event,
       conf.getString(HBaseConstants.KEY_TARBALL_URL));
 
@@ -93,6 +95,7 @@ public class BasicServerClusterActionHan
     String tarurl = prepareRemoteFileUrl(event,
       getConfiguration(clusterSpec).getString(HBaseConstants.KEY_TARBALL_URL));
 
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call(
       getConfigureFunction(getConfiguration(clusterSpec)),
       role,

Modified: 
whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseMasterClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseMasterClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseMasterClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseMasterClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -64,10 +64,11 @@ public class HBaseMasterClusterActionHan
     ClusterSpec clusterSpec = event.getClusterSpec();    
     Configuration conf = getConfiguration(clusterSpec);
 
+    addStatement(event, call("retry_helpers"));
+    addStatement(event, call("install_tarball"));
     addStatement(event, call("configure_hostnames"));
 
     addStatement(event, call(getInstallFunction(conf, "java", 
"install_openjdk")));
-    addStatement(event, call("install_tarball"));
 
     String tarurl = prepareRemoteFileUrl(event,
       getConfiguration(clusterSpec).getString(HBaseConstants.KEY_TARBALL_URL));
@@ -111,6 +112,7 @@ public class HBaseMasterClusterActionHan
     String tarurl = prepareRemoteFileUrl(event,
       conf.getString(HBaseConstants.KEY_TARBALL_URL));
 
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call(
       getConfigureFunction(conf),
       ROLE,

Modified: 
whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseRegionServerClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseRegionServerClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseRegionServerClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseRegionServerClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -54,10 +54,11 @@ public class HBaseRegionServerClusterAct
     ClusterSpec clusterSpec = event.getClusterSpec();
     Configuration conf = getConfiguration(clusterSpec);
 
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call("configure_hostnames"));
+    addStatement(event, call("install_tarball"));
 
     addStatement(event, call(getInstallFunction(conf, "java", 
"install_openjdk")));
-    addStatement(event, call("install_tarball"));
 
     String tarurl = prepareRemoteFileUrl(event,
       getConfiguration(clusterSpec).getString(HBaseConstants.KEY_TARBALL_URL));
@@ -101,6 +102,7 @@ public class HBaseRegionServerClusterAct
     String tarurl = prepareRemoteFileUrl(event,
       conf.getString(HBaseConstants.KEY_TARBALL_URL));
 
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call(
       getConfigureFunction(conf),
       ROLE,

Modified: 
whirr/trunk/services/hbase/src/main/resources/functions/install_hbase.sh
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hbase/src/main/resources/functions/install_hbase.sh?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- whirr/trunk/services/hbase/src/main/resources/functions/install_hbase.sh 
(original)
+++ whirr/trunk/services/hbase/src/main/resources/functions/install_hbase.sh 
Mon Aug  6 01:01:46 2012
@@ -16,9 +16,9 @@
 #
 function update_repo() {
   if which dpkg &> /dev/null; then
-    sudo apt-get update
+    retry_apt_get update
   elif which rpm &> /dev/null; then
-    yum update -y yum
+    retry_yum update -y yum
   fi
 }
 

Modified: 
whirr/trunk/services/hbase/src/main/resources/whirr-hbase-default.properties
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hbase/src/main/resources/whirr-hbase-default.properties?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/hbase/src/main/resources/whirr-hbase-default.properties 
(original)
+++ 
whirr/trunk/services/hbase/src/main/resources/whirr-hbase-default.properties 
Mon Aug  6 01:01:46 2012
@@ -10,7 +10,8 @@
 #   See the License for the specific language governing permissions and
 #   limitations under the License.
 
-whirr.hbase.tarball.url=http://archive.apache.org/dist/hbase/hbase-0.89.20100924/hbase-0.89.20100924-bin.tar.gz
+whirr.hbase.tarball.url=http://archive.apache.org/dist/hbase/hbase-0.90.3/hbase-0.90.3.tar.gz
+whirr.hadoop.tarball.url=http://archive.cloudera.com/cdh/3/hadoop-0.20.2-cdh3u0.tar.gz
 
 hbase-site.hbase.cluster.distributed=true
 hbase-site.hbase.regionserver.handler.count=100

Modified: 
whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-singlenode-test.properties
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-singlenode-test.properties?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-singlenode-test.properties
 (original)
+++ 
whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-singlenode-test.properties
 Mon Aug  6 01:01:46 2012
@@ -24,5 +24,5 @@ whirr.credential=${sys:whirr.test.creden
 
 whirr.hardware-min-ram=4096
 
-whirr.hbase.tarball.url=http://apache.cu.be/hbase/hbase-0.90.3/hbase-0.90.3.tar.gz
+whirr.hbase.tarball.url=http://archive.apache.org/dist/hbase/hbase-0.90.3/hbase-0.90.3.tar.gz
 
whirr.hadoop.tarball.url=http://archive.cloudera.com/cdh/3/hadoop-0.20.2-cdh3u0.tar.gz

Modified: 
whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-test.properties
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-test.properties?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-test.properties 
(original)
+++ 
whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-test.properties 
Mon Aug  6 01:01:46 2012
@@ -22,7 +22,7 @@ whirr.provider=${sys:whirr.test.provider
 whirr.identity=${sys:whirr.test.identity}
 whirr.credential=${sys:whirr.test.credential}
 
-whirr.hbase.tarball.url=http://apache.cu.be/hbase/hbase-0.90.3/hbase-0.90.3.tar.gz
+whirr.hbase.tarball.url=http://archive.apache.org/dist/hbase/hbase-0.90.3/hbase-0.90.3.tar.gz
 
whirr.hadoop.tarball.url=http://archive.cloudera.com/cdh/3/hadoop-0.20.2-cdh3u0.tar.gz
 
 

Modified: 
whirr/trunk/services/mahout/src/main/java/org/apache/whirr/service/mahout/MahoutClientClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/mahout/src/main/java/org/apache/whirr/service/mahout/MahoutClientClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/mahout/src/main/java/org/apache/whirr/service/mahout/MahoutClientClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/mahout/src/main/java/org/apache/whirr/service/mahout/MahoutClientClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -53,6 +53,7 @@ public class MahoutClientClusterActionHa
 
     String mahoutTarball = prepareRemoteFileUrl(event, 
conf.getString(MAHOUT_TAR_URL));
 
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call(MAHOUT_CLIENT_SCRIPT, URL_FLAG, mahoutTarball));
   }
 }

Modified: 
whirr/trunk/services/puppet/src/main/java/org/apache/whirr/service/puppet/PuppetInstallClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/puppet/src/main/java/org/apache/whirr/service/puppet/PuppetInstallClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/puppet/src/main/java/org/apache/whirr/service/puppet/PuppetInstallClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/puppet/src/main/java/org/apache/whirr/service/puppet/PuppetInstallClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -26,9 +26,9 @@ import org.apache.whirr.service.ClusterA
 import org.apache.whirr.service.ClusterActionHandlerSupport;
 
 /**
- * Installs puppet (and ruby). 
+ * Installs puppet (and ruby).
  * After this service is configured other services can use it to setup/start 
other services.
- * 
+ * <p/>
  * To test manually, run whirr launch-cluster with 1 puppet node, then ssh and 
confirm puppet exists
  */
 public class PuppetInstallClusterActionHandler extends 
ClusterActionHandlerSupport {
@@ -37,20 +37,22 @@ public class PuppetInstallClusterActionH
 
   @Override
   public String getRole() {
-   return PUPPET_INSTALL_ROLE;
+    return PUPPET_INSTALL_ROLE;
   }
 
   @Override
   protected void beforeBootstrap(ClusterActionEvent event) throws IOException,
-    InterruptedException {
-   
-   // install ruby and ruby-gems in the nodes
-   addStatement(event, call("install_ruby"));
+      InterruptedException {
 
-   // install git
-   addStatement(event, call("install_git"));
+    addStatement(event, call("retry_helpers"));
 
-   // install puppet
-   addStatement(event, call("install_puppet"));
+    // install ruby and ruby-gems in the nodes
+    addStatement(event, call("install_ruby"));
+
+    // install git
+    addStatement(event, call("install_git"));
+
+    // install puppet
+    addStatement(event, call("install_puppet"));
   }
 }

Modified: 
whirr/trunk/services/voldemort/src/main/java/org/apache/whirr/service/voldemort/VoldemortClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/voldemort/src/main/java/org/apache/whirr/service/voldemort/VoldemortClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/voldemort/src/main/java/org/apache/whirr/service/voldemort/VoldemortClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/voldemort/src/main/java/org/apache/whirr/service/voldemort/VoldemortClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -79,9 +79,12 @@ public class VoldemortClusterActionHandl
       optArgs.add(prepareRemoteFileUrl(event, confUrl));
     }
 
-    addStatement(event, call(getInstallFunction(config, "java", 
"install_openjdk")));
+    addStatement(event, call("retry_helpers"));
+    addStatement(event, call("install_tarball"));
     addStatement(event, call("install_service"));
 
+    addStatement(event, call(getInstallFunction(config, "java", 
"install_openjdk")));
+
     addStatement(event, call(FUNCTION_INSTALL, optArgs.toArray(new 
String[optArgs.size()])));
   }
 
@@ -101,6 +104,7 @@ public class VoldemortClusterActionHandl
     Configuration config = event.getClusterSpec().getConfiguration();
     int partitionsPerNode = config.getInt(PARAM_PARTITIONS_PER_NODE, 10);
 
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call(FUNCTION_CONFIGURE,
                              PARAM_PARTITIONS_PER_NODE,
                              Integer.toString(partitionsPerNode),

Modified: 
whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperClusterActionHandler.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperClusterActionHandler.java?rev=1369707&r1=1369706&r2=1369707&view=diff
==============================================================================
--- 
whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperClusterActionHandler.java
 (original)
+++ 
whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperClusterActionHandler.java
 Mon Aug  6 01:01:46 2012
@@ -52,7 +52,7 @@ public class ZooKeeperClusterActionHandl
   }
 
   protected Configuration getConfiguration(ClusterSpec spec)
-    throws IOException {
+      throws IOException {
     return getConfiguration(spec, "whirr-zookeeper-default.properties");
   }
 
@@ -61,10 +61,12 @@ public class ZooKeeperClusterActionHandl
     ClusterSpec clusterSpec = event.getClusterSpec();
     Configuration config = getConfiguration(clusterSpec);
 
-    addStatement(event, call(getInstallFunction(config, "java", 
"install_openjdk")));
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call("install_tarball"));
     addStatement(event, call("install_service"));
 
+    addStatement(event, call(getInstallFunction(config, "java", 
"install_openjdk")));
+
     String tarurl = config.getString("whirr.zookeeper.tarball.url");
     addStatement(event, call(getInstallFunction(config),
       "-u", prepareRemoteFileUrl(event, tarurl))
@@ -89,6 +91,8 @@ public class ZooKeeperClusterActionHandl
     String servers = Joiner.on(' ').join(getPrivateIps(ensemble));
 
     Configuration config = getConfiguration(clusterSpec);
+
+    addStatement(event, call("retry_helpers"));
     addStatement(event, call(getConfigureFunction(config), servers));
   }
 
@@ -99,7 +103,7 @@ public class ZooKeeperClusterActionHandl
 
     LOG.info("Completed configuration of {}", clusterSpec.getClusterName());
     String hosts = Joiner.on(',').join(getHosts(cluster.getInstancesMatching(
-      role(ZOOKEEPER_ROLE))));
+        role(ZOOKEEPER_ROLE))));
     LOG.info("Hosts: {}", hosts);
   }
 


Reply via email to