This is an automated email from the ASF dual-hosted git repository. mmiller pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/accumulo-testing.git
The following commit(s) were added to refs/heads/master by this push: new c63ea3d Resolves #78 Script to automate EC2 (#96) c63ea3d is described below commit c63ea3ddc3efbaf1f049322a2e1f195fd2093c02 Author: Russell Carter <russell....@gmail.com> AuthorDate: Fri Sep 20 12:09:52 2019 -0400 Resolves #78 Script to automate EC2 (#96) --- test/automation/automateEC2.sh | 82 ++++++++++++++++++++++++++++++++++++++++ test/automation/cluster_props.sh | 28 ++++++++++++++ 2 files changed, 110 insertions(+) diff --git a/test/automation/automateEC2.sh b/test/automation/automateEC2.sh new file mode 100755 index 0000000..e4f3619 --- /dev/null +++ b/test/automation/automateEC2.sh @@ -0,0 +1,82 @@ +#! /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 diff --git a/test/automation/cluster_props.sh b/test/automation/cluster_props.sh new file mode 100644 index 0000000..1466f15 --- /dev/null +++ b/test/automation/cluster_props.sh @@ -0,0 +1,28 @@ +#! /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. + +export ACCUMULO_REPO=https://github.com/apache/accumulo.git +export ACCUMULO_BRANCH=master + +export ACCUMULO_TESTING_REPO=https://github.com/apache/accumulo-testing.git +export ACCUMULO_TESTING_BRANCH=master + +export FLUO_MUCHOS_REPO=https://github.com/apache/fluo-muchos +export FLUO_MUCHOS_BRANCH=master + +export MUCHOS_PROPS=${MUCHOS_PROPS:-/path/to/muchos/props} +