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 2016/06/29 12:45:17 UTC

[07/38] usergrid git commit: Add Pivotal Cloud Foundry source for creating Usergrid Tile ( CF deployment + bosh release )

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/config/blobs.yml
----------------------------------------------------------------------
diff --git a/deployment/pcf/config/blobs.yml b/deployment/pcf/config/blobs.yml
new file mode 100644
index 0000000..b05a48d
--- /dev/null
+++ b/deployment/pcf/config/blobs.yml
@@ -0,0 +1,19 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+--- {}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/config/final.yml
----------------------------------------------------------------------
diff --git a/deployment/pcf/config/final.yml b/deployment/pcf/config/final.yml
new file mode 100644
index 0000000..784703c
--- /dev/null
+++ b/deployment/pcf/config/final.yml
@@ -0,0 +1,24 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+---
+blobstore:
+  provider: local
+  options:
+    blobstore_path: /tmp/usergrid-blobs
+final_name: usergrid_blobstore

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/content_migrations.yml
----------------------------------------------------------------------
diff --git a/deployment/pcf/content_migrations.yml b/deployment/pcf/content_migrations.yml
new file mode 100644
index 0000000..80035ff
--- /dev/null
+++ b/deployment/pcf/content_migrations.yml
@@ -0,0 +1,53 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+---
+product: apache-usergrid
+installation_version: '1.5'
+to_version: 0.1.1
+migrations:
+- from_version: 0.0.1
+  rules:
+  - type: update
+    selector: product_version
+    to: 0.1.1
+- from_version: 0.0.2
+  rules:
+  - type: update
+    selector: product_version
+    to: 0.1.1
+- from_version: 0.0.3
+  rules:
+  - type: update
+    selector: product_version
+    to: 0.1.1
+- from_version: 0.0.4
+  rules:
+  - type: update
+    selector: product_version
+    to: 0.1.1
+- from_version: 0.0.5
+  rules:
+  - type: update
+    selector: product_version
+    to: 0.1.1
+- from_version: 0.1.0
+  rules:
+  - type: update
+    selector: product_version
+    to: 0.1.1

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/createRelease.sh
----------------------------------------------------------------------
diff --git a/deployment/pcf/createRelease.sh b/deployment/pcf/createRelease.sh
new file mode 100755
index 0000000..e2c58bf
--- /dev/null
+++ b/deployment/pcf/createRelease.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+RELEASE_VERSION=2.1.0
+
+rm -rf dev_releases .dev_builds
+bosh create release --with-tarball --version $RELEASE_VERSION

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/createTile.sh
----------------------------------------------------------------------
diff --git a/deployment/pcf/createTile.sh b/deployment/pcf/createTile.sh
new file mode 100755
index 0000000..91db8f1
--- /dev/null
+++ b/deployment/pcf/createTile.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+TILE_METADATA_VERSION=1.6
+
+# Make sure docker-boshrelease-23.tgz tar ball is available
+
+mkdir -p product/metadata product/releases product/content_migrations # product/javascript-migrations
+cp dev_releases/apache*/apache*tgz product/releases
+cp docker-boshrelease-23.tgz product/releases
+cp apache-usergrid-tile-${TILE_METADATA_VERSION}.yml product/metadata/apache-usergrid.yml
+cp content_migrations.yml product/content_migrations
+cd product
+zip -r ../usergrid.pivotal *
+cd ..

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/jobs/delete-all/monit
----------------------------------------------------------------------
diff --git a/deployment/pcf/jobs/delete-all/monit b/deployment/pcf/jobs/delete-all/monit
new file mode 100644
index 0000000..bba851e
--- /dev/null
+++ b/deployment/pcf/jobs/delete-all/monit
@@ -0,0 +1,17 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/jobs/delete-all/spec
----------------------------------------------------------------------
diff --git a/deployment/pcf/jobs/delete-all/spec b/deployment/pcf/jobs/delete-all/spec
new file mode 100644
index 0000000..3165c6d
--- /dev/null
+++ b/deployment/pcf/jobs/delete-all/spec
@@ -0,0 +1,44 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+---
+name: delete-all
+templates:
+  delete-all.sh.erb: bin/run
+packages:
+- cf_cli
+- elasticsearch_docker
+- cassandra_docker
+- usergrid_app
+properties:
+  domain:
+    description: 'CloudFoundry system domain'
+  app_domains:
+    description: 'CloudFoundry application domains'
+  org:
+    description: 'Org for the Application'
+    default: ''
+  space:
+    description: 'Space for the Application'
+    default: ''
+  ssl.skip_cert_verify:
+    description: 'Whether to verify SSL certs when making web requests'
+  cf.admin_user:
+    description: 'Username of the CF admin user'
+  cf.admin_password:
+    description: 'Password of the CF admin user'

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/jobs/delete-all/templates/delete-all.sh.erb
----------------------------------------------------------------------
diff --git a/deployment/pcf/jobs/delete-all/templates/delete-all.sh.erb b/deployment/pcf/jobs/delete-all/templates/delete-all.sh.erb
new file mode 100644
index 0000000..9bd29ed
--- /dev/null
+++ b/deployment/pcf/jobs/delete-all/templates/delete-all.sh.erb
@@ -0,0 +1,131 @@
+#!/bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+export PATH="/var/vcap/packages/cf_cli/bin:$PATH"
+export CF=`which cf`
+
+function cf() {
+	echo cf "$@"
+	output=$($CF "$@" 2>&1)
+	result="$?"
+	if [ "$result" -ne "0" ]; then
+		echo "$output"
+		# No exit here - best effort continuation on failure for the delete script
+	fi
+}
+
+function is_true() {
+	equals_ignore_case "$1" "true"
+}
+
+function equals_ignore_case() {
+	echo "$1" | grep -i "^$2\$" >/dev/null
+}
+
+function import_opsmgr_variables() {
+	export SCHEME=https
+	export ADMIN_USER=<%= properties.cf.admin_user %>
+	export ADMIN_PASSWORD=<%= properties.cf.admin_password %>
+	export DOMAIN=<%= properties.domain %>
+	export APP_DOMAIN=<%= properties.app_domains[0] %>
+	export CF_ORG=<%= properties.org %>
+	export CF_SPACE=<%= properties.space %>
+	export CF_TARGET=$SCHEME://api.${DOMAIN}
+	export CF_SKIP_SSL=<%= properties.ssl.skip_cert_verify %>
+}
+
+function prepare_cf_cli {
+	export PATH="/var/vcap/packages/cf_cli/bin:$PATH"
+	export CF_HOME=`pwd`/home/cf
+	mkdir -p $CF_HOME
+}
+
+function authenticate() {
+	$CF --version
+	if is_true "$CF_SKIP_SSL"; then
+		cf api $CF_TARGET --skip-ssl-validation
+	else
+		cf api $CF_TARGET
+	fi
+	cf auth $ADMIN_USER $ADMIN_PASSWORD
+}
+
+function target_org() {
+	if [ -z "$CF_ORG" ]; then
+		CF_ORG=apache-usergrid-org
+	fi
+	cf target -o $CF_ORG >/dev/null
+}
+
+function target_space() {
+	if [ -z "$CF_SPACE" ]; then
+		CF_SPACE=apache-usergrid-space
+	fi
+	cf target -s $CF_SPACE >/dev/null
+}
+
+function delete_empty_space() {
+	output=`$CF apps | tail -1`
+	if [ "$output" == "No apps found" ]; then
+		cf delete-space -f $CF_SPACE
+	fi
+}
+
+function delete_empty_org() {
+	output=`$CF spaces | tail -1`
+	if [ "$output" == "No spaces found" ]; then
+		cf delete-org -f $CF_ORG
+	fi
+}
+
+function delete_all_versions() {
+	$CF apps | grep "$1-" | while read app rest; do
+		cf delete -f $app
+	done
+}
+
+function delete_service_broker() {
+    services=`$CF service-access | awk "/broker: $1/{flag=1;next}/broker: /{flag=0}flag" | egrep -v "access *orgs" | grep "."  | awk '{print $1}' | uniq`
+    for service in $services; do
+      cf purge-service-offering -f "$service"
+    done
+    cf delete-service-broker -f $1
+}
+
+import_opsmgr_variables
+prepare_cf_cli
+authenticate
+if target_org; then
+	if target_space; then
+
+		# Delete package usergrid_app
+		#
+		delete_all_versions usergrid_app
+
+		# Delete package cassandra_docker
+		#
+
+		# Delete package elasticsearch_docker
+		#
+
+		delete_empty_space
+	fi
+	delete_empty_org
+fi
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/jobs/deploy-all/monit
----------------------------------------------------------------------
diff --git a/deployment/pcf/jobs/deploy-all/monit b/deployment/pcf/jobs/deploy-all/monit
new file mode 100644
index 0000000..1c19c35
--- /dev/null
+++ b/deployment/pcf/jobs/deploy-all/monit
@@ -0,0 +1,18 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/jobs/deploy-all/spec
----------------------------------------------------------------------
diff --git a/deployment/pcf/jobs/deploy-all/spec b/deployment/pcf/jobs/deploy-all/spec
new file mode 100644
index 0000000..96bd3e7
--- /dev/null
+++ b/deployment/pcf/jobs/deploy-all/spec
@@ -0,0 +1,145 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+---
+name: deploy-all
+templates:
+  deploy-all.sh.erb: bin/run
+packages:
+  - cf_cli
+  - elasticsearch_docker
+  - cassandra_docker
+  - usergrid_app
+properties:
+  domain:
+    description: 'CloudFoundry system domain'
+  app_domains:
+    description: 'CloudFoundry application domains'
+  org:
+    description: 'Org for the Application'
+    default: ''
+  space:
+    description: 'Space for the Application'
+    default: ''
+  ssl.skip_cert_verify:
+    description: 'Whether to verify SSL certs when making web requests'
+  cf.admin_user:
+    description: 'Username of the CF admin user'
+  cf.admin_password:
+    description: 'Password of the CF admin user'
+  org_quota:
+    description: 'Org Memory Quota for the Application'
+    default: 1024
+  apply_open_security_group:
+    description: 'Open security group for the app to access outside'
+    default: true
+  security.user:
+    description: 'Basic auth user'
+  security.password:
+    description: 'Basic auth password'
+
+  elasticsearch.client.type:
+    description: 'The NODE or TRANSPORT type of client for connecting to ES'
+    default: 'TRANSPORT'
+
+  elasticsearch.hosts:
+    description: 'test'
+
+  cassandra.hosts:
+    description: 'test'
+
+  usergrid_app.name:
+    description: 'Name of package'
+
+  usergrid.cluster_name:
+    description: 'test'
+    default: 'usergrid'
+
+  usergrid.tomcat_instances:
+    description: number of instances
+    default: 1
+
+  usergrid.sysadmin.approve.users:
+    description: 'test'
+    default: false
+
+  usergrid.sysadmin.approve.organizations:
+    description: 'test'
+    default: false
+
+  usergrid.sysadmin.login.name:
+    description: 'test'
+
+  usergrid.sysadmin.login.email:
+    description: 'test'
+    default: 'superuser@usergrid.com'
+
+  usergrid.sysadmin.login.password:
+    description: 'test'
+
+  usergrid.sysadmin.login.allowed:
+    description: 'true'
+    default: true
+
+  usergrid.setup_test_account:
+    description: 'test'
+    default: true
+
+  usergrid.test_account.app:
+    description: 'test'
+    default: test-app
+
+  usergrid.test_account.organization:
+    description: 'test'
+    default: test-organization
+
+  usergrid.test_account.admin_user.username:
+    description: 'test'
+    default: 'test'
+
+  usergrid.test_account.admin_user.name:
+    description: 'test'
+    default: 'Test User'
+
+  usergrid.test_account.admin_user.email:
+    description: 'test'
+    default: 'user@usergrid.com'
+
+  usergrid.test_account.admin_user.password:
+    description: 'test'
+    default: 'test'
+
+  mail.smtps.host:
+    description: 'test'
+    default: 'test'
+
+  mail.smtps.port:
+    description: 'test'
+    default: 'test'
+
+  mail.smtps.auth:
+    description: 'test'
+    default: false
+
+  mail.smtps.username:
+    description: 'test'
+    default: 'test'
+
+  mail.smtps.password:
+    description: 'test'
+    default: 'test'
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/jobs/deploy-all/templates/deploy-all.sh.erb
----------------------------------------------------------------------
diff --git a/deployment/pcf/jobs/deploy-all/templates/deploy-all.sh.erb b/deployment/pcf/jobs/deploy-all/templates/deploy-all.sh.erb
new file mode 100644
index 0000000..b4208f3
--- /dev/null
+++ b/deployment/pcf/jobs/deploy-all/templates/deploy-all.sh.erb
@@ -0,0 +1,384 @@
+#!/bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+export PATH="/var/vcap/packages/cf_cli/bin:$PATH"
+export CF=`which cf`
+
+function cf() {
+	echo cf "$@"
+	output=$($CF "$@" 2>&1)
+	result="$?"
+	if [ "$result" -ne "0" ]; then
+		echo "$output"
+		exit $result
+	fi
+}
+
+function is_true() {
+	equals_ignore_case "$1" "true"
+}
+
+function equals_ignore_case() {
+	echo "$1" | grep -i "^$2\$" >/dev/null
+}
+
+function import_opsmgr_variables() {
+	export SCHEME=https
+	export ADMIN_USER=<%= properties.cf.admin_user %>
+	export ADMIN_PASSWORD=<%= properties.cf.admin_password %>
+	export DOMAIN=<%= properties.domain %>
+	export APP_DOMAIN=<%= properties.app_domains[0] %>
+	export CF_ORG=<%= properties.org %>
+	export CF_ORG_QUOTA=<%= properties.org_quota %>
+	export CF_SPACE=<%= properties.space %>
+	export CF_TARGET=$SCHEME://api.${DOMAIN}
+	export CF_SKIP_SSL=<%= properties.ssl.skip_cert_verify %>
+	export SECURITY_USER_NAME=<%= properties.security.user %>
+	export SECURITY_USER_PASSWORD=<%= properties.security.password %>
+	export APPLY_OPEN_SECURITY_GROUP=<%= properties.apply_open_security_group %>
+}
+
+function prepare_cf_cli {
+	export PATH="/var/vcap/packages/cf_cli/bin:$PATH"
+	export CF_HOME=`pwd`/home/cf
+	mkdir -p $CF_HOME
+}
+
+function authenticate() {
+	$CF --version
+	if is_true "$CF_SKIP_SSL"; then
+		cf api $CF_TARGET --skip-ssl-validation
+	else
+		cf api $CF_TARGET
+	fi
+	cf auth $ADMIN_USER $ADMIN_PASSWORD
+}
+
+function setup_target_org() {
+	if [ -z "$CF_ORG" ]; then
+		CF_ORG=apache-usergrid-org
+	fi
+	if ! $CF org $CF_ORG >/dev/null; then
+		cf create-org $CF_ORG
+	fi
+	cf target -o $CF_ORG
+}
+
+function setup_org_quota() {
+	if [ -n "$CF_ORG_QUOTA" ]; then
+		export CF_QUOTA=${CF_ORG}-quota
+		if ! $CF quota $CF_QUOTA >/dev/null; then
+			cf create-quota $CF_QUOTA -m ${CF_ORG_QUOTA}m -r 10 -s 10
+		fi
+		cf update-quota $CF_QUOTA -m ${CF_ORG_QUOTA}m -r 10 -s 10 --disallow-paid-service-plans
+		cf set-quota $CF_ORG $CF_QUOTA
+	fi
+}
+
+function setup_target_space() {
+	if [ -z "$CF_SPACE" ]; then
+		CF_SPACE=apache-usergrid-space
+	fi
+	if ! $CF space $CF_SPACE >/dev/null; then
+		cf create-space $CF_SPACE
+	fi
+	cf target -s $CF_SPACE
+}
+
+function add_target_org_to_admin() {
+
+  SYSTEM_ORG_GUID=`$CF org system --guid`
+  NEW_ORG_GUID=`$CF org $CF_ORG --guid`
+
+  ADMIN_GUID=`$CF curl /v2/organizations/$SYSTEM_ORG_GUID/users | grep -A 2 "username\": \"admin" | awk '{print $2}' | grep organizations | awk -F '/' '{print $4 }' `
+
+  $CF curl /v2/users/$ADMIN_GUID/organizations/$NEW_ORG_GUID -X PUT >/dev/null
+  $CF curl /v2/users/$ADMIN_GUID/managed_organizations/$NEW_ORG_GUID -X PUT >/dev/null
+}
+
+function setup_package_path() {
+	if [ -z "$PACKAGE_PATH" ]; then
+		export PACKAGE_PATH=/var/vcap/packages
+	fi
+}
+
+function apply_open_security_group() {
+	if ! is_true "$1"; then
+		return
+	fi
+	if ! $CF security-group all_open >/dev/null; then
+		cf create-security-group all_open $PACKAGE_PATH/templates/all_open.json
+	fi
+	cf bind-running-security-group all_open
+}
+
+function add_env_vars() {
+	cf set-env $1 UAA_HOST "$SCHEME://uaa.$DOMAIN"
+	cf set-env $1 CC_HOST "$CF_TARGET"
+	cf set-env $1 LOGIN_HOST "$SCHEME://login.$DOMAIN"
+	cf set-env $1 ROOT "\$HOME"
+	cf set-env $1 SCHEME "$SCHEME"
+	cf set-env $1 VERIFY_SSL "$CF_SKIP_SSL"
+
+	# Adding additional properties that most spring based apps or internal apps seem to be expecting
+	cf set-env $1 CF_ORG "$CF_ORG"
+	cf set-env $1 CF_SPACE "$CF_SPACE"
+	cf set-env $1 CF_TARGET "$CF_TARGET"
+	cf set-env $1 SECURITY_USER_NAME "$SECURITY_USER_NAME"
+	cf set-env $1 SECURITY_USER_PASSWORD "$SECURITY_USER_PASSWORD"
+  cf set-env $1 JBP_CONFIG_TOMCAT "{ tomcat: { version: 7.0.62 }}"
+
+	es_hosts_json="<%= properties.elasticsearch.hosts %>"
+	ca_hosts_json="<%= properties.cassandra.hosts%>"
+
+  export ES_HOSTS=`echo $es_hosts_json | sed -e 's#\[##;s#\]##'`
+  export CA_HOSTS=`echo $ca_hosts_json | sed -e 's#\[##;s#\]##'`
+
+	cf set-env $1 elasticsearch.hosts "$ES_HOSTS"
+	cf set-env $1 cassandra.url "$CA_HOSTS"
+
+  export elasticsearch_client_type="<%= properties.elasticsearch.client.type%>"
+  export cluster_name="<%= properties.usergrid.cluster_name%>"
+  export approve_users="<%= properties.usergrid.sysadmin.approve.users%>"
+  export approve_organizations="<%= properties.usergrid.sysadmin.approve.organizations%>"
+  export login_name="<%= properties.usergrid.sysadmin.login.name%>"
+  export login_email="<%= properties.usergrid.sysadmin.login.email%>"
+  export login_password="<%= properties.usergrid.sysadmin.login.password%>"
+  export login_allowed="<%= properties.usergrid.sysadmin.login.allowed%>"
+  export setup_test_account="<%= properties.usergrid.setup_test_account%>"
+  export test_account_app="<%= properties.usergrid.test_account.app%>"
+  export test_account_organization="<%= properties.usergrid.test_account.organization%>"
+  export test_account_admin_user_username="<%= properties.usergrid.test_account.admin_user.username%>"
+  export test_account_admin_user_name="<%= properties.usergrid.test_account.admin_user.name%>"
+  export test_account_admin_user_email="<%= properties.usergrid.test_account.admin_user.email%>"
+  export test_account_admin_user_password="<%= properties.usergrid.test_account.admin_user.password%>"
+  export smtps_host="<%= properties.mail.smtps.host%>"
+  export smtps_port="<%= properties.mail.smtps.port%>"
+  export smtps_auth="<%= properties.mail.smtps.auth%>"
+  export smtps_username="<%= properties.mail.smtps.username%>"
+  export smtps_password="<%= properties.mail.smtps.password%>"
+
+  cf set-env $1 JAVA_OPTS " -Dcassandra.url=$CA_HOSTS -Delasticsearch.hosts=$ES_HOSTS \
+    -Delasticsearch.client.type=$elasticsearch_client_type -Dusergrid.cluster_name=$cluster_name \
+    -Dmail.smtps.auth=$smtps_auth -Dmail.smtps.host=$smtps_host -Dmail.smtps.password=$smtps_password \
+    -Dmail.smtps.port=$smtps_port -Dmail.smtps.username=$smtps_username \
+    -Dusergrid.setup-test-account=$setup_test_account -Dusergrid.sysadmin.approve.organizations=$approve_organizations \
+    -Dusergrid.sysadmin.approve.users=approve_users -Dusergrid.sysadmin.login.allowed=true \
+    -Dusergrid.sysadmin.login.email=$login_email -Dusergrid.sysadmin.login.name=$login_name \
+    -Dusergrid.sysadmin.login.password=$login_password -Dusergrid.test-account.admin-user.email=baasadmins+pcf@apigee.com \
+    -Dusergrid.test-account.admin-user.name=\"$test_account_admin_user_name\" -Dusergrid.test-account.admin-user.password=test \
+    -Dusergrid.test-account.admin-user.username=$test_account_admin_user_username -Dusergrid.test-account.app=$test_account_app \
+    -Dusergrid.test-account.organization=$test_account_organization"
+
+	# Dynamic plans (if defined)
+
+	# Custom variables from tile.yml
+}
+
+function add_cf_credentials() {
+	cf set-env $1 CF_ADMIN_USER "$ADMIN_USER"
+	cf set-env $1 CF_ADMIN_USERNAME "$ADMIN_USER"
+	cf set-env $1 CF_ADMIN_PASSWORD "$ADMIN_PASSWORD"
+}
+
+function delete_older_versions() {
+	PKG_NAME="$1"
+	APP_NAME="$2"
+	$CF apps | grep "$PKG_NAME" | grep -v "$APP_NAME" | while read app rest; do
+		cf delete -f $app
+	done
+}
+
+function wait_till_running() {
+
+	for i in `seq 1  15`; do
+		CF_TRACE=true $CF app "$1" | grep RUNNING | grep "$1" >/dev/null
+		if [ "$?" -ne "0" ]; then
+			sleep 30
+			echo "cf app $1   # waiting for running state"
+		else
+			break
+		fi
+	done
+}
+
+function bootstrap_usergrid() {
+
+  echo "App is running, attempting Usergrid /system/database/setup"
+  echo " These calls do the following"
+  echo "1) Create the cassandra keyspace"
+  echo "2) Initialize the ElasticSearch indexes"
+  echo "3) Check the status"
+  echo ""
+
+  ug_db_setup=`curl -k -X PUT https://${APP_HOST}.${APP_DOMAIN}/system/database/setup -u ${login_name}:${login_password}`
+  echo "setup output: $ug_db_setup"
+
+  echo "App is running, Usergrid /system/database/setup finished, attempting Usergrid /system/database/bootstrap"
+  ug_db_bootstrap=`curl -k -X PUT https://${APP_HOST}.${APP_DOMAIN}/system/database/bootstrap -u ${login_name}:${login_password}`
+  echo "boostrap output: $ug_db_bootstrap"
+
+  ug_db_status=`curl -k https://${APP_HOST}.${APP_DOMAIN}/status -u ${login_name}:${login_password}`
+  echo "Status: $ug_db_status"
+  echo "Usergrid Bootstrap complete!!"
+  echo ""
+}
+
+function deploy_app() {
+	PKG_NAME="$1"
+	APP_NAME="$2"
+	APP_HOST="$3"
+	DOCKER_IMAGE="$4"
+	NEEDS_CF_CREDS="$5"
+	HEALTH_CHECK="$6"
+	AUTO_SERVICES="$7"
+
+  TOMCAT_INSTANCES="<%= properties.usergrid.tomcat_instances%>"
+
+	cf push ${APP_NAME} -n ${APP_HOST} -d ${APP_DOMAIN} \
+		${DOCKER_IMAGE} -f $PACKAGE_PATH/${PKG_NAME}/manifest.yml -b https://github.com/cloudfoundry/java-buildpack \
+		-i $TOMCAT_INSTANCES --no-start
+
+	add_env_vars ${APP_NAME}
+	if is_true "$NEEDS_CF_CREDS"; then
+		add_cf_credentials ${APP_NAME}
+	fi
+	if [ -n "$HEALTH_CHECK" ]; then
+		cf set-health-check ${APP_NAME} "$HEALTH_CHECK"
+	fi
+	provision_auto_services ${PKG_NAME} ${APP_NAME} ${AUTO_SERVICES}
+	cf start ${APP_NAME}
+	wait_till_running ${APP_NAME}
+	bootstrap_usergrid
+	delete_older_versions ${PKG_NAME} ${APP_NAME}
+}
+
+function provision_auto_services() {
+	PKG_NAME="$1"
+	APP_NAME="$2"
+	shift; shift
+	for service in $*; do
+		if equals_ignore_case "$service" "none"; then
+			continue
+		fi
+		$CF services | grep ${PKG_NAME}-$service >/dev/null
+		if [ "$?" -ne "0" ]; then
+			plan=`$CF marketplace | grep $service | awk '{ print $2 }' | sed 's/,//g'`
+			if [ -n "$plan" ]; then
+				cf create-service $service $plan ${PKG_NAME}-$service
+			else
+				echo "no service matching" $service "in marketplace"
+				exit 1
+			fi
+		fi
+		cf bind-service ${APP_NAME} ${PKG_NAME}-$service
+	done
+}
+
+function register_broker() {
+	BROKER_NAME="$1"
+	BROKER_USER="$2"
+	BROKER_PASS="$3"
+	BROKER_URL="$4"
+	GLOBAL_ACCESS="$5"
+	BROKER_SERVICES="$6"
+	$CF service-brokers | grep $BROKER_NAME >/dev/null
+	if [ "$?" -ne "0" ]; then
+		cf create-service-broker "$BROKER_NAME" "$BROKER_USER" "$BROKER_PASS" "$BROKER_URL"
+	else
+		cf update-service-broker "$BROKER_NAME" "$BROKER_USER" "$BROKER_PASS" "$BROKER_URL"
+	fi
+	if is_true "$GLOBAL_ACCESS"; then
+		publicize_services "$BROKER_NAME" "$BROKER_SERVICES"
+	fi
+}
+
+function publicize_services() {
+	BROKER_NAME="$1"
+	BROKER_SERVICES="$2"
+	services_url=`$CF curl /v2/services?q=label:$BROKER_NAME | grep service_plans_url | awk '{ print $2 }' | sed 's/[",]//g'`
+	if [ -n "$services_url" ]; then
+		services=`$CF curl $services_url | grep "\"url\"" | awk '{ print $2 }' | sed 's/[",]//g'`
+		for service in $services; do
+			cf curl $service -X PUT -d '{"public": true}'
+		done
+	elif [ -n "$BROKER_SERVICES" ] && [ "$BROKER_SERVICES" != "INTERNAL_SERVICE_NAME" ]; then
+		# Rely on the internal plan names if we cannot get it from the /v2/services on the broker
+		for service_name in `echo "$BROKER_SERVICES" | sed -e 's/,/ /g;s/;/ /g'`
+		do
+			cf enable-service-access $service_name
+		done
+	else
+		services=`$CF service-access | awk "/broker: ${BROKER_NAME}/{flag=1;next}/broker: /{flag=0}flag" | egrep -v "access *orgs" | grep "."  | awk '{print $1}' | uniq `
+		for service_name in $services; do
+			cf enable-service-access $service_name
+		done
+	fi
+}
+
+function push_buildpack() {
+	BUILDPACK_NAME="$1"
+	BUILDPACK_ORDER="$2"
+	BUILDPACK_FILE="$3"
+	$CF buildpacks | grep ${BUILDPACK_NAME} >/dev/null
+	if [ "$?" -eq "0" ]; then
+		cf update-buildpack $BUILDPACK_NAME -p $BUILDPACK_FILE --enable
+	else
+		cf create-buildpack $BUILDPACK_NAME $BUILDPACK_FILE $BUILDPACK_ORDER --enable
+	fi
+}
+
+import_opsmgr_variables
+prepare_cf_cli
+authenticate
+setup_target_org
+setup_org_quota
+setup_target_space
+add_target_org_to_admin
+setup_package_path
+apply_open_security_group "$APPLY_OPEN_SECURITY_GROUP"
+
+# Deploy package elasticsearch_docker
+#
+
+
+
+
+# Deploy package cassandra_docker
+#
+
+
+
+
+# Deploy package usergrid_app
+#
+
+export PKG_NAME=usergrid_app
+export APP_NAME=usergrid_app-0.1.0
+export APP_HOST=usergrid_app
+export DOCKER_IMAGE=""
+export NEEDS_CF_CREDS=""
+export HEALTH_CHECK=""
+export AUTO_SERVICES=""
+export AUTO_SERVICES="${AUTO_SERVICES} <%= properties.usergrid_app.persistence_store_type %>"
+deploy_app "$PKG_NAME" "$APP_NAME" "$APP_HOST" "$DOCKER_IMAGE" "$NEEDS_CF_CREDS" "$HEALTH_CHECK" "$AUTO_SERVICES"
+
+
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/jobs/docker-bosh-cassandra_docker/monit
----------------------------------------------------------------------
diff --git a/deployment/pcf/jobs/docker-bosh-cassandra_docker/monit b/deployment/pcf/jobs/docker-bosh-cassandra_docker/monit
new file mode 100644
index 0000000..39b40e3
--- /dev/null
+++ b/deployment/pcf/jobs/docker-bosh-cassandra_docker/monit
@@ -0,0 +1,23 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+check process docker-bosh-cassandra_docker
+  with pidfile /var/vcap/sys/run/docker-bosh-cassandra_docker/docker-bosh-cassandra_docker.pid
+  start program "/var/vcap/jobs/docker-bosh-cassandra_docker/bin/docker-bosh-cassandra_docker_ctl start"
+  stop program "/var/vcap/jobs/docker-bosh-cassandra_docker/bin/docker-bosh-cassandra_docker_ctl stop"
+  group vcap

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/jobs/docker-bosh-cassandra_docker/spec
----------------------------------------------------------------------
diff --git a/deployment/pcf/jobs/docker-bosh-cassandra_docker/spec b/deployment/pcf/jobs/docker-bosh-cassandra_docker/spec
new file mode 100644
index 0000000..ed998e7
--- /dev/null
+++ b/deployment/pcf/jobs/docker-bosh-cassandra_docker/spec
@@ -0,0 +1,26 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+---
+name: docker-bosh-cassandra_docker
+templates:
+  docker-bosh-cassandra_docker.sh.erb: bin/docker-bosh-cassandra_docker_ctl
+packages:
+- cassandra_docker
+- common
+properties: {}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/jobs/docker-bosh-cassandra_docker/templates/docker-bosh-cassandra_docker.sh.erb
----------------------------------------------------------------------
diff --git a/deployment/pcf/jobs/docker-bosh-cassandra_docker/templates/docker-bosh-cassandra_docker.sh.erb b/deployment/pcf/jobs/docker-bosh-cassandra_docker/templates/docker-bosh-cassandra_docker.sh.erb
new file mode 100644
index 0000000..5669dda
--- /dev/null
+++ b/deployment/pcf/jobs/docker-bosh-cassandra_docker/templates/docker-bosh-cassandra_docker.sh.erb
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+set -e # exit immediately if a simple command exits with a non-zero status
+set -u # report the usage of uninitialized variables
+
+# Setup env vars and folders
+RUN_DIR=/var/vcap/sys/run/docker-bosh-cassandra_docker
+LOG_DIR=/var/vcap/sys/log/docker-bosh-cassandra_docker
+PACKAGES_DIR=/var/vcap/packages/cassandra_docker
+
+PIDFILE=$RUN_DIR/docker-bosh-cassandra_docker.pid
+
+source /var/vcap/packages/common/utils.sh
+
+case $1 in
+
+  start)
+    pid_guard $PIDFILE docker-bosh-cassandra_docker
+
+    mkdir -p $RUN_DIR
+    mkdir -p $LOG_DIR
+
+    chown vcap:vcap $RUN_DIR
+    chown -R vcap:vcap $LOG_DIR
+
+    echo $$ > $PIDFILE
+    chown vcap:vcap $PIDFILE
+
+    for image in $PACKAGES_DIR/*.tgz; do
+      /var/vcap/packages/docker/bin/docker \
+        --host unix:///var/vcap/sys/run/docker/docker.sock \
+        load -i $image \
+        >>$LOG_DIR/docker-bosh-cassandra_docker.stdout.log \
+        2>>$LOG_DIR/docker-bosh-cassandra_docker.stderr.log
+    done
+
+    # do nothing forever
+    exec tail -f /dev/null
+    ;;
+
+  stop)
+    kill_and_wait $PIDFILE
+
+    ;;
+  *)
+    echo "Usage: docker-bosh-cassandra_docker_ctl {start|stop}"
+
+    ;;
+
+esac
+exit 0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/jobs/docker-bosh-elasticsearch_docker/monit
----------------------------------------------------------------------
diff --git a/deployment/pcf/jobs/docker-bosh-elasticsearch_docker/monit b/deployment/pcf/jobs/docker-bosh-elasticsearch_docker/monit
new file mode 100644
index 0000000..1846260
--- /dev/null
+++ b/deployment/pcf/jobs/docker-bosh-elasticsearch_docker/monit
@@ -0,0 +1,23 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+check process docker-bosh-elasticsearch_docker
+  with pidfile /var/vcap/sys/run/docker-bosh-elasticsearch_docker/docker-bosh-elasticsearch_docker.pid
+  start program "/var/vcap/jobs/docker-bosh-elasticsearch_docker/bin/docker-bosh-elasticsearch_docker_ctl start"
+  stop program "/var/vcap/jobs/docker-bosh-elasticsearch_docker/bin/docker-bosh-elasticsearch_docker_ctl stop"
+  group vcap

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/jobs/docker-bosh-elasticsearch_docker/spec
----------------------------------------------------------------------
diff --git a/deployment/pcf/jobs/docker-bosh-elasticsearch_docker/spec b/deployment/pcf/jobs/docker-bosh-elasticsearch_docker/spec
new file mode 100644
index 0000000..7f66165
--- /dev/null
+++ b/deployment/pcf/jobs/docker-bosh-elasticsearch_docker/spec
@@ -0,0 +1,26 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+---
+name: docker-bosh-elasticsearch_docker
+templates:
+  docker-bosh-elasticsearch_docker.sh.erb: bin/docker-bosh-elasticsearch_docker_ctl
+packages:
+- elasticsearch_docker
+- common
+properties: {}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/jobs/docker-bosh-elasticsearch_docker/templates/docker-bosh-elasticsearch_docker.sh.erb
----------------------------------------------------------------------
diff --git a/deployment/pcf/jobs/docker-bosh-elasticsearch_docker/templates/docker-bosh-elasticsearch_docker.sh.erb b/deployment/pcf/jobs/docker-bosh-elasticsearch_docker/templates/docker-bosh-elasticsearch_docker.sh.erb
new file mode 100644
index 0000000..2f3bab7
--- /dev/null
+++ b/deployment/pcf/jobs/docker-bosh-elasticsearch_docker/templates/docker-bosh-elasticsearch_docker.sh.erb
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+set -e # exit immediately if a simple command exits with a non-zero status
+set -u # report the usage of uninitialized variables
+
+# Setup env vars and folders
+RUN_DIR=/var/vcap/sys/run/docker-bosh-elasticsearch_docker
+LOG_DIR=/var/vcap/sys/log/docker-bosh-elasticsearch_docker
+PACKAGES_DIR=/var/vcap/packages/elasticsearch_docker
+
+PIDFILE=$RUN_DIR/docker-bosh-elasticsearch_docker.pid
+
+source /var/vcap/packages/common/utils.sh
+
+case $1 in
+
+  start)
+    pid_guard $PIDFILE docker-bosh-elasticsearch_docker
+
+    mkdir -p $RUN_DIR
+    mkdir -p $LOG_DIR
+
+    chown vcap:vcap $RUN_DIR
+    chown -R vcap:vcap $LOG_DIR
+
+    echo $$ > $PIDFILE
+    chown vcap:vcap $PIDFILE
+
+    for image in $PACKAGES_DIR/*.tgz; do
+      /var/vcap/packages/docker/bin/docker \
+        --host unix:///var/vcap/sys/run/docker/docker.sock \
+        load -i $image \
+        >>$LOG_DIR/docker-bosh-elasticsearch_docker.stdout.log \
+        2>>$LOG_DIR/docker-bosh-elasticsearch_docker.stderr.log
+    done
+
+    # do nothing forever
+    exec tail -f /dev/null
+    ;;
+
+  stop)
+    kill_and_wait $PIDFILE
+
+    ;;
+  *)
+    echo "Usage: docker-bosh-elasticsearch_docker_ctl {start|stop}"
+
+    ;;
+
+esac
+exit 0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/packages/cassandra_docker/packaging
----------------------------------------------------------------------
diff --git a/deployment/pcf/packages/cassandra_docker/packaging b/deployment/pcf/packages/cassandra_docker/packaging
new file mode 100644
index 0000000..2b1f9d5
--- /dev/null
+++ b/deployment/pcf/packages/cassandra_docker/packaging
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+# abort script on any command that exit with a non zero value
+set -e
+
+cp -r templates ${BOSH_INSTALL_TARGET}
+
+cp cassandra_docker/cassandra-2.1.tgz ${BOSH_INSTALL_TARGET}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/packages/cassandra_docker/spec
----------------------------------------------------------------------
diff --git a/deployment/pcf/packages/cassandra_docker/spec b/deployment/pcf/packages/cassandra_docker/spec
new file mode 100644
index 0000000..17cc214
--- /dev/null
+++ b/deployment/pcf/packages/cassandra_docker/spec
@@ -0,0 +1,26 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+---
+name: cassandra_docker
+
+dependencies: []
+
+files:
+- templates/all_open.json
+- cassandra_docker/cassandra-2.1.tgz

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/packages/cf_cli/packaging
----------------------------------------------------------------------
diff --git a/deployment/pcf/packages/cf_cli/packaging b/deployment/pcf/packages/cf_cli/packaging
new file mode 100644
index 0000000..b2c38ba
--- /dev/null
+++ b/deployment/pcf/packages/cf_cli/packaging
@@ -0,0 +1,26 @@
+#! /bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+set -e
+
+mkdir -p ${BOSH_INSTALL_TARGET}/bin
+cd cf_cli
+tar zxvf cf-linux-amd64.tgz
+cp cf ${BOSH_INSTALL_TARGET}/bin/
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/packages/cf_cli/spec
----------------------------------------------------------------------
diff --git a/deployment/pcf/packages/cf_cli/spec b/deployment/pcf/packages/cf_cli/spec
new file mode 100644
index 0000000..f9bc92b
--- /dev/null
+++ b/deployment/pcf/packages/cf_cli/spec
@@ -0,0 +1,25 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+---
+name: cf_cli
+
+dependencies: []
+
+files:
+- cf_cli/cf-linux-amd64.tgz

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/packages/common/packaging
----------------------------------------------------------------------
diff --git a/deployment/pcf/packages/common/packaging b/deployment/pcf/packages/common/packaging
new file mode 100644
index 0000000..7ca503a
--- /dev/null
+++ b/deployment/pcf/packages/common/packaging
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+set -e -x
+
+cp -a common/* ${BOSH_INSTALL_TARGET}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/packages/common/spec
----------------------------------------------------------------------
diff --git a/deployment/pcf/packages/common/spec b/deployment/pcf/packages/common/spec
new file mode 100644
index 0000000..ad325c9
--- /dev/null
+++ b/deployment/pcf/packages/common/spec
@@ -0,0 +1,25 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+---
+name: common
+
+dependencies: []
+
+files:
+- common/*

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/packages/elasticsearch_docker/packaging
----------------------------------------------------------------------
diff --git a/deployment/pcf/packages/elasticsearch_docker/packaging b/deployment/pcf/packages/elasticsearch_docker/packaging
new file mode 100644
index 0000000..a1306d1
--- /dev/null
+++ b/deployment/pcf/packages/elasticsearch_docker/packaging
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+# abort script on any command that exit with a non zero value
+set -e
+
+cp -r templates ${BOSH_INSTALL_TARGET}
+
+cp elasticsearch_docker/elasticsearch-1.7.tgz ${BOSH_INSTALL_TARGET}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/packages/elasticsearch_docker/spec
----------------------------------------------------------------------
diff --git a/deployment/pcf/packages/elasticsearch_docker/spec b/deployment/pcf/packages/elasticsearch_docker/spec
new file mode 100644
index 0000000..4a553ab
--- /dev/null
+++ b/deployment/pcf/packages/elasticsearch_docker/spec
@@ -0,0 +1,26 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+---
+name: elasticsearch_docker
+
+dependencies: []
+
+files:
+- templates/all_open.json
+- elasticsearch_docker/elasticsearch-1.7.tgz

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/packages/usergrid_app/packaging
----------------------------------------------------------------------
diff --git a/deployment/pcf/packages/usergrid_app/packaging b/deployment/pcf/packages/usergrid_app/packaging
new file mode 100644
index 0000000..586922b
--- /dev/null
+++ b/deployment/pcf/packages/usergrid_app/packaging
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+# abort script on any command that exit with a non zero value
+set -e
+
+cp -r templates ${BOSH_INSTALL_TARGET}
+
+cp usergrid_app/ROOT.war ${BOSH_INSTALL_TARGET}
+cp usergrid_app/manifest.yml ${BOSH_INSTALL_TARGET}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/packages/usergrid_app/spec
----------------------------------------------------------------------
diff --git a/deployment/pcf/packages/usergrid_app/spec b/deployment/pcf/packages/usergrid_app/spec
new file mode 100644
index 0000000..176821a
--- /dev/null
+++ b/deployment/pcf/packages/usergrid_app/spec
@@ -0,0 +1,27 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+---
+name: usergrid_app
+
+dependencies: []
+
+files:
+- templates/all_open.json
+- usergrid_app/manifest.yml
+- usergrid_app/ROOT.war 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/run.sh
----------------------------------------------------------------------
diff --git a/deployment/pcf/run.sh b/deployment/pcf/run.sh
new file mode 100755
index 0000000..a4eb7c1
--- /dev/null
+++ b/deployment/pcf/run.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+export RELEASE_VERSION=2.1.0
+export TILE_METADATA_VERSION=1.6
+
+./createRelease.sh
+./createTile.sh

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/src/common/utils.sh
----------------------------------------------------------------------
diff --git a/deployment/pcf/src/common/utils.sh b/deployment/pcf/src/common/utils.sh
new file mode 100644
index 0000000..6325e7b
--- /dev/null
+++ b/deployment/pcf/src/common/utils.sh
@@ -0,0 +1,107 @@
+#!/bin/bash
+
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+mkdir -p /var/vcap/sys/log
+
+exec > >(tee -a >(logger -p user.info -t vcap.$(basename $0).stdout) | awk -W interactive '{lineWithDate="echo [`date +\"%Y-%m-%d %H:%M:%S%z\"`] \"" $0 "\""; system(lineWithDate)  }' >>/var/vcap/sys/log/$(basename $0).log)
+exec 2> >(tee -a >(logger -p user.error -t vcap.$(basename $0).stderr) | awk -W interactive '{lineWithDate="echo [`date +\"%Y-%m-%d %H:%M:%S%z\"`] \"" $0 "\""; system(lineWithDate)  }' >>/var/vcap/sys/log/$(basename $0).err.log)
+
+pid_guard() {
+  echo "------------ STARTING `basename $0` at `date` --------------" | tee /dev/stderr
+  pidfile=$1
+  name=$2
+
+  if [ -f "$pidfile" ]; then
+    pid=$(head -1 "$pidfile")
+
+    if [ -n "$pid" ] && [ -e /proc/$pid ]; then
+      echo "$name is already running, please stop it first"
+      exit 1
+    fi
+
+    echo "Removing stale pidfile..."
+    rm $pidfile
+  fi
+}
+
+wait_pidfile() {
+  pidfile=$1
+  try_kill=$2
+  timeout=${3:-0}
+  force=${4:-0}
+  countdown=$(( $timeout * 10 ))
+
+  if [ -f "$pidfile" ]; then
+    pid=$(head -1 "$pidfile")
+
+    if [ -z "$pid" ]; then
+      echo "Unable to get pid from $pidfile"
+      exit 1
+    fi
+
+    if [ -e /proc/$pid ]; then
+      if [ "$try_kill" = "1" ]; then
+        echo "Killing $pidfile: $pid "
+        kill $pid
+      fi
+      while [ -e /proc/$pid ]; do
+        sleep 0.1
+        [ "$countdown" != '0' -a $(( $countdown % 10 )) = '0' ] && echo -n .
+        if [ $timeout -gt 0 ]; then
+          if [ $countdown -eq 0 ]; then
+            if [ "$force" = "1" ]; then
+              echo -ne "\nKill timed out, using kill -9 on $pid... "
+              kill -9 $pid
+              sleep 0.5
+            fi
+            break
+          else
+            countdown=$(( $countdown - 1 ))
+          fi
+        fi
+      done
+      if [ -e /proc/$pid ]; then
+        echo "Timed Out"
+      else
+        echo "Stopped"
+      fi
+    else
+      echo "Process $pid is not running"
+    fi
+
+    rm -f $pidfile
+  else
+    echo "Pidfile $pidfile doesn't exist"
+  fi
+}
+
+kill_and_wait() {
+  pidfile=$1
+  # Monit default timeout for start/stop is 30s
+  # Append 'with timeout {n} seconds' to monit start/stop program configs
+  timeout=${2:-25}
+  force=${3:-1}
+
+  wait_pidfile $pidfile 1 $timeout $force
+}
+
+running_in_container() {
+  grep -q '/instance' /proc/self/cgroup
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/src/templates/all_open.json
----------------------------------------------------------------------
diff --git a/deployment/pcf/src/templates/all_open.json b/deployment/pcf/src/templates/all_open.json
new file mode 100644
index 0000000..ef60dec
--- /dev/null
+++ b/deployment/pcf/src/templates/all_open.json
@@ -0,0 +1,6 @@
+[
+  {
+    "destination": "0.0.0.0-255.255.255.255",
+    "protocol": "all"
+  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29c287b2/deployment/pcf/src/usergrid_app/manifest.yml
----------------------------------------------------------------------
diff --git a/deployment/pcf/src/usergrid_app/manifest.yml b/deployment/pcf/src/usergrid_app/manifest.yml
new file mode 100644
index 0000000..0fe9295
--- /dev/null
+++ b/deployment/pcf/src/usergrid_app/manifest.yml
@@ -0,0 +1,22 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements.  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.  For additional information regarding
+#  copyright in this work, please see the NOTICE file in the top level
+#  directory of this distribution.
+#
+
+---
+path: ROOT.war
+timeout: 180
+memory: 1024M