X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=scripts%2FRO-start.sh;h=47547cdd6f7295d4b1420c784a44ec2c21de5085;hb=6e9f180cc34633b43355b7b5bd08718b7663cb48;hp=afc746a61257af8d3429c44f8ac0a133a121b94e;hpb=af0017fe88d4675473428f51041d7b124abe299a;p=osm%2FRO.git diff --git a/scripts/RO-start.sh b/scripts/RO-start.sh index afc746a6..47547cdd 100755 --- a/scripts/RO-start.sh +++ b/scripts/RO-start.sh @@ -14,21 +14,25 @@ function is_db_created() { db_user=$3 db_pswd=$4 db_name=$5 + db_version=$6 # minimun database version - RESULT=`mysqlshow -h"$db_host" -P"$db_port" -u"$db_user" -p"$db_pswd" | grep -v Wildcard | grep -o $db_name` - if [ "$RESULT" == "$db_name" ]; then - - RESULT=`mysqlshow -h"$db_host" -P"$db_port" -u"$db_user" -p"$db_pswd" "$db_name" | grep -v Wildcard | grep schema_version` - #TODO validate version - if [ -n "$RESULT" ]; then - echo " DB $db_name exists and inited" + if mysqlshow -h"$db_host" -P"$db_port" -u"$db_user" -p"$db_pswd" | grep -v Wildcard | grep -q -e "$db_name" ; then + if echo "SELECT comments FROM schema_version WHERE version_int=0;" | + mysql -h"$db_host" -P"$db_port" -u"$db_user" -p"$db_pswd" "$db_name" | + grep -q -e "init" ; then + echo " DB $db_name exists BUT failed in previous init" >&2 + return 1 + elif echo "SELECT * FROM schema_version WHERE version_int=$db_version;" | + mysql -h"$db_host" -P"$db_port" -u"$db_user" -p"$db_pswd" "$db_name" | + grep -q -e "$db_version" ; then + echo " DB $db_name exists and inited" >&2 return 0 else - echo " DB $db_name exists BUT not inited" + echo " DB $db_name exists BUT not inited" >&2 return 1 fi fi - echo " DB $db_name does not exist" + echo " DB $db_name does not exist" >&2 return 1 } @@ -66,7 +70,7 @@ function wait_db(){ #wait 120 sec if [ $attempt -ge $max_attempts ]; then echo - echo "Can not connect to database ${db_host}:${db_port} during $max_attempts sec" + echo "Cannot connect to database ${db_host}:${db_port} during $max_attempts sec" >&2 return 1 fi attempt=$[$attempt+1] @@ -78,7 +82,8 @@ function wait_db(){ echo "1/4 Apply config" -configure || exit 1 +# this is not needed anymore because envioron overwrites config file +# configure || exit 1 echo "2/4 Wait for db up" @@ -89,7 +94,7 @@ wait_db "$RO_DB_HOST" "$RO_DB_PORT" || exit 1 echo "3/4 Init database" RO_PATH=`python -c 'import osm_ro; print(osm_ro.__path__[0])'` echo "RO_PATH: $RO_PATH" -if ! is_db_created "$RO_DB_HOST" "$RO_DB_PORT" "$RO_DB_USER" "$RO_DB_PASSWORD" "$RO_DB_NAME" +if ! is_db_created "$RO_DB_HOST" "$RO_DB_PORT" "$RO_DB_USER" "$RO_DB_PASSWORD" "$RO_DB_NAME" "27" then if [ -n "$RO_DB_ROOT_PASSWORD" ] ; then mysqladmin -h"$RO_DB_HOST" -uroot -p"$RO_DB_ROOT_PASSWORD" create "$RO_DB_NAME" @@ -101,14 +106,15 @@ then ${RO_PATH}/database_utils/init_mano_db.sh -u "$RO_DB_USER" -p "$RO_DB_PASSWORD" -h "$RO_DB_HOST" \ -P "${RO_DB_PORT}" -d "${RO_DB_NAME}" || exit 1 else - echo " migrage database version" + echo " migrate database version" ${RO_PATH}/database_utils/migrate_mano_db.sh -u "$RO_DB_USER" -p "$RO_DB_PASSWORD" -h "$RO_DB_HOST" \ - -P "$RO_DB_PORT" -d "$RO_DB_NAME" + -P "$RO_DB_PORT" -d "$RO_DB_NAME" -b /var/log/osm fi OVIM_PATH=`python -c 'import lib_osm_openvim; print(lib_osm_openvim.__path__[0])'` echo "OVIM_PATH: $OVIM_PATH" -if ! is_db_created "$RO_DB_OVIM_HOST" "$RO_DB_OVIM_PORT" "$RO_DB_OVIM_USER" "$RO_DB_OVIM_PASSWORD" "$RO_DB_OVIM_NAME" +if ! is_db_created "$RO_DB_OVIM_HOST" "$RO_DB_OVIM_PORT" "$RO_DB_OVIM_USER" "$RO_DB_OVIM_PASSWORD" "$RO_DB_OVIM_NAME" \ + "22" then if [ -n "$RO_DB_OVIM_ROOT_PASSWORD" ] ; then mysqladmin -h"$RO_DB_OVIM_HOST" -uroot -p"$RO_DB_OVIM_ROOT_PASSWORD" create "$RO_DB_OVIM_NAME" @@ -122,11 +128,17 @@ then ${OVIM_PATH}/database_utils/init_vim_db.sh -u "$RO_DB_OVIM_USER" -p "$RO_DB_OVIM_PASSWORD" -h "$RO_DB_OVIM_HOST" \ -P "${RO_DB_OVIM_PORT}" -d "${RO_DB_OVIM_NAME}" || exit 1 else - echo " migrage database version" + echo " migrate database version" ${OVIM_PATH}/database_utils/migrate_vim_db.sh -u "$RO_DB_OVIM_USER" -p "$RO_DB_OVIM_PASSWORD" -h "$RO_DB_OVIM_HOST"\ - -P "$RO_DB_OVIM_PORT" -d "$RO_DB_OVIM_NAME" + -P "$RO_DB_OVIM_PORT" -d "$RO_DB_OVIM_NAME" -b /var/log/osm fi echo "4/4 Try to start" -/usr/bin/openmanod -c /etc/osm/openmanod.cfg --log-file=/var/log/osm/openmano.log --create-tenant=osm +# look for openmanod.cfg +RO_CONFIG_FILE="/etc/osm/openmanod.cfg" +[ -f "$RO_CONFIG_FILE" ] || RO_CONFIG_FILE=$(python -c 'import osm_ro; print(osm_ro.__path__[0])')/openmanod.cfg +[ -f "$RO_CONFIG_FILE" ] || ! echo "configuration file 'openmanod.cfg' not found" || exit 1 + +openmanod -c "$RO_CONFIG_FILE" --create-tenant=osm # --log-file=/var/log/osm/openmano.log +