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 2014/01/31 21:20:54 UTC
git commit: Update PriamCluster to launch ElasticSearch in addition
to Cassandra, and to use new Priam 1.2.24 tagged code.
Updated Branches:
refs/heads/elasticsearch-cluster [created] ced42e11a
Update PriamCluster to launch ElasticSearch in addition to Cassandra, and to use new Priam 1.2.24 tagged code.
Work done for https://issues.apache.org/jira/browse/USERGRID-44
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/ced42e11
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/ced42e11
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/ced42e11
Branch: refs/heads/elasticsearch-cluster
Commit: ced42e11ac022a39a72d22cde4e5fbde7f0c402d
Parents: 2c6e7e4
Author: Dave Johnson <dm...@apigee.com>
Authored: Fri Jan 31 14:39:13 2014 -0500
Committer: Dave Johnson <dm...@apigee.com>
Committed: Fri Jan 31 14:39:13 2014 -0500
----------------------------------------------------------------------
.../priamcluster/cassandra-cf.json | 29 +++-----
stack/corepersistence/priamcluster/pom.xml | 29 +++++++-
.../src/main/dist/conf/Priam.properties | 4 +-
.../src/main/dist/init_instance/init_cass.sh | 73 -------------------
.../main/dist/init_instance/init_instance.sh | 50 +++++++++++++
.../dist/init_instance/install_cassandra.sh | 55 ++++++++++++++
.../dist/init_instance/install_elasticsearch.sh | 18 +++++
.../dist/init_instance/install_oraclejdk.sh | 3 +
.../src/main/dist/lib/priam-agent-1.2.24.jar | Bin 0 -> 33020 bytes
.../dist/lib/priam-cass-extensions-1.2.24.jar | Bin 0 -> 5478 bytes
.../priam-cass-extensions-2.0.0-SNAPSHOT.jar | Bin 5478 -> 0 bytes
.../src/main/dist/webapps/priam-web-1.2.24.war | Bin 0 -> 31272443 bytes
.../dist/webapps/priam-web-2.0.0-SNAPSHOT.war | Bin 31266622 -> 0 bytes
.../src/main/groovy/configure_cassandra.groovy | 6 +-
.../main/groovy/configure_elasticsearch.groovy | 44 +++++++++++
.../src/main/groovy/registry_clear.groovy | 2 +-
.../src/main/groovy/registry_list.groovy | 2 +-
.../src/main/groovy/registry_register.groovy | 3 +-
.../src/main/groovy/wait_for_cassandra.groovy | 42 -----------
.../src/main/groovy/wait_for_instances.groovy | 44 +++++++++++
20 files changed, 260 insertions(+), 144 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/cassandra-cf.json
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/cassandra-cf.json b/stack/corepersistence/priamcluster/cassandra-cf.json
index de40cec..8711a23 100644
--- a/stack/corepersistence/priamcluster/cassandra-cf.json
+++ b/stack/corepersistence/priamcluster/cassandra-cf.json
@@ -105,10 +105,12 @@
"export EC2_REGION=", {"Ref": "AWS::Region"}, "\n",
"export EC2_URL=https://ec2.amazonaws.com/\n",
"\n",
- "export DB_SECURITY_GROUP_NAME=", {"Ref": "CassSecurityGroup"}, "\n",
+ "export CASS_SECURITY_GROUP_NAME=", {"Ref": "CassSecurityGroup"}, "\n",
+ "\n",
+ "export JVM_EXTRA_OPTS=-javaagent:/usr/share/cassandra/lib/priam-cass-extensions-1.2.24.jar", "\n",
"\n",
- "export JVM_EXTRA_OPTS=-javaagent:/usr/share/cassandra/lib/priam-cass-extensions-2.0.0-SNAPSHOT.jar", "\n",
"export CASSANDRA_CLUSTER_NAME=", {"Ref": "CassClusterName"}, "\n",
+ "export CASSANDRA_NUM_SERVERS=", {"Ref": "CassNumServers"}, "\n",
"export CASSANDRA_KEYSPACE_NAME=usergrid", "\n",
"export CASSANDRA_REPLICATION_FACTOR=", {"Ref": "CassReplicationFactor"}, "\n",
"\n",
@@ -152,7 +154,7 @@
"cd ./init_instance\n",
"# init as a Cassandra node \n",
- "sh ./init_cass.sh\n"
+ "sh ./init_instance.sh\n"
]]}
},
@@ -304,21 +306,14 @@
"SourceSecurityGroupName": {"Ref": "CassSecurityGroup"}
}
},
- "RestSecurityGroup": {
- "Type": "AWS::EC2::SecurityGroup",
+ "CassSecurityGroupPort9200": {
+ "Type": "AWS::EC2::SecurityGroupIngress",
"Properties": {
- "GroupDescription": "REST Machines",
- "SecurityGroupIngress": [{
- "IpProtocol": "tcp",
- "FromPort": "22",
- "ToPort": "22",
- "CidrIp": "0.0.0.0/0"
- }, {
- "IpProtocol": "tcp",
- "FromPort": "8080",
- "ToPort": "8080",
- "CidrIp": "0.0.0.0/0"
- }]
+ "GroupName": {"Ref": "CassSecurityGroup"},
+ "IpProtocol": "tcp",
+ "FromPort": "9200",
+ "ToPort": "9200",
+ "SourceSecurityGroupName": {"Ref": "CassSecurityGroup"}
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/pom.xml
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/pom.xml b/stack/corepersistence/priamcluster/pom.xml
index 3737e39..358f24e 100644
--- a/stack/corepersistence/priamcluster/pom.xml
+++ b/stack/corepersistence/priamcluster/pom.xml
@@ -84,8 +84,27 @@
<configuration>
<skip>true</skip>
</configuration>
- </plugin>
-
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy-eclipse-compiler</artifactId>
+ <version>2.6.0-01</version>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <compilerId>groovy-eclipse-compiler</compilerId>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>groovy-eclipse-compiler</artifactId>
+ <groupId>org.codehaus.groovy</groupId>
+ <version>2.6.0-01</version>
+ <extensions>true</extensions>
+ </plugin>
</plugins>
</build>
@@ -109,7 +128,11 @@
<artifactId>aws-java-sdk</artifactId>
<version>1.6.7</version>
</dependency>
-
+ <dependency>
+ <artifactId>groovy-all</artifactId>
+ <groupId>org.codehaus.groovy</groupId>
+ <version>2.0.5</version>
+ </dependency>
</dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/dist/conf/Priam.properties
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/dist/conf/Priam.properties b/stack/corepersistence/priamcluster/src/main/dist/conf/Priam.properties
index 0b8fb40..eb90064 100644
--- a/stack/corepersistence/priamcluster/src/main/dist/conf/Priam.properties
+++ b/stack/corepersistence/priamcluster/src/main/dist/conf/Priam.properties
@@ -1,7 +1,7 @@
# priam settings to be added to SimpleDB by configure_priam.groovy
-priam.clustername=usergrid
+priam.clustername=usergrid2
priam.cass.home=/etc/cassandra
priam.cass.startscript=/etc/init.d/cassandra start
@@ -14,8 +14,8 @@ priam.cache.location=/var/lib/cassandra/saved_caches
priam.s3.base_dir=priam-backup
priam.s3.bucket=priam-cassandra-archive
+priam.backup.incremental.enable=false
priam.partitioner=org.apache.cassandra.dht.RandomPartitioner
priam.zones.available=us-east-1a,us-east-1b,us-east-1c,us-east-1d
-
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/dist/init_instance/init_cass.sh
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/dist/init_instance/init_cass.sh b/stack/corepersistence/priamcluster/src/main/dist/init_instance/init_cass.sh
deleted file mode 100644
index e2e8d81..0000000
--- a/stack/corepersistence/priamcluster/src/main/dist/init_instance/init_cass.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/bash
-echo "${HOSTNAME}" > /etc/hostname
-echo "127.0.0.1 ${HOSTNAME}" >> /etc/hosts
-hostname `cat /etc/hostname`
-
-echo "US/Eastern" > /etc/timezone
-dpkg-reconfigure -f noninteractive tzdata
-
-# Build environment for scripts
-. /etc/profile.d/aws-credentials.sh
-. /etc/profile.d/usergrid-env.sh
-
-# Install Oracle JDK from our S3 bucket
-./install_oraclejdk.sh
-
-# Install the easy stuff
-PKGS="ntp unzip groovy tomcat7"
-apt-get update
-apt-get -y install ${PKGS}
-
-# Install AWS Java SDK and get it into the Groovy classpath
-curl http://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip > /tmp/aws-sdk-java.zip
-cd /usr/share/
-unzip /tmp/aws-sdk-java.zip
-mkdir -p /home/ubuntu/.groovy/lib
-cp /usr/share/aws-java-sdk-*/third-party/*/*.jar /home/ubuntu/.groovy/lib
-cp /usr/share/aws-java-sdk-*/lib/* /home/ubuntu/.groovy/lib
-# except for evil stax
-rm /home/ubuntu/.groovy/lib/stax*
-ln -s /home/ubuntu/.groovy /root/.groovy
-
-# Install and stop Cassandra
-cd /etc/apt/sources.list.d
-cat >> cassandra.sources.list << EOF
-deb http://www.apache.org/dist/cassandra/debian 12x main
-EOF
-sudo apt-get update
-sudo apt-get -y install libcap2
-sudo apt-get --force-yes -y install cassandra
-/etc/init.d/cassandra stop
-rm -rf /var/log/cassandra/*
-
-# Provide initial configuration to Cassandra
-cd /usr/share/usergrid/scripts
-groovy registry_register.groovy
-groovy wait_for_cassandra.groovy
-cd /usr/share/usergrid/init_instance
-cd /usr/share/usergrid/scripts
-groovy configure_cassandra.groovy > /etc/cassandra/cassandra.yaml
-
-# Configure Priam
-cd /usr/share/usergrid/scripts
-groovy configure_priam.groovy
-
-# Copy Priam extension into Cassandra and Priam WAR into Tomcat
-rm -rf /var/lib/tomcat7/webapps/*
-mkdir -p /usr/share/cassandra/lib
-cp /usr/share/usergrid/lib/priam-cass-extensions-2.0.0-SNAPSHOT.jar /usr/share/cassandra/lib
-cp /usr/share/usergrid/webapps/priam-web-2.0.0-SNAPSHOT.war /var/lib/tomcat7/webapps/Priam.war
-
-# Make sure Priam via Tomcat can write to /etc/cassandra
-chmod -R 777 /etc/cassandra
-chmod 777 /etc/init.d/cassandra
-# TODO: need to do something like this instead (not sure why it does not work):
-#chmod 770 /etc/cassandra
-#chmod -R 660 /etc/cassandra/*
-#usermod -a -G cassandra tomcat7
-#chgrp -R cassandra /etc/cassandra
-
-# Start Priam via Tomcat, should cause Cassandra to start
-/etc/init.d/tomcat7 restart
-
-groovy tag_instance.groovy
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/dist/init_instance/init_instance.sh
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/dist/init_instance/init_instance.sh b/stack/corepersistence/priamcluster/src/main/dist/init_instance/init_instance.sh
new file mode 100644
index 0000000..c733705
--- /dev/null
+++ b/stack/corepersistence/priamcluster/src/main/dist/init_instance/init_instance.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+echo "${HOSTNAME}" > /etc/hostname
+echo "127.0.0.1 ${HOSTNAME}" >> /etc/hosts
+hostname `cat /etc/hostname`
+
+echo "US/Eastern" > /etc/timezone
+dpkg-reconfigure -f noninteractive tzdata
+
+# Build environment for scripts
+. /etc/profile.d/aws-credentials.sh
+. /etc/profile.d/usergrid-env.sh
+
+# Install the easy stuff
+PKGS="ntp unzip groovy tomcat7 curl"
+apt-get update
+apt-get -y install ${PKGS}
+/etc/init.d/tomcat7 stop
+
+# Install AWS Java SDK and get it into the Groovy classpath
+curl http://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip > /tmp/aws-sdk-java.zip
+cd /usr/share/
+unzip /tmp/aws-sdk-java.zip
+mkdir -p /home/ubuntu/.groovy/lib
+cp /usr/share/aws-java-sdk-*/third-party/*/*.jar /home/ubuntu/.groovy/lib
+cp /usr/share/aws-java-sdk-*/lib/* /home/ubuntu/.groovy/lib
+# except for evil stax
+rm /home/ubuntu/.groovy/lib/stax*
+ln -s /home/ubuntu/.groovy /root/.groovy
+
+./install_oraclejdk.sh
+
+# Install and stop Cassandra
+cd /usr/share/usergrid/init_instance
+./install_cassandra.sh
+
+# Install and start ElasticSearch
+cd /usr/share/usergrid/init_instance
+./install_elasticsearch.sh
+/etc/init.d/elasticsearch start
+
+# Starting Tomcat starts Priam which starts Priam
+/etc/init.d/tomcat7 restart
+
+# Priam consistently craps out on first run
+# making this ugly kludge necessary
+sleep 90
+/etc/init.d/tomcat7 restart
+
+cd /usr/share/usergrid/scripts
+groovy tag_instance.groovy
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_cassandra.sh
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_cassandra.sh b/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_cassandra.sh
new file mode 100644
index 0000000..af6ae01
--- /dev/null
+++ b/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_cassandra.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+# Install and stop Cassandra
+pushd /etc/apt/sources.list.d
+
+cat >> cassandra.sources.list << EOF
+deb http://www.apache.org/dist/cassandra/debian 12x main
+EOF
+apt-get update
+apt-get -y install libcap2
+apt-get --force-yes -y install cassandra
+/etc/init.d/cassandra stop
+mkdir -p /var/lib/cassandra
+chown cassandra /var/lib/cassandra
+
+# Wait for other instances to start up
+cd /usr/share/usergrid/scripts
+groovy registry_register.groovy
+groovy wait_for_instances.groovy
+
+# Configure Priam
+cd /usr/share/usergrid/scripts
+groovy configure_cassandra.groovy > /etc/cassandra/cassandra.yaml
+groovy configure_priam.groovy
+
+# Copy Priam extension into Cassandra and Priam WAR into Tomcat
+rm -rf /var/lib/tomcat7/webapps/*
+mkdir -p /usr/share/cassandra/lib
+cp /usr/share/usergrid/lib/priam-cass-extensions-1.2.24.jar /usr/share/cassandra/lib
+cp /usr/share/usergrid/webapps/priam-web-1.2.24.war /var/lib/tomcat7/webapps/Priam.war
+
+# Make sure Priam via Tomcat can write to /etc/cassandra
+# TODO: do this without 777
+chmod -R 777 /etc/cassandra
+chmod 777 /etc/init.d/cassandra
+
+# Configure sudo for no passwords to please Priam
+cat >> /tmp/sudoers.new << EOF
+Defaults env_reset
+Defaults mail_badpass
+Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+root ALL=(ALL:ALL) ALL
+%admin ALL=(ALL) ALL
+%sudo ALL=(ALL:ALL) NOPASSWD:ALL
+EOF
+visudo -c -f /tmp/sudoers.new
+if [ "$?" -eq "0" ]; then
+ cp /tmp/sudoers.new /etc/sudoers
+fi
+# Add tomat user to sudoers to please Priam
+adduser tomcat7 sudo
+/etc/init.d/sudo restart
+
+popd
+
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_elasticsearch.sh
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_elasticsearch.sh b/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_elasticsearch.sh
new file mode 100644
index 0000000..5b69e8a
--- /dev/null
+++ b/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_elasticsearch.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+# Install and stop ElasticSearch
+pushd /etc/apt/sources.list.d
+
+cat >> elasticsearch.sources.list << EOF
+deb http://packages.elasticsearch.org/elasticsearch/1.0/debian stable main
+EOF
+apt-get update
+apt-get --force-yes -y install elasticsearch
+/etc/init.d/elasticsearch stop
+
+# Configure and restart ElasticSearch
+update-rc.d elasticsearch defaults 95 10
+cd /usr/share/usergrid/scripts
+groovy ./configure_elasticsearch.groovy > /etc/elasticsearch/elasticsearch.yml
+
+popd
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_oraclejdk.sh
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_oraclejdk.sh b/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_oraclejdk.sh
index 09afc0e..f81c5fa 100644
--- a/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_oraclejdk.sh
+++ b/stack/corepersistence/priamcluster/src/main/dist/init_instance/install_oraclejdk.sh
@@ -25,4 +25,7 @@ chmod a+x /usr/bin/javac
chmod a+x /usr/bin/javaws
chown -R root:root /usr/lib/jvm/jdk1.7.0
+sudo rm /usr/lib/jvm/default-java
+sudo ln -s /usr/lib/jvm/jdk1.7.0 /usr/lib/jvm/default-java
+
popd
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/dist/lib/priam-agent-1.2.24.jar
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/dist/lib/priam-agent-1.2.24.jar b/stack/corepersistence/priamcluster/src/main/dist/lib/priam-agent-1.2.24.jar
new file mode 100644
index 0000000..21e6980
Binary files /dev/null and b/stack/corepersistence/priamcluster/src/main/dist/lib/priam-agent-1.2.24.jar differ
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/dist/lib/priam-cass-extensions-1.2.24.jar
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/dist/lib/priam-cass-extensions-1.2.24.jar b/stack/corepersistence/priamcluster/src/main/dist/lib/priam-cass-extensions-1.2.24.jar
new file mode 100644
index 0000000..77c4f7b
Binary files /dev/null and b/stack/corepersistence/priamcluster/src/main/dist/lib/priam-cass-extensions-1.2.24.jar differ
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/dist/lib/priam-cass-extensions-2.0.0-SNAPSHOT.jar
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/dist/lib/priam-cass-extensions-2.0.0-SNAPSHOT.jar b/stack/corepersistence/priamcluster/src/main/dist/lib/priam-cass-extensions-2.0.0-SNAPSHOT.jar
deleted file mode 100644
index 7941e7d..0000000
Binary files a/stack/corepersistence/priamcluster/src/main/dist/lib/priam-cass-extensions-2.0.0-SNAPSHOT.jar and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/dist/webapps/priam-web-1.2.24.war
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/dist/webapps/priam-web-1.2.24.war b/stack/corepersistence/priamcluster/src/main/dist/webapps/priam-web-1.2.24.war
new file mode 100644
index 0000000..016eed4
Binary files /dev/null and b/stack/corepersistence/priamcluster/src/main/dist/webapps/priam-web-1.2.24.war differ
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/dist/webapps/priam-web-2.0.0-SNAPSHOT.war
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/dist/webapps/priam-web-2.0.0-SNAPSHOT.war b/stack/corepersistence/priamcluster/src/main/dist/webapps/priam-web-2.0.0-SNAPSHOT.war
deleted file mode 100644
index 2666a52..0000000
Binary files a/stack/corepersistence/priamcluster/src/main/dist/webapps/priam-web-2.0.0-SNAPSHOT.war and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/groovy/configure_cassandra.groovy
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/groovy/configure_cassandra.groovy b/stack/corepersistence/priamcluster/src/main/groovy/configure_cassandra.groovy
index ee878ea..cbcf5c7 100644
--- a/stack/corepersistence/priamcluster/src/main/groovy/configure_cassandra.groovy
+++ b/stack/corepersistence/priamcluster/src/main/groovy/configure_cassandra.groovy
@@ -1,19 +1,19 @@
//
// configure_cassandra.groovy
//
-// Emits Cassandra config file based on environment and Cassandra node registry in SimpleDB
+// Emits Cassandra config file based on environment and Cassandra node
+// registry in SimpleDB
//
import com.amazonaws.auth.*
import com.amazonaws.services.simpledb.*
import com.amazonaws.services.simpledb.model.*
-String domain = "UGCloudFormation"
-
String accessKey = (String)System.getenv().get("AWS_ACCESS_KEY")
String secretKey = (String)System.getenv().get("AWS_SECRET_KEY")
String stackName = (String)System.getenv().get("STACK_NAME")
String hostName = (String)System.getenv().get("PUBLIC_HOSTNAME")
def clusterName = (String)System.getenv().get("CASSANDRA_CLUSTER_NAME")
+String domain = stackName
def creds = new BasicAWSCredentials(accessKey, secretKey)
def sdbClient = new AmazonSimpleDBClient(creds)
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/groovy/configure_elasticsearch.groovy
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/groovy/configure_elasticsearch.groovy b/stack/corepersistence/priamcluster/src/main/groovy/configure_elasticsearch.groovy
new file mode 100644
index 0000000..b80314d
--- /dev/null
+++ b/stack/corepersistence/priamcluster/src/main/groovy/configure_elasticsearch.groovy
@@ -0,0 +1,44 @@
+
+//
+// configure_cassandra.groovy
+//
+// Emits Cassandra config file based on environment and Cassandra node
+// registry in SimpleDB
+//
+import com.amazonaws.auth.*
+import com.amazonaws.services.simpledb.*
+import com.amazonaws.services.simpledb.model.*
+
+String accessKey = (String)System.getenv().get("AWS_ACCESS_KEY")
+String secretKey = (String)System.getenv().get("AWS_SECRET_KEY")
+String stackName = (String)System.getenv().get("STACK_NAME")
+String hostName = (String)System.getenv().get("PUBLIC_HOSTNAME")
+def clusterName = (String)System.getenv().get("CASSANDRA_CLUSTER_NAME")
+String domain = stackName
+
+def creds = new BasicAWSCredentials(accessKey, secretKey)
+def sdbClient = new AmazonSimpleDBClient(creds)
+
+// build seed list by listing all Cassandra nodes found in SimpleDB domain with our stackName
+def selectResult = sdbClient.select(new SelectRequest((String)"select * from ${domain}"))
+def seeds = ""
+def sep = ""
+for (item in selectResult.getItems()) {
+ def att = item.getAttributes().get(0)
+ if (att.getValue().equals(stackName)) {
+ seeds = "${seeds}${sep}\"${item.getName()}\""
+ sep = ","
+ }
+}
+
+def elasticSearchConfig = """
+cluster.name: usergrid2
+discovery.zen.ping.multicast.enabled: false
+discovery.zen.ping.unicast.hosts: [${seeds}]
+node:
+ name: ${hostName}
+network:
+ host: ${hostName}
+"""
+
+println elasticSearchConfig
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/groovy/registry_clear.groovy
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/groovy/registry_clear.groovy b/stack/corepersistence/priamcluster/src/main/groovy/registry_clear.groovy
index 24b62e9..5baa537 100644
--- a/stack/corepersistence/priamcluster/src/main/groovy/registry_clear.groovy
+++ b/stack/corepersistence/priamcluster/src/main/groovy/registry_clear.groovy
@@ -7,11 +7,11 @@ import com.amazonaws.auth.*
import com.amazonaws.services.simpledb.*
import com.amazonaws.services.simpledb.model.*
-String domain = "UGCloudFormation"
String accessKey = (String)System.getenv().get("AWS_ACCESS_KEY")
String secretKey = (String)System.getenv().get("AWS_SECRET_KEY")
String stackName = (String)System.getenv().get("STACK_NAME")
String hostName = (String)System.getenv().get("PUBLIC_HOSTNAME")
+String domain = stackName
def creds = new BasicAWSCredentials(accessKey, secretKey)
def sdbClient = new AmazonSimpleDBClient(creds)
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/groovy/registry_list.groovy
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/groovy/registry_list.groovy b/stack/corepersistence/priamcluster/src/main/groovy/registry_list.groovy
index 01c52ca..9871a21 100644
--- a/stack/corepersistence/priamcluster/src/main/groovy/registry_list.groovy
+++ b/stack/corepersistence/priamcluster/src/main/groovy/registry_list.groovy
@@ -7,11 +7,11 @@ import com.amazonaws.auth.*
import com.amazonaws.services.simpledb.*
import com.amazonaws.services.simpledb.model.*
-String domain = "UGCloudFormation"
String accessKey = (String)System.getenv().get("AWS_ACCESS_KEY")
String secretKey = (String)System.getenv().get("AWS_SECRET_KEY")
String stackName = (String)System.getenv().get("STACK_NAME")
String hostName = (String)System.getenv().get("PUBLIC_HOSTNAME")
+String domain = stackName
def creds = new BasicAWSCredentials(accessKey, secretKey)
def sdbClient = new AmazonSimpleDBClient(creds)
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/groovy/registry_register.groovy
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/groovy/registry_register.groovy b/stack/corepersistence/priamcluster/src/main/groovy/registry_register.groovy
index c988a93..739c04e 100644
--- a/stack/corepersistence/priamcluster/src/main/groovy/registry_register.groovy
+++ b/stack/corepersistence/priamcluster/src/main/groovy/registry_register.groovy
@@ -7,12 +7,11 @@ import com.amazonaws.auth.*
import com.amazonaws.services.simpledb.*
import com.amazonaws.services.simpledb.model.*
-String domain = "UGCloudFormation"
-
String accessKey = (String)System.getenv().get("AWS_ACCESS_KEY")
String secretKey = (String)System.getenv().get("AWS_SECRET_KEY")
String stackName = (String)System.getenv().get("STACK_NAME")
String hostName = (String)System.getenv().get("PUBLIC_HOSTNAME")
+String domain = stackName
def creds = new BasicAWSCredentials(accessKey, secretKey)
def sdbClient = new AmazonSimpleDBClient(creds)
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/groovy/wait_for_cassandra.groovy
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/groovy/wait_for_cassandra.groovy b/stack/corepersistence/priamcluster/src/main/groovy/wait_for_cassandra.groovy
deleted file mode 100644
index 4ccb080..0000000
--- a/stack/corepersistence/priamcluster/src/main/groovy/wait_for_cassandra.groovy
+++ /dev/null
@@ -1,42 +0,0 @@
-//
-// wait_for_cassandra.groovy
-//
-// Wait for enough Cassandra servers are up before proceding,
-// Enough means count greater than or equal to replication factor.
-//
-import com.amazonaws.auth.*
-import com.amazonaws.services.simpledb.*
-import com.amazonaws.services.simpledb.model.*
-
-String domain = "UGCloudFormation"
-String accessKey = (String)System.getenv().get("AWS_ACCESS_KEY")
-String secretKey = (String)System.getenv().get("AWS_SECRET_KEY")
-String stackName = (String)System.getenv().get("STACK_NAME")
-def replicationFactor = System.getenv().get("CASSANDRA_REPLICATION_FACTOR")
-
-def creds = new BasicAWSCredentials(accessKey, secretKey)
-def sdbClient = new AmazonSimpleDBClient(creds)
-
-println "Waiting..."
-
-def count = 0
-while (true) {
- try {
- def selectResult = sdbClient.select(new SelectRequest((String)"select * from ${domain}"))
- for (item in selectResult.getItems()) {
- def att = item.getAttributes().get(0)
- if (att.getValue().equals(stackName)) {
- count++
- }
- }
- if (count >= replicationFactor || count > 300) {
- break
- }
- } catch (Exception e) {
- println "ERROR waiting for Casasndra ${e.getMessage()}, will continue waiting"
- return
- }
- Thread.sleep(1000)
-}
-
-println "Waiting done."
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ced42e11/stack/corepersistence/priamcluster/src/main/groovy/wait_for_instances.groovy
----------------------------------------------------------------------
diff --git a/stack/corepersistence/priamcluster/src/main/groovy/wait_for_instances.groovy b/stack/corepersistence/priamcluster/src/main/groovy/wait_for_instances.groovy
new file mode 100644
index 0000000..4f125b6
--- /dev/null
+++ b/stack/corepersistence/priamcluster/src/main/groovy/wait_for_instances.groovy
@@ -0,0 +1,44 @@
+//
+// wait_for_cassandra.groovy
+//
+// Wait for enough Cassandra servers are up before proceding,
+// Enough means count greater than or equal to replication factor.
+//
+import com.amazonaws.auth.*
+import com.amazonaws.services.simpledb.*
+import com.amazonaws.services.simpledb.model.*
+
+String accessKey = (String)System.getenv().get("AWS_ACCESS_KEY")
+String secretKey = (String)System.getenv().get("AWS_SECRET_KEY")
+String stackName = (String)System.getenv().get("STACK_NAME")
+String domain = stackName
+
+//def replicationFactor = System.getenv().get("CASSANDRA_REPLICATION_FACTOR")
+def cassNumServers = System.getenv().get("CASSANDRA_NUM_SERVERS")
+
+def creds = new BasicAWSCredentials(accessKey, secretKey)
+def sdbClient = new AmazonSimpleDBClient(creds)
+
+println "Waiting..."
+
+def count = 0
+while (true) {
+ try {
+ def selectResult = sdbClient.select(new SelectRequest((String)"select * from ${domain}"))
+ for (item in selectResult.getItems()) {
+ def att = item.getAttributes().get(0)
+ if (att.getValue().equals(stackName)) {
+ count++
+ }
+ }
+ if (count >= cassNumServers || count > 300) {
+ break
+ }
+ } catch (Exception e) {
+ println "ERROR waiting for Casasndra ${e.getMessage()}, will continue waiting"
+ return
+ }
+ Thread.sleep(1000)
+}
+
+println "Waiting done."