Author: adriancole
Date: Wed Jul 25 04:49:46 2012
New Revision: 1365445

URL: http://svn.apache.org/viewvc?rev=1365445&view=rev
Log:
WHIRR-593: update to jclouds 1.5.0-beta.8

Modified:
    
whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/ListProvidersCommand.java
    
whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/RunScriptCommand.java
    whirr/trunk/core/src/main/java/org/apache/whirr/ByonClusterController.java
    whirr/trunk/core/src/main/java/org/apache/whirr/ClusterController.java
    
whirr/trunk/core/src/main/java/org/apache/whirr/actions/ScriptBasedClusterAction.java
    
whirr/trunk/core/src/main/java/org/apache/whirr/compute/BootstrapTemplate.java
    
whirr/trunk/core/src/main/java/org/apache/whirr/service/BlobStoreContextBuilder.java
    whirr/trunk/core/src/main/java/org/apache/whirr/service/ComputeCache.java
    whirr/trunk/core/src/main/java/org/apache/whirr/service/DryRunModule.java
    whirr/trunk/core/src/main/java/org/apache/whirr/service/FirewallManager.java
    
whirr/trunk/core/src/main/java/org/apache/whirr/service/jclouds/VariablesToExport.java
    whirr/trunk/core/src/main/resources/whirr-default.properties
    
whirr/trunk/core/src/test/java/org/apache/whirr/actions/BootstrapClusterActionTest.java
    
whirr/trunk/core/src/test/java/org/apache/whirr/compute/BootstrapTemplateTest.java
    
whirr/trunk/core/src/test/java/org/apache/whirr/service/jclouds/StatementBuilderTest.java
    
whirr/trunk/core/src/test/java/org/apache/whirr/service/jclouds/integration/FirewallManagerTest.java
    whirr/trunk/pom.xml
    
whirr/trunk/services/puppet/src/test/java/org/apache/whirr/service/puppet/integration/PuppetServiceTest.java

Modified: 
whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/ListProvidersCommand.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/ListProvidersCommand.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- 
whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/ListProvidersCommand.java
 (original)
+++ 
whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/ListProvidersCommand.java
 Wed Jul 25 04:49:46 2012
@@ -19,8 +19,13 @@
 package org.apache.whirr.cli.command;
 
 import com.google.common.collect.ImmutableSet;
+
 import org.apache.whirr.ClusterControllerFactory;
 import org.apache.whirr.command.AbstractClusterCommand;
+import org.jclouds.apis.ApiMetadata;
+import org.jclouds.apis.Apis;
+import org.jclouds.blobstore.BlobStoreContext;
+import org.jclouds.compute.ComputeServiceContext;
 import org.jclouds.providers.ProviderMetadata;
 import org.jclouds.providers.Providers;
 
@@ -74,21 +79,37 @@ public class ListProvidersCommand extend
 
       out.println("\tHomepage: " + blobstore.getHomepage());
       out.println("\tConsole: " + blobstore.getConsole());
-      out.println("\tAPI: " + blobstore.getApiDocumentation());
+      out.println("\tAPI: " + blobstore.getApiMetadata().getDocumentation());
 
       out.println("\tConfiguration options:");
 
       out.println("\t\twhirr.blobstore-provider = " + blobstore.getId());
-      out.println("\t\twhirr.blobstore-identity = <" + 
blobstore.getIdentityName() +">");
-      out.println("\t\twhirr.blobstore-credential = <" + 
blobstore.getCredentialName() + ">\n");
+      out.println("\t\twhirr.blobstore-identity = <" + 
blobstore.getApiMetadata().getIdentityName() +">");
+      out.println("\t\twhirr.blobstore-credential = <" + 
blobstore.getApiMetadata().getCredentialName().or("UNUSED") + ">\n");
     }
   }
 
+  public void listBlobstoreApis(Iterable<ApiMetadata> blobstoreApis, 
PrintStream out) {
+    for(ApiMetadata blobstore : blobstoreApis) {
+      out.println("* " + blobstore.getName());
+
+      out.println("\tAPI: " + blobstore.getDocumentation());
+
+      out.println("\tConfiguration options:");
+
+      out.println("\t\twhirr.blobstore-provider = " + blobstore.getId());
+      out.println("\t\twhirr.blobstore-endpoint = " + 
blobstore.getEndpointName());
+      out.println("\t\twhirr.blobstore-identity = <" + 
blobstore.getIdentityName() +">");
+      out.println("\t\twhirr.blobstore-credential = <" + 
blobstore.getCredentialName().or("UNUSED") + ">\n");
+    }
+  }
+ 
   private void listBlobstoreProviders(PrintStream out) {
-    listBlobstoreProviders(Providers.allBlobStore(),out);
+    listBlobstoreProviders(Providers.viewableAs(BlobStoreContext.class), out);
+    listBlobstoreApis(Apis.viewableAs(BlobStoreContext.class), out);
   }
 
-  public void listComputeProviders(Iterable<ProviderMetadata> 
computeProviders,PrintStream out) {
+  public void listComputeProviders(Iterable<ProviderMetadata> 
computeProviders, PrintStream out) {
     for(ProviderMetadata provider : computeProviders) {
       if (testedComputeProviders.contains(provider.getId())) {
         out.println("* " + provider.getName() + " - tested");
@@ -98,17 +119,36 @@ public class ListProvidersCommand extend
 
       out.println("\tHomepage: " + provider.getHomepage());
       out.println("\tConsole: " + provider.getConsole());
-      out.println("\tAPI: " + provider.getApiDocumentation());
+      out.println("\tAPI: " + provider.getApiMetadata().getDocumentation());
 
       out.println("\tConfiguration options:");
 
       out.println("\t\twhirr.provider = " + provider.getId());
-      out.println("\t\twhirr.identity =  <" + provider.getIdentityName() + 
">");
-      out.println("\t\twhirr.credential = <" + provider.getCredentialName() + 
">\n");
+      out.println("\t\twhirr.identity =  <" + 
provider.getApiMetadata().getIdentityName() +">");
+      out.println("\t\twhirr.credential = <" + 
provider.getApiMetadata().getCredentialName().or("UNUSED") + ">\n");
+    }
+  }
+  
+  public void listComputeApis(Iterable<ApiMetadata> computeApis, PrintStream 
out) {
+    for(ApiMetadata api : computeApis) {
+      if (testedComputeProviders.contains(api.getId())) {
+        out.println("* " + api.getName() + " - tested");
+      } else {
+        out.println("* " + api.getName());
+      }
+
+      out.println("\tAPI: " + api.getDocumentation());
+
+      out.println("\tConfiguration options:");
+
+      out.println("\t\twhirr.provider = " + api.getId());
+      out.println("\t\twhirr.endpoint = " + api.getEndpointName());
+      out.println("\t\twhirr.identity =  <" + api.getIdentityName() +">");
+      out.println("\t\twhirr.credential = <" + 
api.getCredentialName().or("UNUSED") + ">\n");
     }
   }
 
   private void listComputeProviders(PrintStream out) {
-    listComputeProviders(Providers.allCompute(),out);
+    listComputeProviders(Providers.viewableAs(ComputeServiceContext.class), 
out);
   }
 }

Modified: 
whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/RunScriptCommand.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/RunScriptCommand.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- 
whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/RunScriptCommand.java
 (original)
+++ 
whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/RunScriptCommand.java
 Wed Jul 25 04:49:46 2012
@@ -159,8 +159,8 @@ public class RunScriptCommand extends Ab
           entry.getKey().getPublicAddresses()));
 
       ExecResponse response = entry.getValue();
-      if (response.getExitCode() != 0) {
-        exitStatus = response.getExitCode();
+      if (response.getExitStatus() != 0) {
+        exitStatus = response.getExitStatus();
       }
       out.printf("%s%n", response.getOutput());
       err.printf("%s%n", response.getError());

Modified: 
whirr/trunk/core/src/main/java/org/apache/whirr/ByonClusterController.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/java/org/apache/whirr/ByonClusterController.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- whirr/trunk/core/src/main/java/org/apache/whirr/ByonClusterController.java 
(original)
+++ whirr/trunk/core/src/main/java/org/apache/whirr/ByonClusterController.java 
Wed Jul 25 04:49:46 2012
@@ -35,7 +35,6 @@ import org.jclouds.compute.ComputeServic
 import org.jclouds.compute.RunScriptOnNodesException;
 import org.jclouds.compute.domain.ExecResponse;
 import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.NodeState;
 import org.jclouds.compute.options.RunScriptOptions;
 import org.jclouds.scriptbuilder.domain.Statement;
 
@@ -123,7 +122,7 @@ public class ByonClusterController exten
     return new Predicate<NodeMetadata>() {
       @Override
       public boolean apply(final NodeMetadata nodeMetadata) {
-        return instanceIds.contains(nodeMetadata.getId()) && 
nodeMetadata.getState().equals(NodeState.RUNNING);
+        return instanceIds.contains(nodeMetadata.getId()) && 
nodeMetadata.getStatus().equals(NodeMetadata.Status.RUNNING);
       }
     };
   }

Modified: whirr/trunk/core/src/main/java/org/apache/whirr/ClusterController.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/java/org/apache/whirr/ClusterController.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- whirr/trunk/core/src/main/java/org/apache/whirr/ClusterController.java 
(original)
+++ whirr/trunk/core/src/main/java/org/apache/whirr/ClusterController.java Wed 
Jul 25 04:49:46 2012
@@ -43,7 +43,6 @@ import org.jclouds.compute.RunScriptOnNo
 import org.jclouds.compute.domain.ComputeMetadata;
 import org.jclouds.compute.domain.ExecResponse;
 import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.NodeState;
 import org.jclouds.compute.options.RunScriptOptions;
 import org.jclouds.domain.Credentials;
 import org.jclouds.domain.LoginCredentials;
@@ -264,7 +263,7 @@ public class ClusterController {
     RunScriptOptions options) throws IOException, RunScriptOnNodesException {
 
     LoginCredentials credentials = LoginCredentials.builder()
-      .user(spec.getClusterUser()).privateKey(spec.getPrivateKey()).build();
+        .user(spec.getClusterUser()).privateKey(spec.getPrivateKey()).build();
 
     if (options == null) {
       options = defaultRunScriptOptionsForSpec(spec);
@@ -281,7 +280,7 @@ public class ClusterController {
 
   public RunScriptOptions defaultRunScriptOptionsForSpec(ClusterSpec spec) {
     LoginCredentials credentials = LoginCredentials.builder()
-      .user(spec.getClusterUser()).privateKey(spec.getPrivateKey()).build();
+        .user(spec.getClusterUser()).privateKey(spec.getPrivateKey()).build();
     return overrideLoginCredentials(credentials).wrapInInitScript(false)
       .runAsRoot(false);
   }
@@ -345,7 +344,7 @@ public class ClusterController {
         if (computeMetadata instanceof NodeMetadata) {
           NodeMetadata nodeMetadata = (NodeMetadata) computeMetadata;
           return group.equals(nodeMetadata.getGroup())
-            && nodeMetadata.getState() == NodeState.RUNNING;
+            && nodeMetadata.getStatus() == NodeMetadata.Status.RUNNING;
         }
         return false;
       }

Modified: 
whirr/trunk/core/src/main/java/org/apache/whirr/actions/ScriptBasedClusterAction.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/java/org/apache/whirr/actions/ScriptBasedClusterAction.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- 
whirr/trunk/core/src/main/java/org/apache/whirr/actions/ScriptBasedClusterAction.java
 (original)
+++ 
whirr/trunk/core/src/main/java/org/apache/whirr/actions/ScriptBasedClusterAction.java
 Wed Jul 25 04:49:46 2012
@@ -163,7 +163,7 @@ public abstract class ScriptBasedCluster
     final ClusterSpec clusterSpec = 
eventMap.values().iterator().next().getClusterSpec();
 
     final RunScriptOptions options = 
overrideLoginCredentials(LoginCredentials.builder().user(clusterSpec.getClusterUser())
-          .privateKey(clusterSpec.getPrivateKey()).build());
+                                                              
.privateKey(clusterSpec.getPrivateKey()).build());
     for (Map.Entry<InstanceTemplate, ClusterActionEvent> entry : 
eventMap.entrySet()) {
       if (shouldIgnoreInstanceTemplate(entry.getKey())) {
         continue; // skip if not in the target

Modified: 
whirr/trunk/core/src/main/java/org/apache/whirr/compute/BootstrapTemplate.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/java/org/apache/whirr/compute/BootstrapTemplate.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- 
whirr/trunk/core/src/main/java/org/apache/whirr/compute/BootstrapTemplate.java 
(original)
+++ 
whirr/trunk/core/src/main/java/org/apache/whirr/compute/BootstrapTemplate.java 
Wed Jul 25 04:49:46 2012
@@ -18,20 +18,18 @@
 
 package org.apache.whirr.compute;
 
-import com.google.common.base.Splitter;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
 import static org.jclouds.compute.options.TemplateOptions.Builder.runScript;
 import static org.jclouds.scriptbuilder.domain.Statements.appendFile;
 import static 
org.jclouds.scriptbuilder.domain.Statements.createOrOverwriteFile;
 import static org.jclouds.scriptbuilder.domain.Statements.interpret;
 import static org.jclouds.scriptbuilder.domain.Statements.newStatementList;
+import static 
org.jclouds.scriptbuilder.statements.ssh.SshStatements.sshdConfig;
 
 import org.apache.whirr.ClusterSpec;
 import org.apache.whirr.InstanceTemplate;
 import org.apache.whirr.service.jclouds.StatementBuilder;
 import org.apache.whirr.service.jclouds.TemplateBuilderStrategy;
-import org.jclouds.aws.ec2.AWSEC2Client;
+import org.jclouds.aws.ec2.AWSEC2ApiMetadata;
 import org.jclouds.aws.ec2.compute.AWSEC2TemplateOptions;
 import org.jclouds.compute.ComputeService;
 import org.jclouds.compute.ComputeServiceContext;
@@ -41,8 +39,11 @@ import org.jclouds.scriptbuilder.domain.
 import org.jclouds.scriptbuilder.domain.Statement;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import com.google.common.base.Joiner;
-import static 
org.jclouds.scriptbuilder.statements.ssh.SshStatements.sshdConfig;
+import com.google.common.base.Splitter;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
 
 public class BootstrapTemplate {
 
@@ -81,8 +82,8 @@ public class BootstrapTemplate {
   private static void ensureUserExistsAndAuthorizeSudo(
       StatementBuilder builder, String user, String publicKey, String 
privateKey
   ) {
-    builder.addExport("newUser", user);
-    builder.addExport("defaultHome", "/home/users");
+    builder.addExport("NEW_USER", user);
+    builder.addExport("DEFAULT_HOME", "/home/users");
     builder.addStatement(0, newStatementList(
         ensureUserExistsWithPublicAndPrivateKey(user, publicKey, privateKey),
         makeSudoersOnlyPermitting(user),
@@ -97,7 +98,7 @@ public class BootstrapTemplate {
       ComputeServiceContext context, ClusterSpec spec, Template template, 
InstanceTemplate instanceTemplate
   ) {
 
-    if (context != null && context.getProviderSpecificContext().getApi() 
instanceof AWSEC2Client) {
+    if 
(AWSEC2ApiMetadata.CONTEXT_TOKEN.isAssignableFrom(context.getBackendType())) {
       float spotPrice = firstPositiveOrDefault(
         0,  /* by default use regular instances */
         instanceTemplate.getAwsEc2SpotPrice(),

Modified: 
whirr/trunk/core/src/main/java/org/apache/whirr/service/BlobStoreContextBuilder.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/java/org/apache/whirr/service/BlobStoreContextBuilder.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- 
whirr/trunk/core/src/main/java/org/apache/whirr/service/BlobStoreContextBuilder.java
 (original)
+++ 
whirr/trunk/core/src/main/java/org/apache/whirr/service/BlobStoreContextBuilder.java
 Wed Jul 25 04:49:46 2012
@@ -18,20 +18,27 @@
 
 package org.apache.whirr.service;
 
+import java.util.Map;
 import java.util.Properties;
+import java.util.Set;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationConverter;
 import org.apache.whirr.ClusterSpec;
+import org.jclouds.Context;
+import org.jclouds.ContextBuilder;
+import org.jclouds.apis.ApiMetadata;
+import org.jclouds.apis.Apis;
 import org.jclouds.blobstore.AsyncBlobStore;
 import org.jclouds.blobstore.BlobMap;
 import org.jclouds.blobstore.BlobRequestSigner;
 import org.jclouds.blobstore.BlobStore;
 import org.jclouds.blobstore.BlobStoreContext;
-import org.jclouds.blobstore.BlobStoreContextFactory;
 import org.jclouds.blobstore.InputStreamMap;
 import org.jclouds.blobstore.attr.ConsistencyModel;
 import org.jclouds.blobstore.options.ListContainerOptions;
+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;
@@ -48,6 +55,8 @@ import com.google.common.cache.LoadingCa
 import com.google.common.collect.ForwardingObject;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
+import com.google.common.collect.Maps;
+import com.google.common.reflect.TypeToken;
 import com.google.inject.Module;
 
 public class BlobStoreContextBuilder {
@@ -67,14 +76,17 @@ public class BlobStoreContextBuilder {
     @VisibleForTesting
     final LoadingCache<Key, BlobStoreContext> cache = 
CacheBuilder.newBuilder().build(
        new CacheLoader<Key, BlobStoreContext>(){
-        private final BlobStoreContextFactory factory =  new 
BlobStoreContextFactory();
         
         @Override
         public BlobStoreContext load(Key arg0) {
           LOG.debug("creating new BlobStoreContext {}", arg0);
           BlobStoreContext context = new IgnoreCloseBlobStoreContext(
-              factory.createContext(arg0.provider, arg0.identity, 
arg0.credential,
-                                    ImmutableSet.<Module>of(), 
arg0.overrides));
+              ContextBuilder.newBuilder(arg0.provider)
+                            .credentials(arg0.identity, arg0.credential)
+                            .overrides(arg0.overrides)
+                            .modules(ImmutableSet.<Module>of(new 
SLF4JLoggingModule(), 
+                                                  new 
EnterpriseConfigurationModule()))
+                            .buildView(BlobStoreContext.class));
           LOG.info("created new BlobStoreContext {}", context);
           return context;
        }
@@ -149,6 +161,7 @@ public class BlobStoreContextBuilder {
     }
 
     @Override
+    @Deprecated
     public <S, A> RestContext<S, A> getProviderSpecificContext() {
       return delegate().getProviderSpecificContext();
     }
@@ -165,30 +178,30 @@ public class BlobStoreContextBuilder {
 
     @Override
     public void close() {
-      // ignore; closed by shutdown hook
+       /* Do nothing. The instance is closed by the builder */
     }
 
-  }
+    @Override
+    public TypeToken<?> getBackendType() {
+      return delegate().getBackendType();
+    }
 
-  /**
-   * All APIs that are independently configurable.
-   * @see <a href="http://code.google.com/p/jclouds/issues/detail?id=657"; />
-   */
-  public static final Iterable<String> BLOBSTORE_APIS = 
ImmutableSet.of("transient", "file", "swift", "walrus",
-      "atmos", "aws-s3", "cloudfiles-us", "cloudfiles-uk");
+    @Override
+    public <C extends Context> C unwrap(TypeToken<C> type) {
+      return delegate().unwrap(type);
+    }
 
-  /**
-   *  jclouds providers and apis that can be used in BlobStoreContextFactory
-   */
-  public static final Iterable<String> BLOBSTORE_KEYS = Iterables.concat(
-      Iterables.transform(Providers.allCompute(), new 
Function<ProviderMetadata, String>() {
+    @Override
+    public <C extends Context> C unwrap(Class<C> clazz) {
+      return delegate().unwrap(clazz);
+    }
 
-        @Override
-        public String apply(ProviderMetadata input) {
-          return input.getId();
-        }
+    @Override
+    public <C extends Context> C unwrap() {
+      return delegate().unwrap();
+    }
 
-      }), BLOBSTORE_APIS);
+  }
 
   /**
    * configurable properties, scoped to a provider.
@@ -205,7 +218,15 @@ public class BlobStoreContextBuilder {
     private final String credential;
     private final String key;
     private final Properties overrides;
-
+    
+    public static final Map<String, ApiMetadata> BLOBSTORE_APIS = 
Maps.uniqueIndex(Apis.viewableAs(BlobStoreContext.class),
+        Apis.idFunction());
+     
+    public static final Map<String, ProviderMetadata> BLOBSTORE_PROVIDERS = 
Maps.uniqueIndex(Providers.viewableAs(BlobStoreContext.class),
+        Providers.idFunction());
+     
+    public static final Set<String> BLOBSTORE_KEYS = 
ImmutableSet.copyOf(Iterables.concat(BLOBSTORE_PROVIDERS.keySet(), 
BLOBSTORE_APIS.keySet()));
+     
     public Key(ClusterSpec spec) {
       provider = spec.getBlobStoreProvider();
       identity = spec.getBlobStoreIdentity();

Modified: 
whirr/trunk/core/src/main/java/org/apache/whirr/service/ComputeCache.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/java/org/apache/whirr/service/ComputeCache.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- whirr/trunk/core/src/main/java/org/apache/whirr/service/ComputeCache.java 
(original)
+++ whirr/trunk/core/src/main/java/org/apache/whirr/service/ComputeCache.java 
Wed Jul 25 04:49:46 2012
@@ -25,25 +25,31 @@ import static org.jclouds.location.refer
 
 import java.util.Map;
 import java.util.Properties;
+import java.util.Set;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationConverter;
 import org.apache.commons.lang.StringUtils;
 import org.apache.whirr.ClusterSpec;
+import org.jclouds.Context;
+import org.jclouds.ContextBuilder;
+import org.jclouds.apis.ApiMetadata;
+import org.jclouds.apis.Apis;
 import org.jclouds.compute.ComputeService;
 import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.compute.ComputeServiceContextFactory;
 import org.jclouds.compute.Utils;
 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;
 import org.slf4j.LoggerFactory;
 
@@ -56,8 +62,10 @@ import com.google.common.cache.LoadingCa
 import com.google.common.collect.ForwardingObject;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
+import com.google.common.collect.Maps;
 import com.google.common.eventbus.AllowConcurrentEvents;
 import com.google.common.eventbus.Subscribe;
+import com.google.common.reflect.TypeToken;
 import com.google.inject.Module;
 
 /**
@@ -79,14 +87,16 @@ public enum ComputeCache implements Func
   @VisibleForTesting
   final LoadingCache<Key, ComputeServiceContext> cache = 
CacheBuilder.newBuilder().build(
         new CacheLoader<Key, ComputeServiceContext>(){
-        private final ComputeServiceContextFactory factory =  new 
ComputeServiceContextFactory();
                
         @Override
         public ComputeServiceContext load(Key arg0) {
           LOG.debug("creating new ComputeServiceContext {}", arg0);
-          ComputeServiceContext context = new 
IgnoreCloseComputeServiceContext(factory.createContext(
-            arg0.provider, arg0.identity, arg0.credential,
-            ImmutableSet.<Module>of(), arg0.overrides));
+          ComputeServiceContext context = new IgnoreCloseComputeServiceContext(
+              ContextBuilder.newBuilder(arg0.provider)
+                            .credentials(arg0.identity, arg0.credential)
+                            .overrides(arg0.overrides)
+                            .modules(arg0.modules)
+                            .buildView(ComputeServiceContext.class));
           LOG.debug("created new ComputeServiceContext {}", context);
           context.utils().eventBus().register(ComputeCache.this);
           return context;
@@ -153,16 +163,19 @@ public enum ComputeCache implements Func
     }
 
     @Override
+    @Deprecated
     public <S, A> RestContext<S, A> getProviderSpecificContext() {
       return delegate().getProviderSpecificContext();
     }
 
     @Override
+    @Deprecated
     public Map<String, Credentials> getCredentialStore() {
       return delegate().getCredentialStore();
     }
 
     @Override
+    @Deprecated
     public Map<String, Credentials> credentialStore() {
       return delegate().credentialStore();
     }
@@ -179,32 +192,38 @@ public enum ComputeCache implements Func
 
     @Override
     public void close() {
-      /* Do nothing. The instance is closed by the builder */
+       /* Do nothing. The instance is closed by the builder */
     }
 
-  }
+    @Override
+    public TypeToken<?> getBackendType() {
+      return delegate().getBackendType();
+    }
 
-  /**
-   * All APIs that are independently configurable.
-   * @see <a href="http://code.google.com/p/jclouds/issues/detail?id=657"; />
-   */
-  public static final Iterable<String> COMPUTE_APIS = ImmutableSet.of(
-      "stub", "nova", "vcloud", "elasticstack",
-      "eucalyptus", "deltacloud", "byon"
-  );
+    @Override
+    public <C extends Context> C unwrap(TypeToken<C> type) {
+      return delegate().unwrap(type);
+    }
 
-  /**
-   *  jclouds providers and apis that can be used in 
ComputeServiceContextFactory
-   */
-  public static final Iterable<String> COMPUTE_KEYS = Iterables.concat(
-      Iterables.transform(Providers.allCompute(), new 
Function<ProviderMetadata, String>() {
+    @Override
+    public <C extends Context> C unwrap(Class<C> clazz) {
+      return delegate().unwrap(clazz);
+    }
 
-        @Override
-        public String apply(ProviderMetadata input) {
-          return input.getId();
-        }
+    @Override
+    public <C extends Context> C unwrap() {
+      return delegate().unwrap();
+    }
 
-      }), COMPUTE_APIS);
+  }
+
+  public static final Map<String, ApiMetadata> COMPUTE_APIS = 
Maps.uniqueIndex(Apis.viewableAs(ComputeServiceContext.class),
+      Apis.idFunction());
+  
+  public static final Map<String, ProviderMetadata> COMPUTE_PROVIDERS = 
Maps.uniqueIndex(Providers.viewableAs(ComputeServiceContext.class),
+      Providers.idFunction());
+     
+  public static final Set<String> COMPUTE_KEYS = 
ImmutableSet.copyOf(Iterables.concat(COMPUTE_PROVIDERS.keySet(), 
COMPUTE_APIS.keySet()));
 
   /**
    * configurable properties, scoped to a provider.
@@ -222,6 +241,8 @@ public enum ComputeCache implements Func
 
     private final String key;
     private final Properties overrides;
+    private final Set<Module> modules;
+
 
     public Key(ClusterSpec spec) {
       provider = spec.getProvider();
@@ -252,9 +273,10 @@ public enum ComputeCache implements Func
       }
 
       if ("stub".equals(spec.getProvider())) {
-        overrides.setProperty("jclouds.modules",
-          SLF4JLoggingModule.class.getName() + 
",org.apache.whirr.service.DryRunModule"
-        );
+        modules = ImmutableSet.<Module>of(new SLF4JLoggingModule(), new 
DryRunModule());
+      } else {
+        modules = ImmutableSet.<Module>of(new SLF4JLoggingModule(), 
+            new EnterpriseConfigurationModule(), new SshjSshClientModule());
       }
     }
 

Modified: 
whirr/trunk/core/src/main/java/org/apache/whirr/service/DryRunModule.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/java/org/apache/whirr/service/DryRunModule.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- whirr/trunk/core/src/main/java/org/apache/whirr/service/DryRunModule.java 
(original)
+++ whirr/trunk/core/src/main/java/org/apache/whirr/service/DryRunModule.java 
Wed Jul 25 04:49:46 2012
@@ -37,6 +37,7 @@ import javax.annotation.Nullable;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 
+import org.jclouds.compute.domain.ExecChannel;
 import org.jclouds.compute.domain.ExecResponse;
 import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.compute.events.StatementOnNode;
@@ -46,7 +47,6 @@ import org.jclouds.domain.Credentials;
 import org.jclouds.domain.LoginCredentials;
 import org.jclouds.io.Payload;
 import org.jclouds.io.payloads.StringPayload;
-import org.jclouds.net.IPSocket;
 import org.jclouds.scriptbuilder.domain.Statement;
 import org.jclouds.ssh.SshClient;
 import org.slf4j.Logger;
@@ -65,6 +65,7 @@ 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;
 
@@ -126,11 +127,11 @@ public class DryRunModule extends Abstra
   }
   
   private static class Key {
-    private final IPSocket socket;
+    private final HostAndPort socket;
     private final Credentials creds;
     private final NodeMetadata node;
 
-    Key(IPSocket socket, Credentials creds, @Nullable NodeMetadata node) {
+    Key(HostAndPort socket, Credentials creds, @Nullable NodeMetadata node) {
       this.socket = socket;
       this.creds = creds;
       this.node = node;
@@ -153,7 +154,7 @@ public class DryRunModule extends Abstra
     @Override
     public String toString() {
       return String.format("%s#%s@%s:%d", node.getName(), creds.identity,
-          socket.getAddress(), socket.getPort());
+          socket.getHostText(), socket.getPort());
     }
   }
 
@@ -203,15 +204,15 @@ public class DryRunModule extends Abstra
       }
 
       @Override
-      public SshClient create(final IPSocket socket, Credentials loginCreds) {
+      public SshClient create(final HostAndPort socket, Credentials 
loginCreds) {
         return clientMap.getUnchecked(new Key(socket, loginCreds, 
find(nodes.values(),
-            new NodeHasAddress(socket.getAddress()))));
+            new NodeHasAddress(socket.getHostText()))));
       }
 
       @Override
-      public SshClient create(IPSocket socket, LoginCredentials credentials) {
+      public SshClient create(HostAndPort socket, LoginCredentials 
credentials) {
         return clientMap.getUnchecked(new Key(socket, credentials, 
find(nodes.values(),
-            new NodeHasAddress(socket.getAddress()))));
+            new NodeHasAddress(socket.getHostText()))));
       }
     }
 
@@ -271,7 +272,7 @@ public class DryRunModule extends Abstra
 
     @Override
     public String getHostAddress() {
-      return key.socket.getAddress();
+      return key.socket.getHostText();
     }
 
     @Override
@@ -307,6 +308,11 @@ public class DryRunModule extends Abstra
     public void put(String path, String text) {
       put(path, new StringPayload(text));
     }
+
+   @Override
+   public ExecChannel execChannel(String command) {
+      throw new UnsupportedOperationException();
+   }
   }
 
   public static String md5Hex(String in) {

Modified: 
whirr/trunk/core/src/main/java/org/apache/whirr/service/FirewallManager.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/java/org/apache/whirr/service/FirewallManager.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- 
whirr/trunk/core/src/main/java/org/apache/whirr/service/FirewallManager.java 
(original)
+++ 
whirr/trunk/core/src/main/java/org/apache/whirr/service/FirewallManager.java 
Wed Jul 25 04:49:46 2012
@@ -31,6 +31,7 @@ import org.apache.whirr.Cluster.Instance
 import org.apache.whirr.ClusterSpec;
 import org.jclouds.aws.util.AWSUtils;
 import org.jclouds.compute.ComputeServiceContext;
+import org.jclouds.ec2.EC2ApiMetadata;
 import org.jclouds.ec2.EC2Client;
 import org.jclouds.ec2.domain.IpProtocol;
 import org.jclouds.javax.annotation.Nullable;
@@ -200,15 +201,13 @@ public class FirewallManager {
   public static void authorizeIngress(ComputeServiceContext 
computeServiceContext,
       Set<Instance> instances, ClusterSpec clusterSpec, List<String> cidrs, 
int... ports) {
 
-    if (computeServiceContext.getProviderSpecificContext().getApi() instanceof
-      EC2Client) {
+    if 
(EC2ApiMetadata.CONTEXT_TOKEN.isAssignableFrom(computeServiceContext.getBackendType()))
 {
       // This code (or something like it) may be added to jclouds (see
       // http://code.google.com/p/jclouds/issues/detail?id=336).
       // Until then we need this temporary workaround.
       String region = AWSUtils.parseHandle(Iterables.get(instances, 
0).getId())[0];
-      EC2Client ec2Client = EC2Client.class.cast(
-          computeServiceContext.getProviderSpecificContext().getApi());
-      String groupName = "jclouds#" + clusterSpec.getClusterName() + "#" + 
region;
+      EC2Client ec2Client = 
computeServiceContext.unwrap(EC2ApiMetadata.CONTEXT_TOKEN).getApi();
+      String groupName = "jclouds#" + clusterSpec.getClusterName();
       for (String cidr : cidrs) {
         for (int port : ports) {
           try {

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=1365445&r1=1365444&r2=1365445&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
 Wed Jul 25 04:49:46 2012
@@ -70,21 +70,21 @@ class VariablesToExport implements Suppl
 
   private void addDefaultEnvironmentVariablesForInstance(Map<String, String> 
metadataMap, Instance instance) {
     if (clusterSpec.getClusterName() != null)
-      metadataMap.put("clusterName", clusterSpec.getClusterName());
+      metadataMap.put("CLUSTER_NAME", clusterSpec.getClusterName());
     if (clusterSpec.getProvider() != null)
-      metadataMap.put("cloudProvider", clusterSpec.getProvider());
+      metadataMap.put("CLOUD_PROVIDER", clusterSpec.getProvider());
     if (instance != null) {
-      metadataMap.put("roles", Joiner.on(",").join(instance.getRoles()));
+      metadataMap.put("ROLES", Joiner.on(",").join(instance.getRoles()));
       if (instance.getPublicIp() != null)
-        metadataMap.put("publicIp", instance.getPublicIp());
+        metadataMap.put("PUBLIC_IP", instance.getPublicIp());
       if (instance.getPrivateIp() != null)
-         metadataMap.put("privateIp", instance.getPrivateIp());
+         metadataMap.put("PRIVATE_IP", instance.getPrivateIp());
       if (!clusterSpec.isStub()) {
         try {
           if (instance.getPublicIp() != null)
-            metadataMap.put("publicHostName", instance.getPublicHostName());
+            metadataMap.put("PUBLIC_HOST_NAME", instance.getPublicHostName());
           if (instance.getPrivateIp() != null)
-            metadataMap.put("privateHostName", instance.getPrivateHostName());
+            metadataMap.put("PRIVATE_HOST_NAME", 
instance.getPrivateHostName());
         } catch (IOException e) {
           LOG.warn("Could not resolve hostname for " + instance, e);
         }

Modified: whirr/trunk/core/src/main/resources/whirr-default.properties
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/resources/whirr-default.properties?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- whirr/trunk/core/src/main/resources/whirr-default.properties (original)
+++ whirr/trunk/core/src/main/resources/whirr-default.properties Wed Jul 25 
04:49:46 2012
@@ -25,6 +25,4 @@ whirr.max-startup-retries=1
 
 whirr.cluster-user=${sys:user.name}
 
-whirr.state-store=local
-
-jclouds.modules=org.jclouds.logging.slf4j.config.SLF4JLoggingModule,org.jclouds.enterprise.config.EnterpriseConfigurationModule,org.jclouds.sshj.config.SshjSshClientModule
\ No newline at end of file
+whirr.state-store=local
\ No newline at end of file

Modified: 
whirr/trunk/core/src/test/java/org/apache/whirr/actions/BootstrapClusterActionTest.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/test/java/org/apache/whirr/actions/BootstrapClusterActionTest.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- 
whirr/trunk/core/src/test/java/org/apache/whirr/actions/BootstrapClusterActionTest.java
 (original)
+++ 
whirr/trunk/core/src/test/java/org/apache/whirr/actions/BootstrapClusterActionTest.java
 Wed Jul 25 04:49:46 2012
@@ -43,6 +43,7 @@ import org.apache.whirr.compute.NodeStar
 import org.apache.whirr.compute.NodeStarterFactory;
 import org.apache.whirr.service.ClusterActionHandler;
 import org.apache.whirr.service.ClusterActionHandlerFactory;
+import org.jclouds.Context;
 import org.jclouds.compute.ComputeService;
 import org.jclouds.compute.ComputeServiceContext;
 import org.jclouds.compute.RunNodesException;
@@ -52,7 +53,6 @@ import org.jclouds.compute.domain.Image;
 import org.jclouds.compute.domain.ImageBuilder;
 import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.compute.domain.NodeMetadataBuilder;
-import org.jclouds.compute.domain.NodeState;
 import org.jclouds.compute.domain.OperatingSystem;
 import org.jclouds.compute.domain.Template;
 import org.jclouds.compute.domain.TemplateBuilder;
@@ -72,6 +72,7 @@ import com.google.common.collect.Immutab
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
+import com.google.common.reflect.TypeToken;
 
 public class BootstrapClusterActionTest {
 
@@ -120,6 +121,8 @@ public class BootstrapClusterActionTest 
 
     when(getCompute.apply(clusterSpec)).thenReturn(serviceContext);
     when(serviceContext.getComputeService()).thenReturn(computeService);
+    when(computeService.getContext()).thenReturn(serviceContext);
+    
when(serviceContext.getBackendType()).thenReturn(TypeToken.class.cast(TypeToken.of(Context.class)));
     when(computeService.templateBuilder()).thenReturn(templateBuilder);
     when(templateBuilder.options((TemplateOptions) 
any())).thenReturn(templateBuilder);
     when(templateBuilder.build()).thenReturn(template);
@@ -187,6 +190,8 @@ public class BootstrapClusterActionTest 
 
     when(getCompute.apply(clusterSpec)).thenReturn(serviceContext);
     when(serviceContext.getComputeService()).thenReturn(computeService);
+    when(computeService.getContext()).thenReturn(serviceContext);
+    
when(serviceContext.getBackendType()).thenReturn(TypeToken.class.cast(TypeToken.of(Context.class)));
     when(computeService.templateBuilder()).thenReturn(templateBuilder);
     when(templateBuilder.options((TemplateOptions) 
any())).thenReturn(templateBuilder);
     when(templateBuilder.build()).thenReturn(template);
@@ -300,7 +305,7 @@ public class BootstrapClusterActionTest 
         NodeMetadata nodeMeta = new NodeMetadataBuilder()
             .providerId("ec2").name("" + roles + id).id("nodeId" + id + i)
             .location(location).uri(URI.create("http://node"; + i))
-            .state(NodeState.RUNNING).privateAddresses(addresses)
+            .status(NodeMetadata.Status.RUNNING).privateAddresses(addresses)
             .publicAddresses(addresses)
             .credentials(loginCredentials).hostname("hostname").build();
         if (i < only) {
@@ -314,7 +319,7 @@ public class BootstrapClusterActionTest 
       if (failedNodes.size() > 0) {
         Image image = new 
ImageBuilder().providerId("ec2").name("test").id("testId").location(location)
               
.uri(URI.create("http://node";)).operatingSystem(OperatingSystem.builder().description("op").build())
-              
.description("description").defaultCredentials(loginCredentials).build();
+              
.description("description").status(Image.Status.AVAILABLE).defaultCredentials(loginCredentials).build();
         Hardware hardware = new 
HardwareBuilder().providerId("ec2").name("test").id("testId").location(location)
               .uri(URI.create("http://node";)).ram(1).hypervisor("xen").build();
         Template template = new TemplateImpl(image, hardware, location, 
TemplateOptions.NONE);
@@ -362,6 +367,8 @@ public class BootstrapClusterActionTest 
 
     when(getCompute.apply(clusterSpec)).thenReturn(serviceContext);
     when(serviceContext.getComputeService()).thenReturn(computeService);
+    when(computeService.getContext()).thenReturn(serviceContext);
+    
when(serviceContext.getBackendType()).thenReturn(TypeToken.class.cast(TypeToken.of(Context.class)));
     when(computeService.templateBuilder()).thenReturn(templateBuilder);
     when(templateBuilder.options((TemplateOptions) 
any())).thenReturn(templateBuilder);
     when(templateBuilder.build()).thenReturn(template);

Modified: 
whirr/trunk/core/src/test/java/org/apache/whirr/compute/BootstrapTemplateTest.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/test/java/org/apache/whirr/compute/BootstrapTemplateTest.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- 
whirr/trunk/core/src/test/java/org/apache/whirr/compute/BootstrapTemplateTest.java
 (original)
+++ 
whirr/trunk/core/src/test/java/org/apache/whirr/compute/BootstrapTemplateTest.java
 Wed Jul 25 04:49:46 2012
@@ -33,7 +33,7 @@ import org.apache.whirr.ClusterSpec;
 import org.apache.whirr.InstanceTemplate;
 import org.apache.whirr.service.jclouds.StatementBuilder;
 import org.apache.whirr.service.jclouds.TemplateBuilderStrategy;
-import org.jclouds.aws.ec2.AWSEC2Client;
+import org.jclouds.aws.ec2.AWSEC2ApiMetadata;
 import org.jclouds.aws.ec2.compute.AWSEC2ComputeService;
 import org.jclouds.aws.ec2.compute.AWSEC2TemplateOptions;
 import org.jclouds.compute.ComputeService;
@@ -41,13 +41,13 @@ import org.jclouds.compute.ComputeServic
 import org.jclouds.compute.domain.Template;
 import org.jclouds.compute.domain.TemplateBuilder;
 import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.rest.RestContext;
 import org.junit.Before;
 import org.junit.Test;
 
 import com.google.common.base.Joiner;
 import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableMap;
+import com.google.common.reflect.TypeToken;
 
 public class BootstrapTemplateTest {
 
@@ -99,7 +99,8 @@ public class BootstrapTemplateTest {
     return ClusterSpec.withTemporaryKeys(config);
   }
 
-  private void assertSpotPriceIs(
+  @SuppressWarnings("unchecked")
+private void assertSpotPriceIs(
     ClusterSpec clusterSpec, final String templateGroup, float spotPrice
   ) throws MalformedURLException {
 
@@ -118,11 +119,7 @@ public class BootstrapTemplateTest {
     ComputeServiceContext context = mock(ComputeServiceContext.class);
     when(computeService.getContext()).thenReturn(context);
 
-    RestContext restContext = mock(RestContext.class);
-    when(context.getProviderSpecificContext()).thenReturn(restContext);
-
-    AWSEC2Client awsEc2Client = mock(AWSEC2Client.class);
-    when(restContext.getApi()).thenReturn(awsEc2Client);
+    
when(context.getBackendType()).thenReturn(TypeToken.class.cast(AWSEC2ApiMetadata.CONTEXT_TOKEN));
 
     TemplateBuilder templateBuilder = mock(TemplateBuilder.class);
     when(computeService.templateBuilder()).thenReturn(templateBuilder);

Modified: 
whirr/trunk/core/src/test/java/org/apache/whirr/service/jclouds/StatementBuilderTest.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/test/java/org/apache/whirr/service/jclouds/StatementBuilderTest.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- 
whirr/trunk/core/src/test/java/org/apache/whirr/service/jclouds/StatementBuilderTest.java
 (original)
+++ 
whirr/trunk/core/src/test/java/org/apache/whirr/service/jclouds/StatementBuilderTest.java
 Wed Jul 25 04:49:46 2012
@@ -66,7 +66,7 @@ public class StatementBuilderTest {
 
     StatementBuilder builder = new StatementBuilder();
 
-    builder.addExport("fooBar", "my_value");
+    builder.addExport("FOO_BAR", "my_value");
     builder.addStatement(Statements.exec("echo $FOO_BAR"));
 
     String script = 
builder.name("foo").build(clusterSpec).render(OsFamily.UNIX);
@@ -80,7 +80,7 @@ public class StatementBuilderTest {
   public void testClusterSpecExports() throws Exception {
     PropertiesConfiguration conf = new PropertiesConfiguration();
     conf.addProperty("ignored", "ignored_value");
-    conf.addProperty("whirr.env.fooBar", "my_value");
+    conf.addProperty("whirr.env.FOO_BAR", "my_value");
     
     ClusterSpec clusterSpec = ClusterSpec.withTemporaryKeys(conf);
     clusterSpec.setClusterName("test-cluster");

Modified: 
whirr/trunk/core/src/test/java/org/apache/whirr/service/jclouds/integration/FirewallManagerTest.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/core/src/test/java/org/apache/whirr/service/jclouds/integration/FirewallManagerTest.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- 
whirr/trunk/core/src/test/java/org/apache/whirr/service/jclouds/integration/FirewallManagerTest.java
 (original)
+++ 
whirr/trunk/core/src/test/java/org/apache/whirr/service/jclouds/integration/FirewallManagerTest.java
 Wed Jul 25 04:49:46 2012
@@ -30,6 +30,7 @@ import org.apache.whirr.service.Firewall
 import org.apache.whirr.service.FirewallManager.Rule;
 import org.jclouds.compute.ComputeServiceContext;
 import org.jclouds.domain.Credentials;
+import org.jclouds.ec2.EC2ApiMetadata;
 import org.jclouds.ec2.EC2Client;
 import org.junit.Before;
 import org.junit.Test;
@@ -71,10 +72,10 @@ public class FirewallManagerTest {
 
   @Test(timeout = TestConstants.ITEST_TIMEOUT)
   public void testFirewallAuthorizationIsIdempotent() throws IOException {
-    if (context.getProviderSpecificContext().getApi() instanceof EC2Client) {
-      EC2Client ec2Client = EC2Client.class.cast(
-          context.getProviderSpecificContext().getApi());
-      String groupName = "jclouds#" + clusterSpec.getClusterName() + "#" + 
region;
+    if 
(EC2ApiMetadata.CONTEXT_TOKEN.isAssignableFrom(context.getBackendType())) {
+      EC2Client ec2Client = 
context.unwrap(EC2ApiMetadata.CONTEXT_TOKEN).getApi();
+
+      String groupName = "jclouds#" + clusterSpec.getClusterName();
 
       ec2Client.getSecurityGroupServices()
           .createSecurityGroupInRegion(region, groupName, "group description");

Modified: whirr/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/whirr/trunk/pom.xml?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- whirr/trunk/pom.xml (original)
+++ whirr/trunk/pom.xml Wed Jul 25 04:49:46 2012
@@ -66,22 +66,22 @@
     <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>11.0.1</guava.version>
+    <guava.version>12.0</guava.version>
     <hadoop.version>0.20.205.0</hadoop.version>
     <hamcrest.version>1.1</hamcrest.version>
     <hama.version>0.4.0-incubating</hama.version>
     <hbase.version>0.89.20100924-28</hbase.version>
     <jackson.version>1.5.2</jackson.version>
-    <jclouds.version>1.4.0</jclouds.version>
+    <jclouds.version>1.5.0-beta.8</jclouds.version>
     <jdom.version>1.1</jdom.version>
     <jopt.simple.version>4.3</jopt.simple.version>
-    <jsch.version>0.1.44-1</jsch.version>
+    <jsch.version>0.1.48</jsch.version>
     <junit.version>4.8.1</junit.version>
     <log4j.version>1.2.16</log4j.version>
     <mockito.version>1.9.0</mockito.version>
     <not.yet.commons.ssl.version>0.3.11</not.yet.commons.ssl.version>
     <protobuff.version>2.3.0</protobuff.version>
-    <slf4j.version>1.6.3</slf4j.version>
+    <slf4j.version>1.6.4</slf4j.version>
     <voldermort.version>0.90</voldermort.version>
     <zookeeper.version>3.3.1</zookeeper.version>
     <velocity.version>1.7</velocity.version>

Modified: 
whirr/trunk/services/puppet/src/test/java/org/apache/whirr/service/puppet/integration/PuppetServiceTest.java
URL: 
http://svn.apache.org/viewvc/whirr/trunk/services/puppet/src/test/java/org/apache/whirr/service/puppet/integration/PuppetServiceTest.java?rev=1365445&r1=1365444&r2=1365445&view=diff
==============================================================================
--- 
whirr/trunk/services/puppet/src/test/java/org/apache/whirr/service/puppet/integration/PuppetServiceTest.java
 (original)
+++ 
whirr/trunk/services/puppet/src/test/java/org/apache/whirr/service/puppet/integration/PuppetServiceTest.java
 Wed Jul 25 04:49:46 2012
@@ -24,7 +24,6 @@ import org.apache.whirr.Cluster.Instance
 import org.apache.whirr.ClusterController;
 import org.apache.whirr.ClusterSpec;
 import org.apache.whirr.TestConstants;
-import org.jclouds.net.IPSocket;
 import org.jclouds.predicates.InetSocketAddressConnect;
 import org.jclouds.predicates.RetryablePredicate;
 import org.jclouds.util.Strings2;
@@ -32,6 +31,8 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+import com.google.common.net.HostAndPort;
+
 import java.io.IOException;
 import java.net.URI;
 import java.util.concurrent.TimeUnit;
@@ -44,7 +45,7 @@ public class PuppetServiceTest {
   private ClusterSpec clusterSpec;
   private ClusterController controller;
   private Cluster cluster;
-  private RetryablePredicate<IPSocket> socketTester;
+  private RetryablePredicate<HostAndPort> socketTester;
 
   @Before
   public void setUp() throws Exception {
@@ -57,7 +58,7 @@ public class PuppetServiceTest {
     clusterSpec = ClusterSpec.withTemporaryKeys(config);
     controller = new ClusterController();
     cluster = controller.launchCluster(clusterSpec);
-    socketTester = new RetryablePredicate<IPSocket>(new 
InetSocketAddressConnect(), 60, 1, TimeUnit.SECONDS);
+    socketTester = new RetryablePredicate<HostAndPort>(new 
InetSocketAddressConnect(), 60, 1, TimeUnit.SECONDS);
 
   }
 
@@ -67,7 +68,7 @@ public class PuppetServiceTest {
     // check that the http server started
     for (Instance instance : cluster.getInstances()) {
       // first, check the socket
-      IPSocket socket = new 
IPSocket(instance.getPublicAddress().getHostAddress(), 80);
+      HostAndPort socket = 
HostAndPort.fromParts(instance.getPublicAddress().getHostAddress(), 80);
       assert socketTester.apply(socket) : instance;
       
       // then, try a GET


Reply via email to