add docker build
Signed-off-by: Gennadiy Dubina <gennadiy.dubina@dataart.com>
diff --git a/docker/scripts/configure.sh b/docker/scripts/configure.sh
new file mode 100755
index 0000000..da7cbba
--- /dev/null
+++ b/docker/scripts/configure.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+#Database parameters
+#db_host: localhost
+#db_user: mano
+#db_passwd: manopw
+#db_name: mano_db
+
+sed -i "s/^db_host:.*/db_host: $DB_HOST/" /opt/openmano/openmanod.cfg
+sed -i "s/^db_user:.*/db_user: $DB_USER/" /opt/openmano/openmanod.cfg
+sed -i "s/^db_passwd:.*/db_passwd: $DB_PSWD/" /opt/openmano/openmanod.cfg
+sed -i "s/^db_name:.*/db_name: $DB_NAME/" /opt/openmano/openmanod.cfg
\ No newline at end of file
diff --git a/docker/scripts/start.sh b/docker/scripts/start.sh
new file mode 100755
index 0000000..3d70c3f
--- /dev/null
+++ b/docker/scripts/start.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+function is_db_created() {
+ db_host=$1
+ db_port=$2
+ db_user=$3
+ db_pswd=$4
+ db_name=$5
+
+ 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"
+ return 0
+ else
+ echo " DB $db_name exists BUT not inited"
+ return 1
+ fi
+ fi
+ echo " DB $db_name does not exist"
+ return 1
+}
+
+echo "1/4 Apply config"
+/opt/openmano-docker/configure.sh
+[ $? -ne 0 ] && exit 1
+echo "2/4 Wait for db"
+
+/opt/openmano-docker/wait_db.sh
+[ $? -ne 0 ] && exit 1
+
+echo "3/4 Init database" && \
+is_db_created "$DB_HOST" "$DB_PORT" "$DB_USER" "$DB_PSWD" "$DB_NAME"
+if [ $? -ne 0 ]; then
+ /opt/openmano/database_utils/init_mano_db.sh -u $DB_USER -p $DB_PSWD -h $DB_HOST -P $DB_PORT -d $DB_NAME
+ [ $? -ne 0 ] && exit 1
+else
+ echo " migrage database version"
+ /opt/openmano/database_utils/migrate_mano_db.sh -u $DB_USER -p $DB_PSWD -h $DB_HOST -P $DB_PORT -d $DB_NAME
+fi
+
+echo "4/4 Try to start"
+/opt/openmano/openmanod.py -c /opt/openmano/openmanod.cfg --log-file=/opt/openmano/logs/openmano.log
\ No newline at end of file
diff --git a/docker/scripts/wait_db.sh b/docker/scripts/wait_db.sh
new file mode 100755
index 0000000..f083d76
--- /dev/null
+++ b/docker/scripts/wait_db.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+attempt=0
+max_attempts=120
+while ! mysqladmin ping -h"$DB_HOST" -P"$DB_PORT" --silent; do
+ #wait 120 sec
+ if [ $attempt -ge $max_attempts ]; then
+ echo "Can not connect to database during $max_attempts sec"
+ exit 1
+ fi
+ attempt=$[$attempt+1]
+ echo "Wait for MySQL Server ${DB_HOST}:${DB_PORT} [attempt $attempt/$max_attempts]"
+ sleep 1
+done
\ No newline at end of file