You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2015/08/28 22:14:56 UTC

[2/5] usergrid git commit: Include keyspace name in the queue names. Remove keyspace name from the application bucket indexes. Also validate usergrid.cluster_name property is present and not defaulted on startup (force it to be set).

Include keyspace name in the queue names.  Remove keyspace name from the application bucket indexes.  Also validate usergrid.cluster_name property is present and not defaulted on startup (force it to be set).


Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/45156eb7
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/45156eb7
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/45156eb7

Branch: refs/heads/two-dot-o-dev
Commit: 45156eb70b44afba6dcbbf49c92f3a16a3d6cffc
Parents: 0ee2202
Author: Michael Russo <mi...@gmail.com>
Authored: Thu Aug 27 16:24:50 2015 -0700
Committer: Michael Russo <mi...@gmail.com>
Committed: Thu Aug 27 16:24:50 2015 -0700

----------------------------------------------------------------------
 .../src/main/groovy/configure_usergrid.groovy   |  3 ++
 .../main/resources/usergrid-default.properties  |  5 ++-
 .../src/test/resources/usergrid-test.properties |  4 ++
 .../index/ApplicationIndexLocationStrategy.java |  1 -
 .../index/ManagementIndexLocationStrategy.java  |  9 ++---
 .../corepersistence/index/IndexNamingTest.java  | 13 ++++---
 .../resources/usergrid-custom-test.properties   |  2 +
 .../usergrid-scheduler-test.properties          |  2 +
 .../src/test/resources/dynamic-test.properties  |  3 ++
 .../src/test/resources/usergrid-CHOP.properties |  3 ++
 .../src/test/resources/usergrid-UNIT.properties |  3 ++
 .../src/test/resources/usergrid.properties      |  3 +-
 .../persistence/core/guice/CommonModule.java    |  2 +
 .../core/guice/SettingsValidationCluster.java   | 26 +++++++++++++
 .../persistence/core/guicyfig/ClusterFig.java   | 14 ++++++-
 .../guice/SettingsValidationClusterTest.java    | 39 ++++++++++++++++++++
 .../src/test/resources/usergrid-UNIT.properties |  3 ++
 .../src/test/resources/usergrid.properties      |  3 +-
 .../src/test/resources/usergrid-AWS.properties  |  2 +
 .../src/test/resources/usergrid-CHOP.properties |  3 ++
 .../test/resources/usergrid-SHARD.properties    |  3 ++
 .../src/test/resources/usergrid-UNIT.properties |  3 ++
 .../src/test/resources/usergrid.properties      |  3 +-
 .../src/test/resources/dynamic-test.properties  |  2 +
 .../src/test/resources/usergrid-CHOP.properties |  3 ++
 .../src/test/resources/usergrid-UNIT.properties |  2 +
 .../src/test/resources/usergrid.properties      |  3 +-
 .../queue/impl/SNSQueueManagerImpl.java         |  9 +++--
 .../resources/usergrid-standalone.properties    |  3 ++
 .../resources/usergrid-custom-test.properties   |  5 ++-
 .../resources/corepersistence-UNIT.properties   |  3 ++
 .../resources/usergrid-custom-test.properties   |  3 ++
 .../resources/usergrid-custom-test.properties   |  2 +
 33 files changed, 163 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/awscluster/src/main/groovy/configure_usergrid.groovy
----------------------------------------------------------------------
diff --git a/stack/awscluster/src/main/groovy/configure_usergrid.groovy b/stack/awscluster/src/main/groovy/configure_usergrid.groovy
index fb98368..dbff311 100644
--- a/stack/awscluster/src/main/groovy/configure_usergrid.groovy
+++ b/stack/awscluster/src/main/groovy/configure_usergrid.groovy
@@ -100,6 +100,9 @@ cassandra.cluster=${clusterName}
 cassandra.keyspace.strategy=org.apache.cassandra.locator.NetworkTopologyStrategy
 cassandra.keyspace.replication=${cassEc2Region}:${replFactor}
 
+# This property is required to be set and cannot be left to the default.
+usergrid.cluster_name=usergrid
+
 cassandra.timeout=5000
 cassandra.connections=${tomcatThreads}
 hystrix.threadpool.graph_user.coreSize=${hystrixThreads}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/config/src/main/resources/usergrid-default.properties
----------------------------------------------------------------------
diff --git a/stack/config/src/main/resources/usergrid-default.properties b/stack/config/src/main/resources/usergrid-default.properties
index 33889ac..2c64203 100644
--- a/stack/config/src/main/resources/usergrid-default.properties
+++ b/stack/config/src/main/resources/usergrid-default.properties
@@ -577,9 +577,10 @@ usergrid.counter.batch.interval=30
 #
 usergrid.version.build=${version}
 
-# Set a unique cluster name that this Usergrid instance is a member of.
+# Set a unique cluster name that this Usergrid instance is a member of.  This MUST be set to something
+# other than 'default-property', otherwise startup will fail.
 #
-#usergrid.cluster_name=ug
+#usergrid.cluster_name=default-property
 
 
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/config/src/test/resources/usergrid-test.properties
----------------------------------------------------------------------
diff --git a/stack/config/src/test/resources/usergrid-test.properties b/stack/config/src/test/resources/usergrid-test.properties
index 072ca0b..b6a4046 100644
--- a/stack/config/src/test/resources/usergrid-test.properties
+++ b/stack/config/src/test/resources/usergrid-test.properties
@@ -26,6 +26,10 @@
 # instead.
 #
 
+
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid
+
 # Whether to user the remote Cassandra cluster or not
 cassandra.use_remote=false
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexLocationStrategy.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexLocationStrategy.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexLocationStrategy.java
index ed0800a..e13566d 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexLocationStrategy.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexLocationStrategy.java
@@ -25,7 +25,6 @@ import org.apache.usergrid.persistence.core.scope.ApplicationScope;
 import org.apache.usergrid.persistence.index.IndexAlias;
 import org.apache.usergrid.persistence.index.IndexFig;
 import org.apache.usergrid.persistence.index.IndexLocationStrategy;
-import org.apache.usergrid.utils.StringUtils;
 
 /**
  * Strategy for getting the application index name.

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ManagementIndexLocationStrategy.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ManagementIndexLocationStrategy.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ManagementIndexLocationStrategy.java
index 71f48eb..1e13bbf 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ManagementIndexLocationStrategy.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ManagementIndexLocationStrategy.java
@@ -23,12 +23,9 @@ import org.apache.usergrid.corepersistence.util.CpNamingUtils;
 import org.apache.usergrid.persistence.core.astyanax.CassandraFig;
 import org.apache.usergrid.persistence.core.guicyfig.ClusterFig;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
-import org.apache.usergrid.persistence.core.scope.ApplicationScopeImpl;
 import org.apache.usergrid.persistence.index.IndexAlias;
 import org.apache.usergrid.persistence.index.IndexFig;
 import org.apache.usergrid.persistence.index.IndexLocationStrategy;
-import org.apache.usergrid.persistence.model.entity.Id;
-import org.apache.usergrid.utils.StringUtils;
 
 /**
  * Strategy for getting the management index name
@@ -48,8 +45,10 @@ class ManagementIndexLocationStrategy implements IndexLocationStrategy {
         this.indexFig = indexFig;
         this.coreIndexFig = coreIndexFig;
         this.applicationScope = CpNamingUtils.getApplicationScope( CpNamingUtils.getManagementApplicationId().getUuid());
-        //remove usergrid
-        this.indexName = clusterFig.getClusterName().toLowerCase() + "_" + coreIndexFig.getManagementAppIndexName().toLowerCase();  ////use lowercase value
+        //use lowercase values
+        this.indexName = clusterFig.getClusterName().toLowerCase() + "_" +
+                         cassandraFig.getApplicationKeyspace().toLowerCase() + "_" +
+                         coreIndexFig.getManagementAppIndexName().toLowerCase();
         this.alias = new ManagementIndexAlias(indexFig,indexName);
     }
     @Override

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/core/src/test/java/org/apache/usergrid/corepersistence/index/IndexNamingTest.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/corepersistence/index/IndexNamingTest.java b/stack/core/src/test/java/org/apache/usergrid/corepersistence/index/IndexNamingTest.java
index 1a948c4..4fea8e2 100644
--- a/stack/core/src/test/java/org/apache/usergrid/corepersistence/index/IndexNamingTest.java
+++ b/stack/core/src/test/java/org/apache/usergrid/corepersistence/index/IndexNamingTest.java
@@ -20,7 +20,6 @@
 package org.apache.usergrid.corepersistence.index;
 
 import com.google.inject.Inject;
-import junit.framework.Assert;
 import net.jcip.annotations.NotThreadSafe;
 import org.apache.usergrid.corepersistence.TestIndexModule;
 import org.apache.usergrid.corepersistence.util.CpNamingUtils;
@@ -74,11 +73,13 @@ public class IndexNamingTest {
     private ApplicationScope managementApplicationScope;
     private ApplicationIndexLocationStrategy applicationLocationStrategy;
     private ManagementIndexLocationStrategy managementLocationStrategy;
+    private String keyspaceName;
     private String clusterName;
 
     @Before
     public void setup(){
-        clusterName = clusterFig.getClusterName();
+        keyspaceName = cassandraFig.getApplicationKeyspace().toLowerCase();
+        clusterName = clusterFig.getClusterName().toLowerCase();
         this.applicationScope = CpNamingUtils.getApplicationScope(UUID.randomUUID());
         this.managementApplicationScope = CpNamingUtils.getApplicationScope(CpNamingUtils.getManagementApplicationId().getUuid());
         this.managementLocationStrategy = new ManagementIndexLocationStrategy(clusterFig,cassandraFig,indexFig, indexProcessorFig);
@@ -91,10 +92,10 @@ public class IndexNamingTest {
         //check that factory works
         assertEquals(indexLocationStrategy.getIndexRootName(),managementLocationStrategy.getIndexRootName());
         //check that root name is as expected
-        assertEquals(indexLocationStrategy.getIndexRootName(),clusterName + "_" + indexProcessorFig.getManagementAppIndexName());
+        assertEquals(indexLocationStrategy.getIndexRootName(),clusterName + "_" + keyspaceName + "_" + indexProcessorFig.getManagementAppIndexName());
         //check bucket name is as expected
         assertEquals(indexLocationStrategy.getIndexRootName(), indexLocationStrategy.getIndexInitialName());
-        assertEquals(indexLocationStrategy.getIndexInitialName(),clusterName + "_" +indexProcessorFig.getManagementAppIndexName());
+        assertEquals(indexLocationStrategy.getIndexInitialName(),clusterName + "_" + keyspaceName + "_" +indexProcessorFig.getManagementAppIndexName());
 
     }
 
@@ -105,11 +106,11 @@ public class IndexNamingTest {
         String managementAppIndexName = indexProcessorFig.getManagementAppIndexName();
         assertEquals(
             indexLocationStrategy.getAlias().getReadAlias(),
-            clusterName + "_" + managementAppIndexName + "_read_" + indexFig.getAliasPostfix()
+            clusterName + "_" + keyspaceName + "_" + managementAppIndexName + "_read_" + indexFig.getAliasPostfix()
         );
         assertEquals(
             indexLocationStrategy.getAlias().getWriteAlias(),
-            clusterName + "_" + managementAppIndexName + "_write_" + indexFig.getAliasPostfix()
+            clusterName + "_" + keyspaceName + "_" + managementAppIndexName + "_write_" + indexFig.getAliasPostfix()
         );
     }
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/core/src/test/resources/usergrid-custom-test.properties
----------------------------------------------------------------------
diff --git a/stack/core/src/test/resources/usergrid-custom-test.properties b/stack/core/src/test/resources/usergrid-custom-test.properties
index 74e0fdd..db9e806 100644
--- a/stack/core/src/test/resources/usergrid-custom-test.properties
+++ b/stack/core/src/test/resources/usergrid-custom-test.properties
@@ -29,4 +29,6 @@ elasticsearch.queue_impl.resolution=true
 
 elasticsearch.buffer_timeout=1
 
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/core/src/test/resources/usergrid-scheduler-test.properties
----------------------------------------------------------------------
diff --git a/stack/core/src/test/resources/usergrid-scheduler-test.properties b/stack/core/src/test/resources/usergrid-scheduler-test.properties
index d2aa1d1..5f018a6 100644
--- a/stack/core/src/test/resources/usergrid-scheduler-test.properties
+++ b/stack/core/src/test/resources/usergrid-scheduler-test.properties
@@ -22,3 +22,5 @@ usergrid.scheduler.job.maxfail=2
 
 elasticsearch.buffer_timeout=1
 
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/collection/src/test/resources/dynamic-test.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/resources/dynamic-test.properties b/stack/corepersistence/collection/src/test/resources/dynamic-test.properties
index 1e98f3c..6b6f551 100644
--- a/stack/corepersistence/collection/src/test/resources/dynamic-test.properties
+++ b/stack/corepersistence/collection/src/test/resources/dynamic-test.properties
@@ -8,3 +8,6 @@ cassandra.cluster_name=Usergrid
 collections.keyspace=Usergrid_Collections
 cassandra.timeout=5000
 collection.stage.transient.timeout=5
+
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/collection/src/test/resources/usergrid-CHOP.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/resources/usergrid-CHOP.properties b/stack/corepersistence/collection/src/test/resources/usergrid-CHOP.properties
index d9c72be..78e3400 100644
--- a/stack/corepersistence/collection/src/test/resources/usergrid-CHOP.properties
+++ b/stack/corepersistence/collection/src/test/resources/usergrid-CHOP.properties
@@ -10,3 +10,6 @@ cassandra.hosts=${chop.cassandra.hosts}
 cassandra.cluster_name=Usergrid
 collections.keyspace=Usergrid_Collections
 cassandra.timeout=5000
+
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/collection/src/test/resources/usergrid-UNIT.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/resources/usergrid-UNIT.properties b/stack/corepersistence/collection/src/test/resources/usergrid-UNIT.properties
index e060dc9..44dc399 100644
--- a/stack/corepersistence/collection/src/test/resources/usergrid-UNIT.properties
+++ b/stack/corepersistence/collection/src/test/resources/usergrid-UNIT.properties
@@ -13,3 +13,6 @@ collections.keyspace.strategy.options=replication_factor:1
 collections.keyspace.strategy.class=SimpleStrategy
 
 collection.stage.transient.timeout=5
+
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/collection/src/test/resources/usergrid.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/resources/usergrid.properties b/stack/corepersistence/collection/src/test/resources/usergrid.properties
index febda88..015c681 100644
--- a/stack/corepersistence/collection/src/test/resources/usergrid.properties
+++ b/stack/corepersistence/collection/src/test/resources/usergrid.properties
@@ -1 +1,2 @@
-# No properties in our test env
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guice/CommonModule.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guice/CommonModule.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guice/CommonModule.java
index 543600a..b93ba76 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guice/CommonModule.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guice/CommonModule.java
@@ -96,7 +96,9 @@ public class CommonModule extends AbstractModule {
          */
 
         install(new GuicyFigModule(RxSchedulerFig.class));
+
         install(new GuicyFigModule(ClusterFig.class));
+        bind(SettingsValidationCluster.class).asEagerSingleton(); //validate props from ClusterFig on startup
 
         bind(RxTaskScheduler.class).to(RxTaskSchedulerImpl.class);
     }

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guice/SettingsValidationCluster.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guice/SettingsValidationCluster.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guice/SettingsValidationCluster.java
new file mode 100644
index 0000000..f77a86c
--- /dev/null
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guice/SettingsValidationCluster.java
@@ -0,0 +1,26 @@
+package org.apache.usergrid.persistence.core.guice;
+
+
+import org.apache.usergrid.persistence.core.guicyfig.ClusterFig;
+
+import com.google.common.base.Preconditions;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+/**
+ * Created by russo on 8/27/15.
+ */
+@Singleton
+public class SettingsValidationCluster {
+
+    @Inject
+    public SettingsValidationCluster(final ClusterFig clusterFig) {
+
+        final String configuredClusterName = clusterFig.getClusterName();
+        final String defaultCluster = ClusterFig.VALIDATION_DEFAULT_VALUE;
+
+        Preconditions.checkArgument(!configuredClusterName.equalsIgnoreCase(defaultCluster), ClusterFig.CLUSTER_NAME_PROPERTY + " property must be set.");
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guicyfig/ClusterFig.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guicyfig/ClusterFig.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guicyfig/ClusterFig.java
index 2793894..996aff7 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guicyfig/ClusterFig.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/guicyfig/ClusterFig.java
@@ -30,8 +30,18 @@ import org.safehaus.guicyfig.Key;
 @FigSingleton
 public interface ClusterFig extends GuicyFig{
 
-    @Default( "ug" )
-    @Key( "usergrid.cluster_name" ) //"usergrid.cluster_name"
+
+    /**
+     * This value used in guice module validations so we can force a value to be set.  See IndexSettingValidation
+     * for an example use.
+     */
+    String VALIDATION_DEFAULT_VALUE = "default-property";
+
+    String CLUSTER_NAME_PROPERTY = "usergrid.cluster_name";
+
+
+    @Default( VALIDATION_DEFAULT_VALUE )
+    @Key( CLUSTER_NAME_PROPERTY )
     String getClusterName();
 
 }

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/SettingsValidationClusterTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/SettingsValidationClusterTest.java b/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/SettingsValidationClusterTest.java
new file mode 100644
index 0000000..262fec7
--- /dev/null
+++ b/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/guice/SettingsValidationClusterTest.java
@@ -0,0 +1,39 @@
+package org.apache.usergrid.persistence.core.guice;
+
+import org.apache.usergrid.persistence.core.guicyfig.ClusterFig;
+import org.junit.Test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+/**
+ * Created by russo on 8/27/15.
+ */
+public class SettingsValidationClusterTest {
+
+    @Test
+    public void clusterValidationSuccess(){
+
+        final String myCluster = "myCluster";
+
+        ClusterFig clusterFig = mock(ClusterFig.class);
+        when(clusterFig.getClusterName()).thenReturn(myCluster);
+
+
+        new SettingsValidationCluster(clusterFig);
+
+    }
+
+    @Test(expected=IllegalArgumentException.class)
+    public void clusterValidationFailure(){
+
+        final String myPrefix = ClusterFig.VALIDATION_DEFAULT_VALUE;
+
+        ClusterFig clusterFig = mock(ClusterFig.class);
+        when(clusterFig.getClusterName()).thenReturn(myPrefix);
+
+        new SettingsValidationCluster(clusterFig);
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/common/src/test/resources/usergrid-UNIT.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/test/resources/usergrid-UNIT.properties b/stack/corepersistence/common/src/test/resources/usergrid-UNIT.properties
index 7c8148d..2004d9e 100644
--- a/stack/corepersistence/common/src/test/resources/usergrid-UNIT.properties
+++ b/stack/corepersistence/common/src/test/resources/usergrid-UNIT.properties
@@ -12,3 +12,6 @@ collections.keyspace.strategy.options=replication_factor:1
 collections.keyspace.strategy.class=SimpleStrategy
 
 collection.stage.transient.timeout=5
+
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/common/src/test/resources/usergrid.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/test/resources/usergrid.properties b/stack/corepersistence/common/src/test/resources/usergrid.properties
index febda88..015c681 100644
--- a/stack/corepersistence/common/src/test/resources/usergrid.properties
+++ b/stack/corepersistence/common/src/test/resources/usergrid.properties
@@ -1 +1,2 @@
-# No properties in our test env
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/graph/src/test/resources/usergrid-AWS.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/graph/src/test/resources/usergrid-AWS.properties b/stack/corepersistence/graph/src/test/resources/usergrid-AWS.properties
index f27694d..e19f676 100644
--- a/stack/corepersistence/graph/src/test/resources/usergrid-AWS.properties
+++ b/stack/corepersistence/graph/src/test/resources/usergrid-AWS.properties
@@ -19,3 +19,5 @@ collection.stage.transient.timeout=60
 hystrix.threadpool.graph_user.coreSize=9
 hystrix.threadpool.graph_async.coreSize=9
 
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/graph/src/test/resources/usergrid-CHOP.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/graph/src/test/resources/usergrid-CHOP.properties b/stack/corepersistence/graph/src/test/resources/usergrid-CHOP.properties
index d9c72be..78e3400 100644
--- a/stack/corepersistence/graph/src/test/resources/usergrid-CHOP.properties
+++ b/stack/corepersistence/graph/src/test/resources/usergrid-CHOP.properties
@@ -10,3 +10,6 @@ cassandra.hosts=${chop.cassandra.hosts}
 cassandra.cluster_name=Usergrid
 collections.keyspace=Usergrid_Collections
 cassandra.timeout=5000
+
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/graph/src/test/resources/usergrid-SHARD.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/graph/src/test/resources/usergrid-SHARD.properties b/stack/corepersistence/graph/src/test/resources/usergrid-SHARD.properties
index 6097446..acb6776 100644
--- a/stack/corepersistence/graph/src/test/resources/usergrid-SHARD.properties
+++ b/stack/corepersistence/graph/src/test/resources/usergrid-SHARD.properties
@@ -21,3 +21,6 @@
 
 # Keep nothing but overriding test defaults in here
 usergrid.graph.shard.size=10000
+
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/graph/src/test/resources/usergrid-UNIT.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/graph/src/test/resources/usergrid-UNIT.properties b/stack/corepersistence/graph/src/test/resources/usergrid-UNIT.properties
index 9774cd0..eb06001 100644
--- a/stack/corepersistence/graph/src/test/resources/usergrid-UNIT.properties
+++ b/stack/corepersistence/graph/src/test/resources/usergrid-UNIT.properties
@@ -17,3 +17,6 @@ usergrid.graph.shard.repair.chance=.20
 
 hystrix.threadpool.graph_user.coreSize=8
 hystrix.threadpool.graph_async.coreSize=8
+
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/graph/src/test/resources/usergrid.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/graph/src/test/resources/usergrid.properties b/stack/corepersistence/graph/src/test/resources/usergrid.properties
index febda88..015c681 100644
--- a/stack/corepersistence/graph/src/test/resources/usergrid.properties
+++ b/stack/corepersistence/graph/src/test/resources/usergrid.properties
@@ -1 +1,2 @@
-# No properties in our test env
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/queryindex/src/test/resources/dynamic-test.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/test/resources/dynamic-test.properties b/stack/corepersistence/queryindex/src/test/resources/dynamic-test.properties
index 9bc19ed..ed3209c 100644
--- a/stack/corepersistence/queryindex/src/test/resources/dynamic-test.properties
+++ b/stack/corepersistence/queryindex/src/test/resources/dynamic-test.properties
@@ -14,3 +14,5 @@ elasticsearch.startup=external
 elasticsearch.force-refresh=false
 
 
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/queryindex/src/test/resources/usergrid-CHOP.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/test/resources/usergrid-CHOP.properties b/stack/corepersistence/queryindex/src/test/resources/usergrid-CHOP.properties
index 7c3e0c9..e0e71c9 100644
--- a/stack/corepersistence/queryindex/src/test/resources/usergrid-CHOP.properties
+++ b/stack/corepersistence/queryindex/src/test/resources/usergrid-CHOP.properties
@@ -15,3 +15,6 @@ index.query.limit.default=10
 elasticsearch.indexname=usergrid
 elasticsearch.embedded=false
 elasticsearch.force_refresh=false
+
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/queryindex/src/test/resources/usergrid-UNIT.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/test/resources/usergrid-UNIT.properties b/stack/corepersistence/queryindex/src/test/resources/usergrid-UNIT.properties
index ba163fa..d8b4ad3 100644
--- a/stack/corepersistence/queryindex/src/test/resources/usergrid-UNIT.properties
+++ b/stack/corepersistence/queryindex/src/test/resources/usergrid-UNIT.properties
@@ -33,3 +33,5 @@ elasticsearch.cursor_timeout.minutes=10
 
 elasticsearch.buffer_timeout=1
 
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/queryindex/src/test/resources/usergrid.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/test/resources/usergrid.properties b/stack/corepersistence/queryindex/src/test/resources/usergrid.properties
index febda88..015c681 100644
--- a/stack/corepersistence/queryindex/src/test/resources/usergrid.properties
+++ b/stack/corepersistence/queryindex/src/test/resources/usergrid.properties
@@ -1 +1,2 @@
-# No properties in our test env
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/SNSQueueManagerImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/SNSQueueManagerImpl.java b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/SNSQueueManagerImpl.java
index 6d0e18b..d3a011e 100644
--- a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/SNSQueueManagerImpl.java
+++ b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/SNSQueueManagerImpl.java
@@ -36,6 +36,7 @@ import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
 import com.google.inject.Inject;
 import com.google.inject.assistedinject.Assisted;
+import org.apache.usergrid.persistence.core.astyanax.CassandraFig;
 import org.apache.usergrid.persistence.core.guicyfig.ClusterFig;
 import org.apache.usergrid.persistence.queue.*;
 import org.apache.usergrid.persistence.queue.Queue;
@@ -54,6 +55,7 @@ public class SNSQueueManagerImpl implements QueueManager {
     private final QueueScope scope;
     private final QueueFig fig;
     private final ClusterFig clusterFig;
+    private final CassandraFig cassandraFig;
     private final AmazonSQSClient sqs;
     private final AmazonSNSClient sns;
     private final AmazonSNSAsyncClient snsAsync;
@@ -105,10 +107,11 @@ public class SNSQueueManagerImpl implements QueueManager {
 
 
     @Inject
-    public SNSQueueManagerImpl(@Assisted QueueScope scope, QueueFig fig, ClusterFig clusterFig) {
+    public SNSQueueManagerImpl(@Assisted QueueScope scope, QueueFig fig, ClusterFig clusterFig, CassandraFig cassandraFig) {
         this.scope = scope;
         this.fig = fig;
         this.clusterFig = clusterFig;
+        this.cassandraFig = cassandraFig;
 
         try {
             sqs = createSQSClient(getRegion());
@@ -299,8 +302,8 @@ public class SNSQueueManagerImpl implements QueueManager {
 
 
     private String getName() {
-        String name = clusterFig.getClusterName() + "_" + scope.getName() + "_" + scope.getRegionImplementation();
-
+        String name = clusterFig.getClusterName() + "_" + cassandraFig.getApplicationKeyspace() + "_" + scope.getName() + "_" + scope.getRegionImplementation();
+        name = name.toLowerCase(); //user lower case values
         Preconditions.checkArgument(name.length() <= 80, "Your name must be < than 80 characters");
 
         return name;

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/launcher/src/main/resources/usergrid-standalone.properties
----------------------------------------------------------------------
diff --git a/stack/launcher/src/main/resources/usergrid-standalone.properties b/stack/launcher/src/main/resources/usergrid-standalone.properties
index 03f1f8a..dea6a6c 100644
--- a/stack/launcher/src/main/resources/usergrid-standalone.properties
+++ b/stack/launcher/src/main/resources/usergrid-standalone.properties
@@ -35,6 +35,9 @@
 # instead.
 #
 
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid
+
 # Whether to user the remote Cassandra cluster or not
 cassandra.use_remote=false
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/query-validator/src/test/resources/usergrid-custom-test.properties
----------------------------------------------------------------------
diff --git a/stack/query-validator/src/test/resources/usergrid-custom-test.properties b/stack/query-validator/src/test/resources/usergrid-custom-test.properties
index 1073031..bc1ba56 100644
--- a/stack/query-validator/src/test/resources/usergrid-custom-test.properties
+++ b/stack/query-validator/src/test/resources/usergrid-custom-test.properties
@@ -26,4 +26,7 @@ usergrid.query.validator.api.authorize.password=test
 usergrid.sysadmin.login.name=superuser
 usergrid.sysadmin.login.email=superuser@usergrid.com
 usergrid.sysadmin.login.password=superpassword
-usergrid.sysadmin.login.allowed=true
\ No newline at end of file
+usergrid.sysadmin.login.allowed=true
+
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/rest/src/test/resources/corepersistence-UNIT.properties
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/resources/corepersistence-UNIT.properties b/stack/rest/src/test/resources/corepersistence-UNIT.properties
index 3f2f0f0..2383813 100644
--- a/stack/rest/src/test/resources/corepersistence-UNIT.properties
+++ b/stack/rest/src/test/resources/corepersistence-UNIT.properties
@@ -17,3 +17,6 @@
 # Overrides
 
 usergrid.notifications.listener.run=false
+
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/rest/src/test/resources/usergrid-custom-test.properties
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/resources/usergrid-custom-test.properties b/stack/rest/src/test/resources/usergrid-custom-test.properties
index a55ca8b..2228d1e 100644
--- a/stack/rest/src/test/resources/usergrid-custom-test.properties
+++ b/stack/rest/src/test/resources/usergrid-custom-test.properties
@@ -46,3 +46,6 @@ usergrid.use.default.queue=true
 
 elasticsearch.managment_index=usergrid_rest_management
 #cassandra.keyspace.application=rest_tests_schema
+
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid

http://git-wip-us.apache.org/repos/asf/usergrid/blob/45156eb7/stack/services/src/test/resources/usergrid-custom-test.properties
----------------------------------------------------------------------
diff --git a/stack/services/src/test/resources/usergrid-custom-test.properties b/stack/services/src/test/resources/usergrid-custom-test.properties
index b52880d..8db6eb3 100644
--- a/stack/services/src/test/resources/usergrid-custom-test.properties
+++ b/stack/services/src/test/resources/usergrid-custom-test.properties
@@ -38,3 +38,5 @@ elasticsearch.queue_impl.resolution=true
 usergrid.use.default.queue=true
 
 
+# This property is required to be set and cannot be defaulted anywhere
+usergrid.cluster_name=usergrid