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