You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whirr.apache.org by ab...@apache.org on 2013/08/04 23:21:41 UTC

git commit: WHIRR-731. Switching to Apache jclouds 1.6.1-incubating

Updated Branches:
  refs/heads/trunk 800e7daf5 -> 8fdd69866


WHIRR-731. Switching to Apache jclouds 1.6.1-incubating


Project: http://git-wip-us.apache.org/repos/asf/whirr/repo
Commit: http://git-wip-us.apache.org/repos/asf/whirr/commit/8fdd6986
Tree: http://git-wip-us.apache.org/repos/asf/whirr/tree/8fdd6986
Diff: http://git-wip-us.apache.org/repos/asf/whirr/diff/8fdd6986

Branch: refs/heads/trunk
Commit: 8fdd6986655b3586e8cc276e4266bef1145c199b
Parents: 800e7da
Author: Andrew Bayer <an...@gmail.com>
Authored: Fri Jun 21 17:23:18 2013 -0700
Committer: Andrew Bayer <an...@gmail.com>
Committed: Sun Aug 4 14:21:23 2013 -0700

----------------------------------------------------------------------
 .../whirr/cli/command/ListClusterCommand.java   |  2 +-
 .../cli/command/ListClusterCommandTest.java     |  5 ++-
 core/pom.xml                                    | 16 ++++-----
 .../whirr/service/BlobStoreContextBuilder.java  | 12 -------
 .../org/apache/whirr/service/ComputeCache.java  | 25 --------------
 .../org/apache/whirr/service/DryRunModule.java  | 34 ++++++++++----------
 platforms/karaf/feature/pom.xml                 |  2 +-
 .../feature/src/main/resources/features.xml     |  2 +-
 platforms/karaf/itests/pom.xml                  |  2 +-
 pom.xml                                         | 21 ++++++------
 .../chef/integration/ChefServiceTest.java       |  5 +--
 .../puppet/integration/PuppetServiceTest.java   | 10 +++---
 .../service/solr/SolrClusterActionHandler.java  | 11 +++++--
 13 files changed, 58 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/cli/src/main/java/org/apache/whirr/cli/command/ListClusterCommand.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/whirr/cli/command/ListClusterCommand.java b/cli/src/main/java/org/apache/whirr/cli/command/ListClusterCommand.java
index 7e2c8d7..272cd51 100644
--- a/cli/src/main/java/org/apache/whirr/cli/command/ListClusterCommand.java
+++ b/cli/src/main/java/org/apache/whirr/cli/command/ListClusterCommand.java
@@ -82,7 +82,7 @@ public class ListClusterCommand extends AbstractClusterCommand {
         instance.getNodeMetadata().getImageId(),
         instance.getPublicIp(),
         instance.getPrivateIp(),
-        instance.getNodeMetadata().getState(),
+        instance.getNodeMetadata().getStatus(),
         instance.getNodeMetadata().getLocation().getId(),
         Joiner.on(",").join(instance.getRoles())
       )

http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/cli/src/test/java/org/apache/whirr/cli/command/ListClusterCommandTest.java
----------------------------------------------------------------------
diff --git a/cli/src/test/java/org/apache/whirr/cli/command/ListClusterCommandTest.java b/cli/src/test/java/org/apache/whirr/cli/command/ListClusterCommandTest.java
index bfd2843..074b9a7 100644
--- a/cli/src/test/java/org/apache/whirr/cli/command/ListClusterCommandTest.java
+++ b/cli/src/test/java/org/apache/whirr/cli/command/ListClusterCommandTest.java
@@ -44,7 +44,6 @@ import org.apache.whirr.state.MemoryClusterStateStore;
 import org.apache.whirr.util.KeyPair;
 import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.compute.domain.NodeMetadataBuilder;
-import org.jclouds.compute.domain.NodeState;
 import org.jclouds.domain.Credentials;
 import org.jclouds.domain.LocationBuilder;
 import org.jclouds.domain.LocationScope;
@@ -73,14 +72,14 @@ public class ListClusterCommandTest extends BaseCommandTest {
     NodeMetadata node1 = new NodeMetadataBuilder().name("name1").ids("id1")
         .location(new LocationBuilder().scope(LocationScope.PROVIDER)
           .id("location-id1").description("location-desc1").build())
-        .imageId("image-id").state(NodeState.RUNNING)
+        .imageId("image-id").status(NodeMetadata.Status.RUNNING)
         .publicAddresses(Lists.newArrayList("127.0.0.1"))
         .privateAddresses(Lists.newArrayList("127.0.0.1")).build();
 
     NodeMetadata node2 = new NodeMetadataBuilder().name("name2").ids("id2")
         .location(new LocationBuilder().scope(LocationScope.PROVIDER)
           .id("location-id2").description("location-desc2").build())
-        .imageId("image-id").state(NodeState.RUNNING)
+        .imageId("image-id").status(NodeMetadata.Status.RUNNING)
         .publicAddresses(Lists.newArrayList("127.0.0.2"))
         .privateAddresses(Lists.newArrayList("127.0.0.2")).build();
 

http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index d0a2a39..c6d5292 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -49,36 +49,36 @@
       <artifactId>guava</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.jclouds</groupId>
+      <groupId>org.apache.jclouds</groupId>
       <artifactId>jclouds-compute</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.jclouds.api</groupId>
+      <groupId>org.apache.jclouds.api</groupId>
       <artifactId>byon</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.jclouds.driver</groupId>
+      <groupId>org.apache.jclouds.driver</groupId>
       <artifactId>jclouds-enterprise</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.jclouds.driver</groupId>
+      <groupId>org.apache.jclouds.driver</groupId>
       <artifactId>jclouds-sshj</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.jclouds.driver</groupId>
+      <groupId>org.apache.jclouds.driver</groupId>
       <artifactId>jclouds-jsch</artifactId>
       <version>${jclouds.version}</version>
     </dependency>
     <dependency>
-      <groupId>org.jclouds.driver</groupId>
+      <groupId>org.apache.jclouds.driver</groupId>
       <artifactId>jclouds-slf4j</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.jclouds</groupId>
+      <groupId>org.apache.jclouds</groupId>
       <artifactId>jclouds-allcompute</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.jclouds</groupId>
+      <groupId>org.apache.jclouds</groupId>
       <artifactId>jclouds-allblobstore</artifactId>
     </dependency>
     <dependency>

http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/core/src/main/java/org/apache/whirr/service/BlobStoreContextBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/whirr/service/BlobStoreContextBuilder.java b/core/src/main/java/org/apache/whirr/service/BlobStoreContextBuilder.java
index 0825351..0046bbf 100644
--- a/core/src/main/java/org/apache/whirr/service/BlobStoreContextBuilder.java
+++ b/core/src/main/java/org/apache/whirr/service/BlobStoreContextBuilder.java
@@ -41,7 +41,6 @@ import org.jclouds.enterprise.config.EnterpriseConfigurationModule;
 import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
 import org.jclouds.providers.ProviderMetadata;
 import org.jclouds.providers.Providers;
-import org.jclouds.rest.RestContext;
 import org.jclouds.rest.Utils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -163,12 +162,6 @@ public class BlobStoreContextBuilder {
     }
 
     @Override
-    @Deprecated
-    public <S, A> RestContext<S, A> getProviderSpecificContext() {
-      return delegate().<S, A>getProviderSpecificContext();
-    }
-
-    @Override
     public Utils getUtils() {
       return delegate().getUtils();
     }
@@ -194,11 +187,6 @@ public class BlobStoreContextBuilder {
     }
 
     @Override
-    public <C extends Context> C unwrap(Class<C> clazz) {
-      return delegate().<C>unwrap(clazz);
-    }
-
-    @Override
     public <C extends Context> C unwrap() {
       return delegate().<C>unwrap();
     }

http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/core/src/main/java/org/apache/whirr/service/ComputeCache.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/whirr/service/ComputeCache.java b/core/src/main/java/org/apache/whirr/service/ComputeCache.java
index 8f8d7d4..6a4b032 100644
--- a/core/src/main/java/org/apache/whirr/service/ComputeCache.java
+++ b/core/src/main/java/org/apache/whirr/service/ComputeCache.java
@@ -46,12 +46,10 @@ import org.jclouds.compute.domain.ExecResponse;
 import org.jclouds.compute.events.StatementOnNodeCompletion;
 import org.jclouds.compute.events.StatementOnNodeFailure;
 import org.jclouds.compute.events.StatementOnNodeSubmission;
-import org.jclouds.domain.Credentials;
 import org.jclouds.enterprise.config.EnterpriseConfigurationModule;
 import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
 import org.jclouds.providers.ProviderMetadata;
 import org.jclouds.providers.Providers;
-import org.jclouds.rest.RestContext;
 import org.jclouds.scriptbuilder.domain.OsFamily;
 import org.jclouds.sshj.config.SshjSshClientModule;
 import org.slf4j.Logger;
@@ -184,24 +182,6 @@ public enum ComputeCache implements Function<ClusterSpec, ComputeServiceContext>
     }
 
     @Override
-    @Deprecated
-    public <S, A> RestContext<S, A> getProviderSpecificContext() {
-      return delegate().<S, A>getProviderSpecificContext();
-    }
-
-    @Override
-    @Deprecated
-    public Map<String, Credentials> getCredentialStore() {
-      return delegate().getCredentialStore();
-    }
-
-    @Override
-    @Deprecated
-    public Map<String, Credentials> credentialStore() {
-      return delegate().credentialStore();
-    }
-
-    @Override
     public Utils getUtils() {
       return delegate().getUtils();
     }
@@ -227,11 +207,6 @@ public enum ComputeCache implements Function<ClusterSpec, ComputeServiceContext>
     }
 
     @Override
-    public <C extends Context> C unwrap(Class<C> clazz) {
-      return delegate().<C>unwrap(clazz);
-    }
-
-    @Override
     public <C extends Context> C unwrap() {
       return delegate().<C>unwrap();
     }

http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/core/src/main/java/org/apache/whirr/service/DryRunModule.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/whirr/service/DryRunModule.java b/core/src/main/java/org/apache/whirr/service/DryRunModule.java
index bd4075a..643161a 100644
--- a/core/src/main/java/org/apache/whirr/service/DryRunModule.java
+++ b/core/src/main/java/org/apache/whirr/service/DryRunModule.java
@@ -18,14 +18,15 @@
 
 package org.apache.whirr.service;
 
+import static com.google.common.base.Charsets.UTF_8;
 import static com.google.common.collect.Iterables.concat;
 import static com.google.common.collect.Iterables.contains;
 import static com.google.common.collect.Iterables.find;
 import static com.google.common.collect.Multimaps.synchronizedListMultimap;
-import static com.google.common.io.ByteStreams.newInputStreamSupplier;
+import static com.google.common.hash.Hashing.md5;
+import static com.google.common.io.BaseEncoding.base16;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -41,13 +42,13 @@ import org.jclouds.compute.domain.ExecResponse;
 import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.compute.events.StatementOnNode;
 import org.jclouds.compute.events.StatementOnNodeSubmission;
-import org.jclouds.crypto.CryptoStreams;
 import org.jclouds.domain.Credentials;
 import org.jclouds.domain.LoginCredentials;
 import org.jclouds.io.Payload;
 import org.jclouds.io.payloads.StringPayload;
 import org.jclouds.scriptbuilder.domain.Statement;
 import org.jclouds.ssh.SshClient;
+import org.jclouds.util.Strings2;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -63,7 +64,6 @@ import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Maps;
 import com.google.common.eventbus.EventBus;
 import com.google.common.eventbus.Subscribe;
-import com.google.common.io.InputSupplier;
 import com.google.common.net.HostAndPort;
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
@@ -202,7 +202,6 @@ public class DryRunModule extends AbstractModule {
         this.nodes = nodes;
       }
 
-      @Override
       public SshClient create(final HostAndPort socket, Credentials loginCreds) {
         return clientMap.getUnchecked(new Key(socket, loginCreds, find(nodes.values(),
             new NodeHasAddress(socket.getHostText()))));
@@ -265,7 +264,11 @@ public class DryRunModule extends AbstractModule {
     public Payload get(String path) {
       LOG.info(toString() + " >> get(" + path + ")");
       Payload returnVal = contents.get(path);
-      LOG.info(toString() + " << md5[" + md5Hex(returnVal) + "]");
+      try {
+        LOG.info(toString() + " << md5[" + md5Hex(Strings2.toString(returnVal)) + "]");
+      } catch (IOException e) {
+        throw new RuntimeException(e);
+      }
       return returnVal;
     }
 
@@ -281,8 +284,13 @@ public class DryRunModule extends AbstractModule {
 
     @Override
     public void put(String path, Payload payload) {
-      LOG.info(toString() + " >> put(" + path + ", md5[" + md5Hex(payload)
-          + "])");
+      try {
+        LOG.info(toString() + " >> put(" + path + ", md5[" + md5Hex(Strings2.toString(payload))
+               + "])");
+      } catch (IOException e) {
+        throw new RuntimeException(e);
+      }
+
       contents.put(path, payload);
     }
 
@@ -315,15 +323,7 @@ public class DryRunModule extends AbstractModule {
   }
 
   public static String md5Hex(String in) {
-    return md5Hex(newInputStreamSupplier(in.getBytes()));
-  }
-
-  public static String md5Hex(InputSupplier<? extends InputStream> supplier) {
-    try {
-      return CryptoStreams.md5Hex(supplier);
-    } catch (IOException e) {
-      throw new RuntimeException(e);
-    }
+    return base16().lowerCase().encode(md5().hashString(in, UTF_8).asBytes());
   }
 
 }

http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/platforms/karaf/feature/pom.xml
----------------------------------------------------------------------
diff --git a/platforms/karaf/feature/pom.xml b/platforms/karaf/feature/pom.xml
index 2f5015d..4dfff99 100644
--- a/platforms/karaf/feature/pom.xml
+++ b/platforms/karaf/feature/pom.xml
@@ -48,7 +48,7 @@
     <dnsjava.version>2.0.8</dnsjava.version>
     <javax.mail.bundle.version>1.4.1_4</javax.mail.bundle.version>
     <junit.bundle.version>4.9_1</junit.bundle.version>
-    <jclouds.karaf.version>1.5.8</jclouds.karaf.version>
+    <jclouds.karaf.version>${jclouds.version}</jclouds.karaf.version>
     <jopt.simple.bundle.version>4.3_1</jopt.simple.bundle.version>
     <jsch.bundle.version>0.1.44_2</jsch.bundle.version>
     <not-yet-commons-ssl.bundle.version>0.3.11_1

http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/platforms/karaf/feature/src/main/resources/features.xml
----------------------------------------------------------------------
diff --git a/platforms/karaf/feature/src/main/resources/features.xml b/platforms/karaf/feature/src/main/resources/features.xml
index 47cfaa4..ecb6d58 100644
--- a/platforms/karaf/feature/src/main/resources/features.xml
+++ b/platforms/karaf/feature/src/main/resources/features.xml
@@ -17,7 +17,7 @@
 -->
 <features name="whirr-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.0.0">
 
- <repository>mvn:org.jclouds.karaf/jclouds-karaf/${jclouds.karaf.version}/xml/features</repository>
+ <repository>mvn:org.apache.jclouds.karaf/jclouds-karaf/${jclouds.karaf.version}/xml/features</repository>
 
   <feature name="whirr" version="${project.version}" description="Apache Whirr Core" resolver="(obr)">
     <feature version="${jclouds.karaf.version}">jclouds-commands</feature>

http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/platforms/karaf/itests/pom.xml
----------------------------------------------------------------------
diff --git a/platforms/karaf/itests/pom.xml b/platforms/karaf/itests/pom.xml
index 5c7517f..3c285e7 100644
--- a/platforms/karaf/itests/pom.xml
+++ b/platforms/karaf/itests/pom.xml
@@ -95,7 +95,7 @@
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.jclouds</groupId>
+      <groupId>org.apache.jclouds</groupId>
       <artifactId>jclouds-scriptbuilder</artifactId>
       <version>${jclouds.version}</version>
       <scope>test</scope>

http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b03a6ea..270b6fb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,7 +43,6 @@
     <module>examples</module>
     <module>services/cassandra</module>
     <module>services/cdh</module>
-    <module>services/cdh-oldtests</module>
     <module>services/ganglia</module>
     <module>services/hadoop</module>
     <module>services/yarn</module>
@@ -67,13 +66,13 @@
     <commons.io.version>1.4</commons.io.version>
     <common-ssl.version>0.3.11</common-ssl.version>
     <dnsjava.version>2.1.1</dnsjava.version>
-    <guava.version>13.0</guava.version>
+    <guava.version>14.0.1</guava.version>
     <hadoop.version>1.0.4</hadoop.version>
     <hamcrest.version>1.1</hamcrest.version>
     <hama.version>0.4.0-incubating</hama.version>
     <hbase.version>0.94.1</hbase.version>
     <jackson.version>1.5.2</jackson.version>
-    <jclouds.version>1.5.8</jclouds.version>
+    <jclouds.version>1.6.1-incubating</jclouds.version>
     <jdom.version>1.1</jdom.version>
     <jopt.simple.version>4.3</jopt.simple.version>
     <jsch.version>0.1.48</jsch.version>
@@ -102,42 +101,42 @@
         <version>${common-ssl.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.jclouds</groupId>
+        <groupId>org.apache.jclouds</groupId>
         <artifactId>jclouds-core</artifactId>
         <version>${jclouds.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.jclouds</groupId>
+        <groupId>org.apache.jclouds</groupId>
         <artifactId>jclouds-compute</artifactId>
         <version>${jclouds.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.jclouds.api</groupId>
+        <groupId>org.apache.jclouds.api</groupId>
         <artifactId>byon</artifactId>
         <version>${jclouds.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.jclouds.driver</groupId>
+        <groupId>org.apache.jclouds.driver</groupId>
         <artifactId>jclouds-sshj</artifactId>
         <version>${jclouds.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.jclouds.driver</groupId>
+        <groupId>org.apache.jclouds.driver</groupId>
         <artifactId>jclouds-slf4j</artifactId>
         <version>${jclouds.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.jclouds.driver</groupId>
+        <groupId>org.apache.jclouds.driver</groupId>
         <artifactId>jclouds-enterprise</artifactId>
         <version>${jclouds.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.jclouds</groupId>
+        <groupId>org.apache.jclouds</groupId>
         <artifactId>jclouds-allcompute</artifactId>
         <version>${jclouds.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.jclouds</groupId>
+        <groupId>org.apache.jclouds</groupId>
         <artifactId>jclouds-allblobstore</artifactId>
         <version>${jclouds.version}</version>
       </dependency>

http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/services/chef/src/test/java/org/apache/whirr/service/chef/integration/ChefServiceTest.java
----------------------------------------------------------------------
diff --git a/services/chef/src/test/java/org/apache/whirr/service/chef/integration/ChefServiceTest.java b/services/chef/src/test/java/org/apache/whirr/service/chef/integration/ChefServiceTest.java
index 6cb7e00..51dd772 100644
--- a/services/chef/src/test/java/org/apache/whirr/service/chef/integration/ChefServiceTest.java
+++ b/services/chef/src/test/java/org/apache/whirr/service/chef/integration/ChefServiceTest.java
@@ -18,6 +18,8 @@
 
 package org.apache.whirr.service.chef.integration;
 
+import static org.jclouds.util.Predicates2.retry;
+
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 import org.apache.commons.configuration.CompositeConfiguration;
@@ -32,7 +34,6 @@ import org.apache.whirr.service.chef.Recipe;
 import org.jclouds.compute.RunScriptOnNodesException;
 import org.jclouds.compute.domain.ExecResponse;
 import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.predicates.RetryablePredicate;
 import org.jclouds.scriptbuilder.domain.Statement;
 import org.jclouds.scriptbuilder.domain.Statements;
 import org.junit.AfterClass;
@@ -121,7 +122,7 @@ public class ChefServiceTest {
             .next()));
 
     assertTrue("Could not connect with nginx server",
-        new RetryablePredicate<HttpClient>(new Predicate<HttpClient>() {
+               retry(new Predicate<HttpClient>() {
 
           @Override
           public boolean apply(HttpClient input) {

http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/services/puppet/src/test/java/org/apache/whirr/service/puppet/integration/PuppetServiceTest.java
----------------------------------------------------------------------
diff --git a/services/puppet/src/test/java/org/apache/whirr/service/puppet/integration/PuppetServiceTest.java b/services/puppet/src/test/java/org/apache/whirr/service/puppet/integration/PuppetServiceTest.java
index 72178e3..9f9ce8b 100644
--- a/services/puppet/src/test/java/org/apache/whirr/service/puppet/integration/PuppetServiceTest.java
+++ b/services/puppet/src/test/java/org/apache/whirr/service/puppet/integration/PuppetServiceTest.java
@@ -17,6 +17,8 @@
  */
 package org.apache.whirr.service.puppet.integration;
 
+import static org.jclouds.util.Predicates2.retry;
+
 import org.apache.commons.configuration.CompositeConfiguration;
 import org.apache.commons.configuration.PropertiesConfiguration;
 import org.apache.whirr.Cluster;
@@ -25,12 +27,12 @@ import org.apache.whirr.ClusterController;
 import org.apache.whirr.ClusterSpec;
 import org.apache.whirr.TestConstants;
 import org.jclouds.predicates.InetSocketAddressConnect;
-import org.jclouds.predicates.RetryablePredicate;
 import org.jclouds.util.Strings2;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+import com.google.common.base.Predicate;
 import com.google.common.net.HostAndPort;
 
 import java.io.IOException;
@@ -45,7 +47,7 @@ public class PuppetServiceTest {
   private ClusterSpec clusterSpec;
   private ClusterController controller;
   private Cluster cluster;
-  private RetryablePredicate<HostAndPort> socketTester;
+  private Predicate<HostAndPort> socketTester;
 
   @Before
   public void setUp() throws Exception {
@@ -58,8 +60,8 @@ public class PuppetServiceTest {
     clusterSpec = ClusterSpec.withTemporaryKeys(config);
     controller = new ClusterController();
     cluster = controller.launchCluster(clusterSpec);
-    socketTester = new RetryablePredicate<HostAndPort>(new InetSocketAddressConnect(), 60, 1, TimeUnit.SECONDS);
-
+    socketTester = retry(controller.getCompute().apply(clusterSpec).utils().injector().getInstance(InetSocketAddressConnect.class),
+                         60, 1, TimeUnit.SECONDS);
   }
 
   @Test(timeout = TestConstants.ITEST_TIMEOUT)

http://git-wip-us.apache.org/repos/asf/whirr/blob/8fdd6986/services/solr/src/main/java/org/apache/whirr/service/solr/SolrClusterActionHandler.java
----------------------------------------------------------------------
diff --git a/services/solr/src/main/java/org/apache/whirr/service/solr/SolrClusterActionHandler.java b/services/solr/src/main/java/org/apache/whirr/service/solr/SolrClusterActionHandler.java
index 4fa87a4..b85a714 100644
--- a/services/solr/src/main/java/org/apache/whirr/service/solr/SolrClusterActionHandler.java
+++ b/services/solr/src/main/java/org/apache/whirr/service/solr/SolrClusterActionHandler.java
@@ -18,7 +18,9 @@
 
 package org.apache.whirr.service.solr;
 
-import static com.google.common.io.ByteStreams.newInputStreamSupplier;
+import static com.google.common.base.Charsets.UTF_8;
+import static com.google.common.hash.Hashing.md5;
+import static com.google.common.io.BaseEncoding.base16;
 import static org.apache.whirr.RolePredicates.role;
 import static org.jclouds.scriptbuilder.domain.Statements.call;
 
@@ -35,7 +37,6 @@ import org.apache.whirr.service.ClusterActionEvent;
 import org.apache.whirr.service.ClusterActionHandlerSupport;
 import org.apache.whirr.service.FirewallManager.Rule;
 
-import org.jclouds.crypto.CryptoStreams;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -174,7 +175,7 @@ public class SolrClusterActionHandler extends ClusterActionHandlerSupport {
   }
 
   static String safeSecretString(String value) throws IOException {
-    return CryptoStreams.md5Hex(newInputStreamSupplier(("NaCl#" + value).getBytes()));
+    return md5Hex("NaCl#" + value);
   }
 
   private static class GetPublicIpFunction implements Function<Instance, String> {
@@ -194,4 +195,8 @@ public class SolrClusterActionHandler extends ClusterActionHandlerSupport {
       }
     }
   }
+
+  public static String md5Hex(String in) {
+    return base16().lowerCase().encode(md5().hashString(in, UTF_8).asBytes());
+  }
 }