summaryrefslogtreecommitdiffstats
path: root/dovetail/utils/local_db/launch_db.sh
blob: cad0f365785478e0545c767e669a215281615eee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/bash
##############################################################################
# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

export mongodb_port=${mongodb_port:-"27017"}
export testapi_port=${testapi_port:-"8000"}

set -e

echo "==================="
echo "Create the mongodb."
echo "==================="

set +e
# pull image mongo:3.2.1
mongodb_img="mongo:3.2.1"
echo "Step1: pull the image $mongodb_img."
sudo docker pull $mongodb_img
set -e

container_name='mongodb_offline_dovetail'

echo "Step2: remove the exist container with the same name '$container_name' if exists."
sudo docker ps -a -f "name=${container_name}"

if [[ ! -z $(sudo docker ps -aq -f "name=${container_name}" -f "ancestor=${mongodb_img}") ]]; then
    sudo docker ps -aq -f "name=${container_name}" -f "ancestor=${mongodb_img}" | xargs sudo docker rm -f
fi

# run mongodb container
echo "Step3: run ${container_name} container."
cmd="sudo docker run -itd -p ${mongodb_port}:27017 -v ${DOVETAIL_HOME}/testapi/mongo:/data/db --name ${container_name} ${mongodb_img}"
echo $cmd
${cmd}

echo "Successfully create mongo DB."

echo "Step4: get the internal IP of ${container_name} container..."
get_ip_cmd="ip a | grep eth0 | grep inet | awk '{print \$2}' | cut -d'/' -f 1"
mongo_ip=$(sudo docker exec ${container_name} /bin/bash -c "${get_ip_cmd}")
echo "The internal IP of container ${container_name} is ${mongo_ip}"


echo "=========================="
echo "Create the testapi service."
echo "=========================="

set +e
testapi_img="opnfv/testapi:cvp.0.3.0"
echo "Step1: pull the image $testapi_img."
sudo docker pull $testapi_img
set -e

container_name='testapi_offline_dovetail'

echo "Step2: remove the exist container with the same name '$container_name' if exists."
sudo docker ps -a -f "name=${container_name}"

if [[ ! -z $(sudo docker ps -aq -f "name=${container_name}" -f "ancestor=${testapi_img}") ]]; then
    sudo docker ps -aq -f "name=${container_name}" -f "ancestor=${testapi_img}" | xargs sudo docker rm -f
fi

# run testapi container
echo "Step3: run ${container_name} container."
cmd="sudo docker run -itd -p ${testapi_port}:8000 --name ${container_name} -v ${DOVETAIL_HOME}/testapi/logs:/home/testapi/logs -e mongodb_url=mongodb://${mongo_ip}:27017/ ${testapi_img}"
echo $cmd
${cmd}

echo "Step4: get the internal IP of ${container_name} container..."
get_ip_cmd="ip a | grep eth0 | grep inet | awk '{print \$2}' | cut -d'/' -f 1"
testapi_ip=$(sudo docker exec ${container_name} /bin/bash -c "${get_ip_cmd}")
echo "The internal IP of container ${container_name} is ${testapi_ip}"

echo "Wait for testapi to work..."
sleep 10

echo "================================="
echo "Upload default project info to DB"
echo "================================="

echo "Init DB info..."
cmd="python /home/opnfv/dovetail/dovetail/utils/local_db/init_db.py ${testapi_ip} 8000"
echo $cmd
${cmd}

echo "Successfully load DB info."