blob: e4f3619e4b3cb2254d4ca5149e8bcab0e1389edd [file] [log] [blame]
#! /usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# reads all git repositories and properties from cluster_props.sh
source cluster_props.sh
while true; do
# check for null properties
[ -z "$ACCUMULO_REPO" ] && echo "Check accumulo in cluster_props.sh" && break
[ -z "$ACCUMULO_BRANCH" ] && echo "Check accumulo branch in cluster_props.sh" && break
[ -z "$ACCUMULO_TESTING_REPO" ] && echo "Check accumulo-testing in cluster_props.sh" && break
[ -z "$ACCUMULO_TESTING_BRANCH" ] && echo "Check accumulo-testing branch in cluster_props.sh" && break
[ -z "$FLUO_MUCHOS_REPO" ] && echo "Check fluo-muchos in cluster_props.sh" && break
[ -z "$FLUO_MUCHOS_BRANCH" ] && echo "Check fluo-muchos branch in cluster_props.sh" && break
[[ -z "$MUCHOS_PROPS" || ! -f "$MUCHOS_PROPS" ]] && echo "Check muchos.props in cluster_props.sh" && break
# builds Accumulo tarball and installs fluo-muchos in a temporary directory
TMPDIR=`mktemp -d`
echo "Directory created: $TMPDIR " && cd $TMPDIR
git clone --single-branch --branch $FLUO_MUCHOS_BRANCH $FLUO_MUCHOS_REPO
git clone --single-branch --branch $ACCUMULO_BRANCH $ACCUMULO_REPO && cd accumulo
mvn clean package -DskipFormat -PskipQA
# copies the tarball to the given muchos directory
cp ./assemble/target/*.gz $TMPDIR/fluo-muchos/conf/upload/
if [ $? -eq 0 ]; then
echo "Accumulo tarball copied to fluo-muchos"
else
break
fi
# sets up the cluster
cd $TMPDIR/fluo-muchos || (echo "Could not find Fluo-Muchos" && break)
cp conf/muchos.props.example conf/muchos.props
cp $MUCHOS_PROPS ./conf/muchos.props || (echo Could not use custom config. Check path in cluster_props.sh)
./bin/muchos launch -c "$USER-cluster" && echo "Setting up cluster.."
# repeat setup until all nodes are intialized
until ./bin/muchos setup; do
echo "Script will resume once nodes are intialized."
echo "Retrying in 20 seconds..."
sleep 20
done
if [ $? -eq 0 ]; then
echo "EC2 cluster setup as $USER-cluster"
else
echo "Terminating cluster"
./bin/muchos terminate -c $USER-cluster
break
fi
CLUSTERUSER=`./bin/muchos config -p cluster_user`
PROXYIP=`./bin/muchos config -p proxy.public.ip`
M2='/home/centos/install/apache-maven*/bin'
# clones and builds accumulo and accumulo-testing to EC2
ssh $CLUSTERUSER@$PROXYIP "git clone --single-branch --branch $ACCUMULO_BRANCH $ACCUMULO_REPO"
ssh $CLUSTERUSER@$PROXYIP "cd accumulo && $M2/mvn clean install -PskipQA && cd .."
ssh $CLUSTERUSER@$PROXYIP "git clone --single-branch --branch $ACCUMULO_TESTING_BRANCH $ACCUMULO_TESTING_REPO"
ssh $CLUSTERUSER@$PROXYIP "cd accumulo-testing && $M2/mvn clean package"
break
done