blob: bac77e9b4d1ff8e35d718fa0bd694375267a00ee [file]
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
echo "=== Airavata Setup ==="
# 1. Start infrastructure
echo "Starting infrastructure services..."
cd "$ROOT_DIR"
docker compose up -d
echo "Waiting for services to be ready..."
sleep 10
# Verify DB is up
until docker exec airavata-db mariadb -h127.0.0.1 -uairavata -p123456 -e "SELECT 1" > /dev/null 2>&1; do
echo " Waiting for MariaDB..."
sleep 2
done
echo " MariaDB: ready"
# Verify RabbitMQ is up
until docker exec airavata-rabbitmq rabbitmqctl status > /dev/null 2>&1; do
echo " Waiting for RabbitMQ..."
sleep 2
done
echo " RabbitMQ: ready"
# 2. Generate keystores if missing
if [ ! -f "$ROOT_DIR/keystores/airavata.p12" ]; then
echo "Generating keystores..."
cd "$ROOT_DIR/keystores"
keytool -genseckey -alias airavata -keyalg AES -keysize 256 \
-keystore aes.p12 -storepass airavata -storetype PKCS12 2>/dev/null
openssl pkcs12 -export -name tls -out airavata.p12 -passout pass:airavata \
-in server.crt -inkey server.key 2>/dev/null
keytool -importkeystore -srckeystore aes.p12 -destkeystore airavata.p12 \
-srcstorepass airavata -deststorepass airavata -noprompt 2>/dev/null
rm -f aes.p12
echo " Keystores generated"
fi
# 3. Build
echo "Building Airavata..."
cd "$ROOT_DIR/airavata-api"
mvn package -DskipTests -q 2>&1 | tail -1
echo " Build complete"
# 4. Build classpath
mvn dependency:build-classpath -q -Dmdep.outputFile=target/cp.txt 2>/dev/null
echo ""
echo "=== Setup Complete ==="
echo ""
echo "To start Airavata:"
echo " cd $ROOT_DIR"
echo " ./scripts/start.sh"