# See the License for the specific language governing permissions and
# limitations under the License.
+import os
+env_dict = os.environ
+
# [MSB]
-MSB_SERVICE_PROTOCOL = 'http'
-MSB_SERVICE_IP = '127.0.0.1'
-MSB_SERVICE_PORT = '80'
+MSB_SERVICE_PROTOCOL = env_dict.get("MSB_PROTO", "http")
+MSB_SERVICE_IP = env_dict.get("MSB_ADDR", "127.0.0.1:80").split(':')[0]
+MSB_SERVICE_PORT = env_dict.get("MSB_ADDR", "127.0.0.1:80").split(':')[1]
MSB_BASE_URL = "%s://%s:%s" % (MSB_SERVICE_PROTOCOL, MSB_SERVICE_IP, MSB_SERVICE_PORT)
# [mysql]
-DB_IP = "127.0.0.1"
-DB_PORT = 3306
+DB_IP = env_dict.get("MYSQL_ADDR", "127.0.0.1:3306").split(':')[0]
+DB_PORT = env_dict.get("MYSQL_ADDR", "127.0.0.1:3306").split(':')[1]
DB_NAME = "etsicatalog"
DB_USER = "etsicatalog"
DB_PASSWD = "etsicatalog"
# [register]
REG_TO_MSB_WHEN_START = True
-SSL_ENABLED = "true"
REG_TO_MSB_REG_URL = "/api/microservices/v1/services"
+SSL_ENABLED = env_dict.get("SSL_ENABLED", "true")
if SSL_ENABLED == "true":
enable_ssl = "true"
else:
enable_ssl = "false"
+svc_ip = env_dict.get("SERVICE_IP", "127.0.0.1")
REG_TO_MSB_REG_PARAM = [{
"serviceName": "catalog",
"version": "v1",
"protocol": "REST",
"visualRange": "1",
"nodes": [{
- "ip": "127.0.0.1",
+ "ip": svc_ip,
"port": "8806",
"ttl": 0
}]
"protocol": "REST",
"visualRange": "1",
"nodes": [{
- "ip": "127.0.0.1",
+ "ip": svc_ip,
"port": "8806",
"ttl": 0
}]
"protocol": "REST",
"visualRange": "1",
"nodes": [{
- "ip": "127.0.0.1",
+ "ip": svc_ip,
"port": "8806",
"ttl": 0
}]
"protocol": "REST",
"visualRange": "1",
"nodes": [{
- "ip": "127.0.0.1",
+ "ip": svc_ip,
"port": "8806",
"ttl": 0
}]
fi
echo "MSB_ADDR=$MSB_ADDR"
-if [ -z "$MYSQL_ADDR" ]; then
- echo "Missing required variable MYSQL_ADDR: <ip>:<port>"
- exit 1
+# Configure config file based on environment variables
+
+python modeling/etsicatalog/catalog/pub/config/config.py
+cat modeling/etsicatalog/catalog/pub/config/config.py
+
+# microservice-specific one-time initialization
+
+MYSQL_IP=`echo $MYSQL_ADDR | cut -d: -f 1`
+MYSQL_PORT=`echo $MYSQL_ADDR | cut -d: -f 2`
+
+if [ $MYSQL_ROOT_USER ] && [ $MYSQL_ROOT_PASSWORD ]; then
+ MYSQL_ROOT_USER=$MYSQL_ROOT_USER
+ MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD
+else
+ MYSQL_ROOT_USER="root"
+ MYSQL_ROOT_PASSWORD="root"
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_ADDR > /dev/null && break
- sleep $i
-done
+function create_database {
-# Wait for DB initialization
-echo "Wait for DB initialization"
-for i in {1..5}; do
- curl -sS -m 1 $MYSQL_ADDR > /dev/null && break
- sleep $i
-done
+ cd /service/modeling/etsicatalog/resources/bin
+ bash initDB.sh $MYSQL_ROOT_USER $MYSQL_ROOT_PASSWORD $MYSQL_PORT $MYSQL_IP
-# Configure service based on docker environment variables
-modeling/etsicatalog/docker/instance_config.sh
+ }
-# microservice-specific one-time initialization
-modeling/etsicatalog/docker/instance_init.sh
+function migrate_database {
+ cd /service/modeling/etsicatalog
+ python manage.py migrate
+}
+
+create_database
+migrate_database
-date > init.log
+date > /service/init.log
# Start the microservice
-modeling/etsicatalog/docker/instance_run.sh
+/service/modeling/etsicatalog/docker/instance_run.sh
+++ /dev/null
-#!/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`
-# modeling/etsicatalog
-
-if [ $MSB_PROTO ]; then
- sed -i "s|MSB_SERVICE_PROTOCOL = .*|MSB_SERVICE_PROTOCOL = '$MSB_PROTO'|" modeling/etsicatalog/catalog/pub/config/config.py
-fi
-
-if [ $MSB_IP ]; then
- sed -i "s|MSB_SERVICE_IP = .*|MSB_SERVICE_IP = '$MSB_IP'|" modeling/etsicatalog/catalog/pub/config/config.py
-fi
-
-if [ $MSB_PORT ]; then
- sed -i "s|MSB_SERVICE_PORT = .*|MSB_SERVICE_PORT = '$MSB_PORT'|" modeling/etsicatalog/catalog/pub/config/config.py
-fi
-
-if [ $SERVICE_IP ]; then
- sed -i "s|\"ip\": \".*\"|\"ip\": \"$SERVICE_IP\"|" modeling/etsicatalog/catalog/pub/config/config.py
-fi
-
-
-if [ $SSL_ENABLED ]; then
- sed -i "s|SSL_ENABLED = .*|SSL_ENABLED = '$SSL_ENABLED'|" modeling/etsicatalog/catalog/pub/config/config.py
-fi
-
-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'|" modeling/etsicatalog/catalog/pub/config/config.py
-sed -i "s|DB_PORT.*|DB_PORT = $MYSQL_PORT|" modeling/etsicatalog/catalog/pub/config/config.py
-# sed -i "s|REDIS_HOST.*|REDIS_HOST = '$REDIS_IP'|"modeling/etsicatalog/catalog/pub/config/config.py
-
-cat modeling/etsicatalog/catalog/pub/config/config.py
+++ /dev/null
-#!/bin/bash
-
-MYSQL_IP=`echo $MYSQL_ADDR | cut -d: -f 1`
-MYSQL_PORT=`echo $MYSQL_ADDR | cut -d: -f 2`
-
-if [ $MYSQL_AUTH ]; then
- MYSQL_ROOT_USER=`echo $MYSQL_AUTH | cut -d: -f 1`
- MYSQL_ROOT_PASSWORD=`echo $MYSQL_AUTH | cut -d: -f 2`
-else
- MYSQL_ROOT_USER="root"
- MYSQL_ROOT_PASSWORD="root"
-fi
-
-function create_database {
-
- cd /service/modeling/etsicatalog/resources/bin
- bash initDB.sh $MYSQL_ROOT_USER $MYSQL_ROOT_PASSWORD $MYSQL_PORT $MYSQL_IP
-
- }
-
-function migrate_database {
- cd /service/modeling/etsicatalog
- python manage.py migrate
-}
-
-create_database
-migrate_database