blob: b34ee9324da974a969c85d14ccb5fe0ac38c9ef2 [file] [log] [blame]
#!/bin/bash
# ============LICENSE_START===============================================
# Copyright (C) 2023 Nordix Foundation. All rights reserved.
# ========================================================================
# Licensed 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.
# ============LICENSE_END=================================================
#
. scripts/get_influxdb2_token.sh
. scripts/populate_keycloak.sh
print_usage() {
echo "Usage: pmlog-setup.sh"
exit 1
}
check_error() {
if [ $1 -ne 0 ]; then
echo "Failed $2"
echo "Exiting..."
exit 1
fi
}
setup_init() {
echo "Cleaning previously started containers..."
./pmlog-tear-down.sh
}
pull_image() {
if [ -z "$(docker images -q $1)" ]; then
echo "Pulling image... "$1
docker pull $1
check_error $?
fi
}
check_images(){
export INFLUXDB_IMAGE="influxdb:2.6.1"
pull_image $INFLUXDB_IMAGE
export PMLOG_IMAGE="nexus3.o-ran-sc.org:10001/o-ran-sc/nonrtric-plt-pmlog:1.0.0"
pull_image $PMLOG_IMAGE
export AUTH_TOKEN_IMAGE=nexus3.o-ran-sc.org:10001/o-ran-sc/nonrtric-plt-auth-token-fetch:1.1.1
pull_image $AUTH_TOKEN_IMAGE
}
setup_influx() {
data_dir=./config/influxdb2/data
mkdir -p $data_dir
export INFLUXDB2_INSTANCE=influxdb2-0
export INFLUXDB2_USERNAME=admin
export INFLUXDB2_PASSWORD=mySuP3rS3cr3tT0keN
export INFLUXDB2_ORG=est
export INFLUXDB2_BUCKET=pm-logg-bucket
envsubst < docker-compose-influxdb.yaml > docker-compose-influxdb_gen.yaml
docker-compose -p influx -f docker-compose-influxdb_gen.yaml up -d
}
setup_pmlog() {
chmod 666 config/pmlog/token-cache/jwt.txt
cid="nrt-pm-log"
create_clients nonrtric-realm $cid
check_error $?
generate_client_secrets nonrtric-realm $cid
check_error $?
export PMLOG_CLIENT_SECRET=$(< .sec_nonrtric-realm_$cid)
envsubst < docker-compose-pmlog.yaml > docker-compose-pmlog_gen.yaml
docker-compose -p pmlog -f docker-compose-pmlog_gen.yaml up -d
}
## Main ##
setup_init
check_images
setup_influx
check_error $?
# Wait for influxdb2 to start
echo 'Waiting for influxdb2 to be ready'
until [ $(curl -s -w '%{http_code}' -o /dev/null 'http://localhost:8086/health') -eq 200 ];
do
echo -n '.'
sleep 1
done
echo ""
INFLUXDB2_TOKEN=$(get_influxdb2_token $INFLUXDB2_INSTANCE)
echo $INFLUXDB2_TOKEN
export INFLUXDB2_TOKEN
setup_pmlog
check_error $?