blob: a5d61620286cb7a6810c7cbde276c94b9f9c02cb [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
#
# https://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