misc/ccm-macos.bash (35 lines of code) (raw):
#!/bin/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.
CLUSTER_NAME=${CLUSTER_NAME:-test}
NUM_NODES=${NUM_NODES:-3}
CASSANDRA_DIR=${CASSANDRA_DIR:-$HOME/cassandra}
PYTHON_VERSION=${PYTHON_VERSION:-python3}
function fail()
{
echo "ERROR: $1"
exit 1
}
if [ ! -z $VIRTUAL_ENV ]; then
if [ ! -d ${CASSANDRA_DIR}/pylib/venv ]; then
if [ "${PYTHON_VERSION}" != "python3" -a "${PYTHON_VERSION}" != "python2" ]; then
fail "Specify Python version python3 or python2"
fi
# Initialize the virtualenv used for Cassandra's pylib
virtualenv --python=$PYTHON_VERSION ${CASSANDRA_DIR}/pylib/venv
source ${CASSANDRA_DIR}/pylib/venv/bin/activate
pip install -r ${CASSANDRA_DIR}/pylib/requirements.txt
pip freeze
else
# use Cassandra's pylib virtual environment
source ${CASSANDRA_DIR}/pylib/venv/bin/activate
fi
fi
ccm remove $CLUSTER_NAME
for i in $(seq 1 $(($NUM_NODES - 1)));
do
if=127.0.0.$((i + 1))
echo $if
if ! ifconfig lo0 | grep "$if" > /dev/null; then
echo "Configuring interface $if"
sudo ifconfig lo0 alias $if || fail "Unable to configure interface $if"
fi
done
ccm create $CLUSTER_NAME -n $NUM_NODES --install-dir=${CASSANDRA_DIR}
ccm populate -d -n $NUM_NODES
ccm start