des deployment configuration 87/113087/5
authorKai <lukai@chinamobile.com>
Thu, 24 Sep 2020 06:56:15 +0000 (14:56 +0800)
committerLUKAI <lukai@chinamobile.com>
Sun, 27 Sep 2020 01:35:05 +0000 (01:35 +0000)
Issue-ID: DCAEGEN2-2258
Signed-off-by: Kai Lu <lukai@chinamobile.com>
Change-Id: If229c69ff2198eeb793441d9bc96fed4d3b4b54c

components/datalake-handler/des/Dockerfile
components/datalake-handler/des/src/assembly/init_db/db_scripts/init_db.sql [moved from components/datalake-handler/des/src/assembly/init_db/scripts/init_db.sql with 100% similarity]
components/datalake-handler/des/src/assembly/init_db/db_scripts/init_db_data.sql [moved from components/datalake-handler/des/src/assembly/init_db/scripts/init_db_data.sql with 100% similarity]
components/datalake-handler/des/src/assembly/init_db/scripts/db_init/10_check-db-exist [new file with mode: 0644]
components/datalake-handler/des/src/assembly/init_db/scripts/db_init/11_create-database [new file with mode: 0644]
components/datalake-handler/des/src/assembly/init_db/scripts/db_init/15_db-adduser [new file with mode: 0644]
components/datalake-handler/des/src/assembly/init_db/scripts/db_init/20_db-initdb [new file with mode: 0644]
components/datalake-handler/des/src/assembly/init_db/scripts/run.sh [new file with mode: 0644]

index 18c4db8..4fcc7ee 100644 (file)
@@ -33,12 +33,12 @@ COPY target/${JAR_FILE} /home/datalake/
 COPY src/assembly/run.sh /home/datalake/
 
 WORKDIR /home/datalake/db_init
-ADD src/assembly/init_db/scripts .
+ADD src/assembly/init_db/scripts/db_init .
 USER root
 RUN chmod 0755 ./*
 WORKDIR /home/datalake
-COPY src/assembly/init_db/scripts/init_db.sql .
-COPY src/assembly/init_db/scripts/init_db_data.sql .
+COPY src/assembly/init_db/db_scripts/init_db.sql .
+COPY src/assembly/init_db/db_scripts/init_db_data.sql .
 
 RUN apt update && \
     apt install -y mariadb-client && \
@@ -48,3 +48,4 @@ USER datalake
 
 CMD ["sh", "run.sh"]
 
+
diff --git a/components/datalake-handler/des/src/assembly/init_db/scripts/db_init/10_check-db-exist b/components/datalake-handler/des/src/assembly/init_db/scripts/db_init/10_check-db-exist
new file mode 100644 (file)
index 0000000..4b117fd
--- /dev/null
@@ -0,0 +1,30 @@
+#!/bin/bash
+#
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright © 2020 China Mobile. All rights reserved.
+# ===================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#        http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+# ============LICENSE_END============================================
+#
+result=`mysql -qfsB -uroot -p"$MYSQL_ROOT_PASSWORD" -h "$MYSQL_HOST" -P "$MYSQL_PORT" -e "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='datalake'" 2>&1`
+
+if [[ ! -z $result ]];
+then
+  echo "DATABASE ALREADY EXISTS"
+  touch /tmp/db_exist
+  exit 1
+else
+  echo "DATABASE DOES NOT EXIST"
+  exit 0
+fi
\ No newline at end of file
diff --git a/components/datalake-handler/des/src/assembly/init_db/scripts/db_init/11_create-database b/components/datalake-handler/des/src/assembly/init_db/scripts/db_init/11_create-database
new file mode 100644 (file)
index 0000000..773f9c4
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright © 2020 China Mobile. All rights reserved.
+# ===================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#        http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+# ============LICENSE_END============================================
+#
+
+if [ -f "/tmp/db_exist" ]; then
+    exit 0
+fi
+
+cat /home/datalake/init_db.sql | mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -h "$MYSQL_HOST" -P "$MYSQL_PORT" || exit 1
diff --git a/components/datalake-handler/des/src/assembly/init_db/scripts/db_init/15_db-adduser b/components/datalake-handler/des/src/assembly/init_db/scripts/db_init/15_db-adduser
new file mode 100644 (file)
index 0000000..05b5c19
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright © 2020 China Mobile. All rights reserved.
+# ===================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#        http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+# ============LICENSE_END============================================
+#
+
+if [ -f "/tmp/db_exist" ]; then
+    exit 0
+fi
+
+echo "Creating datalake user" 1>/tmp/mariadb-datalake-user.log 2>&1
+
+mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -p"$MYSQL_ROOT_PASSWORD" -h "$MYSQL_HOST" -P "$MYSQL_PORT" << 'EOF' || exit 1
+CREATE USER IF NOT EXISTS 'dl';
+GRANT USAGE ON *.* TO 'dl'@'%' IDENTIFIED BY 'dl1234';
+GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE, SHOW VIEW ON `datalake`.* TO 'dl'@'%';
+FLUSH PRIVILEGES;
+EOF
+
+echo "Created so user . . ." 1>>/tmp/mariadb-datalake-user.log 2>&1
diff --git a/components/datalake-handler/des/src/assembly/init_db/scripts/db_init/20_db-initdb b/components/datalake-handler/des/src/assembly/init_db/scripts/db_init/20_db-initdb
new file mode 100644 (file)
index 0000000..abc9855
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright © 2020 China Mobile. All rights reserved.
+# ===================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#        http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+# ============LICENSE_END============================================
+#
+
+if [ -f "/tmp/db_exist" ]; then
+    exit 0
+fi
+
+cat /home/datalake/init_db_data.sql | mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -h "$MYSQL_HOST" -P "$MYSQL_PORT" || exit 1
diff --git a/components/datalake-handler/des/src/assembly/init_db/scripts/run.sh b/components/datalake-handler/des/src/assembly/init_db/scripts/run.sh
new file mode 100644 (file)
index 0000000..20b4fc6
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/bash
+# ============LICENSE_START==========================================
+# ===================================================================
+#  Copyright (c) 2020 China Mobile.All rights reserved.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+#============LICENSE_END============================================
+
+
+echo "start init db ..."
+
+/bin/run-parts /app/db_init
+
+echo "finish init db"
+
+
+curl -X PUT -H "contain-type:application/json" http://consul:8500/v1/kv/k8s-datalake -d "{\"mysql_host\": \"$MYSQL_HOST\", \"mysql_password\": \"$MYSQL_ROOT_PASSWORD\", \"mysql_port\": \"$MYSQL_PORT\", \"presto_host\": \"$PRESTO_HOST\"}"
+