diff options
author | xudan <xudan16@huawei.com> | 2017-11-02 02:17:10 -0400 |
---|---|---|
committer | Leo wang <grakiss.wanglei@huawei.com> | 2017-11-06 01:28:29 +0000 |
commit | 2866e0b3a9f028eee262b65db1e377b50b3f9594 (patch) | |
tree | 16b8f79511b85493203bc88951798b5b2d79ec6e | |
parent | 0df52c2b1fe801b0f282c4f44aed7891a389d833 (diff) |
Bugfix: Failed to build local DB on Centos
1. The scripts for building local DB and testapi service just work on Ubuntu.
2. For Centos, they fails to do that.
3. This is mainly because of that Centos can't use the IP of the JumpHost
to connect the DB and testapi. It needs to use the internal IPs of the
DB container and the testapi container.
4. Change the IPs in the scripts to be the containers' internal IPs.
JIRA: DOVETAIL-548
Change-Id: I71aed82cb620b58bcd43ace61497db65c5bd7ecc
Signed-off-by: xudan <xudan16@huawei.com>
-rw-r--r-- | dovetail/utils/local_db/init_db.py | 8 | ||||
-rwxr-xr-x | dovetail/utils/local_db/launch_db.sh | 26 |
2 files changed, 17 insertions, 17 deletions
diff --git a/dovetail/utils/local_db/init_db.py b/dovetail/utils/local_db/init_db.py index bea3eac8..365927b5 100644 --- a/dovetail/utils/local_db/init_db.py +++ b/dovetail/utils/local_db/init_db.py @@ -10,12 +10,14 @@ import requests import json import sys +import os db_host_ip = sys.argv[1] testapi_port = sys.argv[2] target_url = 'http://{}:{}/api/v1'.format(db_host_ip, testapi_port) print(target_url) +dir_path = os.path.dirname(os.path.realpath(__file__)) def get(url): @@ -31,7 +33,7 @@ def post(url, data): def pod(): target = '{}/pods'.format(target_url) - with open('pods.json', 'r') as f: + with open(os.path.join(dir_path, 'pods.json'), 'r') as f: pods = json.load(f) for p in pods: post(target, p) @@ -39,14 +41,14 @@ def pod(): def project(): target = '{}/projects'.format(target_url) - with open('projects.json', 'r') as f: + with open(os.path.join(dir_path, 'projects.json'), 'r') as f: projects = json.load(f) for p in projects: post(target, p) def cases(): - with open('cases.json', 'r') as f: + with open(os.path.join(dir_path, 'cases.json'), 'r') as f: for line in f: try: cases = json.loads(line) diff --git a/dovetail/utils/local_db/launch_db.sh b/dovetail/utils/local_db/launch_db.sh index dbc0d003..cad0f365 100755 --- a/dovetail/utils/local_db/launch_db.sh +++ b/dovetail/utils/local_db/launch_db.sh @@ -8,20 +8,8 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -if [ "$#" -ne 1 ]; then - echo "Error: missing parameter! try again like this:" - echo "" - echo "./launch_db.sh 192.168.115.2" - echo "" - echo "parameters:" - echo " host_ip: your localhost ip address " - echo "" - exit 1 -fi - export mongodb_port=${mongodb_port:-"27017"} export testapi_port=${testapi_port:-"8000"} -export db_host_ip=${db_host_ip:-"$1"} set -e @@ -53,6 +41,11 @@ ${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." @@ -75,10 +68,15 @@ 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://${db_host_ip}:${mongodb_port}/ ${testapi_img}" +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 @@ -87,7 +85,7 @@ echo "Upload default project info to DB" echo "=================================" echo "Init DB info..." -cmd="python ./init_db.py ${db_host_ip} ${testapi_port}" +cmd="python /home/opnfv/dovetail/dovetail/utils/local_db/init_db.py ${testapi_ip} 8000" echo $cmd ${cmd} |