Author: asavu
Date: Mon Nov 7 20:45:39 2011
New Revision: 1198922
URL: http://svn.apache.org/viewvc?rev=1198922&view=rev
Log:
WHIRR-417. Allow users to choose their own jclouds modules with properties
(Adrian Cole via asavu)
Added:
whirr/trunk/core/src/main/java/org/apache/whirr/service/jclouds/BindLoginCredentialsPatchForEC2.java
Modified:
whirr/trunk/CHANGES.txt
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/resources/whirr-default.properties
whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-singlenode-test.properties
Modified: whirr/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/whirr/trunk/CHANGES.txt?rev=1198922&r1=1198921&r2=1198922&view=diff
==============================================================================
--- whirr/trunk/CHANGES.txt (original)
+++ whirr/trunk/CHANGES.txt Mon Nov 7 20:45:39 2011
@@ -62,6 +62,9 @@ Trunk (unreleased changes)
WHIRR-399. Move common script setup and script execution fork/join outside
of
ConfigureClusterAction and DestroyClusterAction (David Alves via asavu)
+ WHIRR-417. Allow users to choose their own jclouds modules with properties
+ (Adrian Cole via asavu)
+
BUG FIXES
WHIRR-377. Fix broken CLI logging config. (asavu via tomwhite)
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=1198922&r1=1198921&r2=1198922&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
Mon Nov 7 20:45:39 2011
@@ -20,7 +20,6 @@ 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;
@@ -34,8 +33,6 @@ import org.jclouds.blobstore.BlobStoreCo
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;
@@ -50,7 +47,7 @@ import com.google.common.collect.Forward
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.MapMaker;
-import com.google.inject.AbstractModule;
+import com.google.inject.Module;
public class BlobStoreContextBuilder {
@@ -71,16 +68,12 @@ public class BlobStoreContextBuilder {
new Function<Key, BlobStoreContext>(){
private final BlobStoreContextFactory factory = new
BlobStoreContextFactory();
- private final Set<AbstractModule> wiring = ImmutableSet.of(
- new SLF4JLoggingModule(),
- new EnterpriseConfigurationModule());
-
@Override
public BlobStoreContext apply(Key arg0) {
LOG.debug("creating new BlobStoreContext {}", arg0);
BlobStoreContext context = new IgnoreCloseBlobStoreContext(
factory.createContext(arg0.provider, arg0.identity,
arg0.credential,
- wiring, arg0.overrides));
+ ImmutableSet.<Module>of(),
arg0.overrides));
LOG.info("created new BlobStoreContext {}", context);
return context;
}
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=1198922&r1=1198921&r2=1198922&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
Mon Nov 7 20:45:39 2011
@@ -26,28 +26,23 @@ import com.google.common.collect.Forward
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.MapMaker;
-import com.google.inject.AbstractModule;
+import com.google.inject.Module;
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.apache.whirr.service.jclouds.TakeLoginCredentialsFromWhirrProperties;
import org.jclouds.compute.ComputeService;
import org.jclouds.compute.ComputeServiceContext;
import org.jclouds.compute.ComputeServiceContextFactory;
import org.jclouds.compute.Utils;
import org.jclouds.domain.Credentials;
-import
org.jclouds.ec2.compute.strategy.EC2PopulateDefaultLoginCredentialsForImageStrategy;
-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.sshj.config.SshjSshClientModule;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -72,31 +67,23 @@ public enum ComputeCache implements Func
final Map<Key, ComputeServiceContext> cache = new
MapMaker().makeComputingMap(
new Function<Key, ComputeServiceContext>(){
private final ComputeServiceContextFactory factory = new
ComputeServiceContextFactory();
- private Set<AbstractModule> wiring;
@Override
public ComputeServiceContext apply(Key arg0) {
- if (wiring == null) {
- if (arg0.provider.equals("stub")) {
- try {
- wiring = ImmutableSet.of(
- new SLF4JLoggingModule(),
- (AbstractModule)
Class.forName("org.apache.whirr.service.DryRunModule").newInstance());
- } catch (Exception e) {
- Throwables.propagate(e);
- }
- } else {
- wiring = ImmutableSet.of(
- new SshjSshClientModule(),
- new SLF4JLoggingModule(),
- new EnterpriseConfigurationModule(),
- new BindLoginCredentialsPatchForEC2());
+ Properties overrides = new Properties();
+ overrides.putAll(arg0.overrides);
+ if (arg0.provider.equals("stub")) {
+ try {
+ overrides.setProperty("jclouds.modules",
+ SLF4JLoggingModule.class.getName() +
",org.apache.whirr.service.DryRunModule");
+ } catch (Exception e) {
+ Throwables.propagate(e);
}
}
LOG.debug("creating new ComputeServiceContext {}", arg0);
ComputeServiceContext context = new
IgnoreCloseComputeServiceContext(factory.createContext(
arg0.provider, arg0.identity, arg0.credential,
- wiring, arg0.overrides));
+ ImmutableSet.<Module>of(), overrides));
LOG.debug("created new ComputeServiceContext {}", context);
return context;
}
@@ -229,18 +216,12 @@ public enum ComputeCache implements Func
public int hashCode() {
return Objects.hashCode(key, overrides);
}
- }
-
- //patch until jclouds 1.0-beta-10
- private static class BindLoginCredentialsPatchForEC2 extends AbstractModule {
-
+
@Override
- protected void configure() {
- bind(EC2PopulateDefaultLoginCredentialsForImageStrategy.class)
- .to(TakeLoginCredentialsFromWhirrProperties.class);
+ public String toString() {
+ return Objects.toStringHelper(this).add("provider",
provider).add("identity", identity)
+ .add("overrides", overrides).toString();
}
-
}
-
}
Added:
whirr/trunk/core/src/main/java/org/apache/whirr/service/jclouds/BindLoginCredentialsPatchForEC2.java
URL:
http://svn.apache.org/viewvc/whirr/trunk/core/src/main/java/org/apache/whirr/service/jclouds/BindLoginCredentialsPatchForEC2.java?rev=1198922&view=auto
==============================================================================
---
whirr/trunk/core/src/main/java/org/apache/whirr/service/jclouds/BindLoginCredentialsPatchForEC2.java
(added)
+++
whirr/trunk/core/src/main/java/org/apache/whirr/service/jclouds/BindLoginCredentialsPatchForEC2.java
Mon Nov 7 20:45:39 2011
@@ -0,0 +1,35 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.whirr.service.jclouds;
+
+import
org.jclouds.ec2.compute.strategy.EC2PopulateDefaultLoginCredentialsForImageStrategy;
+
+import com.google.inject.AbstractModule;
+
+/**
+ * patch until http://code.google.com/p/jclouds/issues/detail?id=441
+ */
+public class BindLoginCredentialsPatchForEC2 extends AbstractModule {
+
+ @Override
+ protected void configure() {
+
bind(EC2PopulateDefaultLoginCredentialsForImageStrategy.class).to(TakeLoginCredentialsFromWhirrProperties.class);
+ }
+
+}
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=1198922&r1=1198921&r2=1198922&view=diff
==============================================================================
--- whirr/trunk/core/src/main/resources/whirr-default.properties (original)
+++ whirr/trunk/core/src/main/resources/whirr-default.properties Mon Nov 7
20:45:39 2011
@@ -23,3 +23,4 @@ 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,org.apache.whirr.service.jclouds.BindLoginCredentialsPatchForEC2
\ No newline at end of file
Modified:
whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-singlenode-test.properties
URL:
http://svn.apache.org/viewvc/whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-singlenode-test.properties?rev=1198922&r1=1198921&r2=1198922&view=diff
==============================================================================
---
whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-singlenode-test.properties
(original)
+++
whirr/trunk/services/hbase/src/test/resources/whirr-hbase-0.90-singlenode-test.properties
Mon Nov 7 20:45:39 2011
@@ -16,11 +16,13 @@
# limitations under the License.
#
whirr.cluster-name=hbaseclustertest
-whirr.instance-templates=1
hadoop-namenode+hadoop-jobtracker+zookeeper+hbase-master+hbase-thriftserver,hadoop-datanode+hadoop-tasktracker+hbase-regionserver
+whirr.instance-templates=1
hadoop-namenode+hadoop-jobtracker+zookeeper+hbase-master+hbase-thriftserver+hadoop-datanode+hadoop-tasktracker+hbase-regionserver
whirr.provider=${sys:whirr.test.provider}
whirr.identity=${sys:whirr.test.identity}
whirr.credential=${sys:whirr.test.credential}
+whirr.hardware-min-ram=4096
+
whirr.hbase.tarball.url=http://apache.cu.be/hbase/hbase-0.90.3/hbase-0.90.3.tar.gz
whirr.hadoop.tarball.url=http://archive.cloudera.com/cdh/3/hadoop-0.20.2-cdh3u0.tar.gz