diff options
author | dyh <dengyuanhong@chinamobile.com> | 2020-08-07 11:30:10 +0800 |
---|---|---|
committer | dyh <dengyuanhong@chinamobile.com> | 2020-08-10 10:14:07 +0800 |
commit | 7250a283491694e08aa9e9cfb283e59b62833721 (patch) | |
tree | 4b8f7c2616e5fc081567d8623210a7fe8d7681d8 | |
parent | 902574c0dadd7b1720044d03ec3d70aa06678c8e (diff) |
Don't modify the config file with sed in the docker entrypoint script
Issue-ID: VFC-1623
Change-Id: I5fe44e016bfa451bc257d51e634d302c11641360
Signed-off-by: dyh <dengyuanhong@chinamobile.com>
-rwxr-xr-x | docker/docker-entrypoint.sh | 40 | ||||
-rwxr-xr-x | docker/instance_config.sh | 59 | ||||
-rw-r--r-- | lcm/pub/config/config.py | 32 |
3 files changed, 16 insertions, 115 deletions
diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index 3d9b7949..8f4ea9b5 100755 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -1,42 +1,8 @@ #!/bin/bash -if [ -z "$SERVICE_IP" ]; then - export SERVICE_IP=`hostname -i` -fi -echo "SERVICE_IP=$SERVICE_IP" - -if [ -z "$MSB_ADDR" ]; then - echo "Missing required variable MSB_ADDR: Microservices Service Bus address <ip>:<port>" - exit 1 -fi -echo "MSB_ADDR=$MSB_ADDR" - -if [ -z "$MYSQL_ADDR" ]; then - echo "Missing required variable MYSQL_ADDR: <ip>:<port>" - exit 1 -fi -echo "MYSQL_ADDR=$MYSQL_ADDR" - -# Wait for MSB initialization -echo "Wait for MSB initialization" -for i in {1..5}; do - curl -sS -m 1 $MSB_PROTO://$MSB_ADDR/msb -k > /dev/null - res=$? - if [ $res -ne 0 ]; then - break - fi - sleep $i -done - -# Wait for DB initialization -echo "Wait for DB initialization" -for i in {1..5}; do - mysql -u$MYSQL_ROOT_USER -p$MYSQL_ROOT_PASSWORD -h`echo $MYSQL_ADDR | cut -d: -f 1` -P`echo $MYSQL_ADDR | cut -d: -f 2` -e "show databases;" > /dev/null && echo "DB initialization completed" && break - sleep $i && echo "`echo $MYSQL_ADDR | cut -d: -f 1` connection failed" -done - -# Configure service based on docker environment variables -vfc/nfvo/lcm/docker/instance_config.sh +# Configure config file based on environment variables +python vfc/nfvo/lcm/lcm/pub/config/config.py +cat vfc/nfvo/lcm/lcm/pub/config/config.py # microservice-specific one-time initialization vfc/nfvo/lcm/docker/instance_init.sh diff --git a/docker/instance_config.sh b/docker/instance_config.sh deleted file mode 100755 index 19b814ac..00000000 --- a/docker/instance_config.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash - -MSB_PROTO=`echo $MSB_PROTO` -MSB_IP=`echo $MSB_ADDR | cut -d: -f 1` -MSB_PORT=`echo $MSB_ADDR | cut -d: -f 2` - -MR_IP=`echo $MR_ADDR | cut -d: -f 1` -MR_PORT=`echo $MR_ADDR | cut -d: -f 2` - -REG_TO_MSB_WHEN_START=$REG_TO_MSB_WHEN_START - -if [ $REG_TO_MSB_WHEN_START ]; then - sed -i "s|REG_TO_MSB_WHEN_START = .*|REG_TO_MSB_WHEN_START = '$REG_TO_MSB_WHEN_START'|" vfc/nfvo/lcm/lcm/pub/config/config.py -fi - -if [ $MSB_PROTO ]; then - sed -i "s|MSB_SERVICE_PROTOCOL = .*|MSB_SERVICE_PROTOCOL = '$MSB_PROTO'|" vfc/nfvo/lcm/lcm/pub/config/config.py -fi - -if [ $MSB_IP ]; then - sed -i "s|MSB_SERVICE_IP = .*|MSB_SERVICE_IP = '$MSB_IP'|" vfc/nfvo/lcm/lcm/pub/config/config.py -fi - -if [ $MSB_PORT ]; then - sed -i "s|MSB_SERVICE_PORT = .*|MSB_SERVICE_PORT = '$MSB_PORT'|" vfc/nfvo/lcm/lcm/pub/config/config.py -fi - -if [ $MR_IP ]; then - sed -i "s|MR_IP.*|MR_IP = '$MR_IP'|" vfc/nfvo/lcm/lcm/pub/config/config.py -fi - -if [ $MR_PORT ]; then - sed -i "s|MR_PORT.*|MR_PORT = '$MR_PORT'|" vfc/nfvo/lcm/lcm/pub/config/config.py -fi - -if [ $SERVICE_IP ]; then - sed -i "s|\"ip\": \".*\"|\"ip\": \"$SERVICE_IP\"|" vfc/nfvo/lcm/lcm/pub/config/config.py -fi - -if [ $SSL_ENABLED ]; then - sed -i "s|SSL_ENABLED = .*|SSL_ENABLED = '$SSL_ENABLED'|" vfc/nfvo/lcm/lcm/pub/config/config.py -fi - -# Configure MYSQL -MYSQL_IP=`echo $MYSQL_ADDR | cut -d: -f 1` -MYSQL_PORT=`echo $MYSQL_ADDR | cut -d: -f 2` -echo "MYSQL_ADDR=$MYSQL_ADDR" - -if [ $REDIS_ADDR ]; then - REDIS_IP=`echo $REDIS_ADDR | cut -d: -f 1` -else - REDIS_IP="$MYSQL_ADDR" -fi - -sed -i "s|DB_IP.*|DB_IP = '$MYSQL_IP'|" vfc/nfvo/lcm/lcm/pub/config/config.py -sed -i "s|DB_PORT.*|DB_PORT = $MYSQL_PORT|" vfc/nfvo/lcm/lcm/pub/config/config.py -sed -i "s|REDIS_HOST.*|REDIS_HOST = '$REDIS_IP'|" vfc/nfvo/lcm/lcm/pub/config/config.py - -cat vfc/nfvo/lcm/lcm/pub/config/config.py diff --git a/lcm/pub/config/config.py b/lcm/pub/config/config.py index 5b3fecbb..b8dfeea5 100644 --- a/lcm/pub/config/config.py +++ b/lcm/pub/config/config.py @@ -11,42 +11,37 @@ # 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. +import os # [MSB] -MSB_SERVICE_PROTOCOL = 'http' -MSB_SERVICE_IP = '10.0.14.1' -MSB_SERVICE_PORT = '443' -MSB_BASE_URL = "%s://%s:%s" % (MSB_SERVICE_PROTOCOL, MSB_SERVICE_IP, MSB_SERVICE_PORT) - -# [REDIS] -REDIS_HOST = '127.0.0.1' -REDIS_PORT = '6379' -REDIS_PASSWD = '' +MSB_BASE_URL = os.getenv("MSB_HOST", "http://127.0.0.1:80") +MSB_ENABLED = os.getenv("MSB_ENABLED", True) # [mysql] -DB_IP = "127.0.0.1" -DB_PORT = 3306 +DB_IP = os.getenv("MYSQL_ADDR", "127.0.0.1:3306").split(':')[0] +DB_PORT = os.getenv("MYSQL_ADDR", "127.0.0.1:3306").split(':')[1] DB_NAME = "vfcnfvolcm" DB_USER = "vfcnfvolcm" DB_PASSWD = "vfcnfvolcm" +# [REDIS] +REDIS_HOST = os.getenv("REDIS_HOST", DB_IP) +REDIS_PORT = '6379' +REDIS_PASSWD = '' + # [MDC] SERVICE_NAME = "nslcm" FORWARDED_FOR_FIELDS = ["HTTP_X_FORWARDED_FOR", "HTTP_X_FORWARDED_HOST", "HTTP_X_FORWARDED_SERVER"] # [register] -REG_TO_MSB_WHEN_START = True -SSL_ENABLED = "true" +REG_TO_MSB_WHEN_START = os.getenv("REG_TO_MSB_WHEN_START", "false") +SSL_ENABLED = os.getenv("SSL_ENABLED", "false") REG_TO_MSB_REG_URL = "/api/microservices/v1/services" -if SSL_ENABLED == "true": - enable_ssl = "true" -else: - enable_ssl = "false" REG_TO_MSB_REG_PARAM = { "serviceName": "nslcm", "version": "v1", - "enable_ssl": enable_ssl, + "enable_ssl": SSL_ENABLED, "url": "/api/nslcm/v1", "protocol": "REST", "visualRange": "1", @@ -58,7 +53,6 @@ REG_TO_MSB_REG_PARAM = { } MSB_SVC_URL = "/api/microservices/v1/services/nslcm/version/%s" - # [aai config] AAI_BASE_URL = "http://10.0.14.1:80/aai/v11" AAI_USER = "AAI" |