From 2462e08d2613753560d5565d625881beb640a563 Mon Sep 17 00:00:00 2001 From: yangyan Date: Mon, 25 Mar 2019 16:34:26 +0800 Subject: change the way of create database Change-Id: I4eb072f8e6dbfb964ce0faf8a668845a904078e6 Issue-ID: VFC-1312 Signed-off-by: yangyan --- docker/instance_config.sh | 4 ++ docker/instance_init.sh | 66 +++++++++++++++++++++- resources/bin/initDB.sh | 39 +++++++++++++ .../dbscripts/mysql/vfc-nfvo-catalog-createdb.sql | 31 ++++++++++ .../dbscripts/mysql/vfc-nfvo-catalog-createobj.sql | 49 ++++++++++++++++ 5 files changed, 188 insertions(+), 1 deletion(-) create mode 100644 resources/bin/initDB.sh create mode 100644 resources/dbscripts/mysql/vfc-nfvo-catalog-createdb.sql create mode 100644 resources/dbscripts/mysql/vfc-nfvo-catalog-createobj.sql diff --git a/docker/instance_config.sh b/docker/instance_config.sh index 04ec38e6..13a0a2c7 100755 --- a/docker/instance_config.sh +++ b/docker/instance_config.sh @@ -18,9 +18,13 @@ fi MYSQL_IP=`echo $MYSQL_ADDR | cut -d: -f 1` MYSQL_PORT=`echo $MYSQL_ADDR | cut -d: -f 2` echo "MYSQL_ADDR=$MYSQL_ADDR" +MYSQL_USER=`echo $MYSQL_AUTH | cut -d: -f 1` +MYSQL_ROOT_PASSWORD=`echo $MYSQL_AUTH | cut -d: -f 2` sed -i "s|DB_IP.*|DB_IP = '$MYSQL_IP'|" vfc/nfvo/catalog/catalog/pub/config/config.py sed -i "s|DB_PORT.*|DB_PORT = $MYSQL_PORT|" vfc/nfvo/catalog/catalog/pub/config/config.py sed -i "s|REDIS_HOST.*|REDIS_HOST = '$MYSQL_IP'|" vfc/nfvo/catalog/catalog/pub/config/config.py +sed -i "s|DB_USER.*|DB_USER = '$MYSQL_USER'|" vfc/nfvo/catalog/catalog/pub/config/config.py +sed -i "s|DB_PASSWD.*|DB_PASSWD = '$MYSQL_ROOT_PASSWORD'|" vfc/nfvo/catalog/catalog/pub/config/config.py cat vfc/nfvo/catalog/catalog/pub/config/config.py diff --git a/docker/instance_init.sh b/docker/instance_init.sh index cfc9b0d5..4ead7670 100755 --- a/docker/instance_init.sh +++ b/docker/instance_init.sh @@ -1,2 +1,66 @@ #!/bin/bash -echo "No service needs init." +###### +# by vfc-db test +##### +# echo "No service needs init." +#MYSQL_USER=$1 +###### +#by duan +pip install PyMySQL==0.9.3 +if [ ! -f /var/log/onap/vfc/catalog/runtime_catalog.log ]; then + mkdir -p /var/log/onap/vfc/catalog + touch /var/log/onap/vfc/catalog/runtime_catalog.log +else + echo >/var/log/onap/vfc/catalog/runtime_catalog.log +fi + +if [ ! -f /service/vfc/nfvo/catalog/resources/bin/logs/runtime_catalog.log ]; then + mkdir -p /service/vfc/nfvo/catalog/resources/bin/logs + touch /service/vfc/nfvo/catalog/resources/bin/logs/runtime_catalog.log +else + echo >/service/vfc/nfvo/catalog/resources/bin/logs/runtime_catalog.log +fi + +MYSQL_IP=`echo $MYSQL_ADDR | cut -d: -f 1` +MYSQL_PORT=`echo $MYSQL_ADDR | cut -d: -f 2` +MYSQL_USER=`echo $MYSQL_AUTH | cut -d: -f 1` +MYSQL_ROOT_PASSWORD=`echo $MYSQL_AUTH | cut -d: -f 2` + +function create_database { + cd /service/vfc/nfvo/catalog/resources/bin + bash initDB.sh $MYSQL_USER $MYSQL_ROOT_PASSWORD $MYSQL_PORT $MYSQL_IP + #DIRNAME=`dirname $0` + #HOME=`cd $DIRNAME/; pwd` + #man_path=$HOME/../ + man_path=/service/vfc/nfvo/catalog + #tab=`mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} -P${MYSQL_PORT} -h${MYSQL_IP} -e "use vfcnfvolcm; select count(*) from vfcnfvolcm;"` + tab=`mysql -u${MYSQL_USER} -p${MYSQL_ROOT_PASSWORD} -P${MYSQL_PORT} -h${MYSQL_IP} -e "SELECT count(TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA='nfvocatalog';"` + tab1=`echo $tab |awk '{print $2}'` + echo "==========" + echo $tab1 + echo "==========" + if [ $tab1 -eq 0 ] ; then + echo "============" + echo $tab1 + echo "============" + echo "TABLE NOT EXISTS, START MIGRATE" + python $man_path/manage.py makemigrations && python $man_path/manage.py migrate & + wait + tab2=`mysql -u${MYSQL_USER} -p${MYSQL_ROOT_PASSWORD} -P${MYSQL_PORT} -h${MYSQL_IP} -e "SELECT count(TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA='nfvocatalog';"` + tab3=`echo $tab2|awk '{print $2}'` + if [ $tab3 -gt 0 ] ; then + echo "TABLE CREATE SUCCESSFUL" + fi +else + echo "table already existed" + exit 1 +fi + } + +if [ ! -f /service/vfc/nfvo/catalog/docker/db.txt ]; then + echo 1 > /service/vfc/nfvo/catalog/docker/db.txt + echo `pwd` >> /service/vfc/nfvo/catalog/docker/db.txt + create_database +else + echo "database already existed" +fi diff --git a/resources/bin/initDB.sh b/resources/bin/initDB.sh new file mode 100644 index 00000000..b15d1cfd --- /dev/null +++ b/resources/bin/initDB.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# +# Copyright 2018 ZTE Corporation. +# +# 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. +# + +###### +#test for vfc-db +###### + +DIRNAME=`dirname $0` +HOME=`cd $DIRNAME/; pwd` +MYSQL_USER=$1 +MYSQL_PASSWORD=$2 +MYSQL_PORT=$3 +MYSQL_IP=$4 +echo "start create nfvocatalog db" +sql_path=$HOME/../ +mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -P$MYSQL_PORT -h$MYSQL_IP <$sql_path/dbscripts/mysql/vfc-nfvo-catalog-createdb.sql +sql_result=$? +if [ $sql_result -ne 0 ] ; then + echo "failed to create nfvocatalog database" + exit 1 +elif [ $sql_result -eq 0 ]; then + echo "create nfvocatalog database successfully" + exit 0 +fi + diff --git a/resources/dbscripts/mysql/vfc-nfvo-catalog-createdb.sql b/resources/dbscripts/mysql/vfc-nfvo-catalog-createdb.sql new file mode 100644 index 00000000..a1fd3e2c --- /dev/null +++ b/resources/dbscripts/mysql/vfc-nfvo-catalog-createdb.sql @@ -0,0 +1,31 @@ +-- +-- Copyright 2018 ZTE Corporation. +-- +-- 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. +-- + +/******************drop old database and user***************************/ +use mysql; +drop database IF EXISTS nfvocatalog; +delete from user where User='nfvocatalog'; +FLUSH PRIVILEGES; + +/******************create new database and user***************************/ +create database nfvocatalog CHARACTER SET utf8; + +GRANT ALL PRIVILEGES ON nfvocatalog.* TO 'nfvocatalog'@'%' IDENTIFIED BY 'nfvocatalog' WITH GRANT OPTION; +GRANT ALL PRIVILEGES ON mysql.* TO 'nfvocatalog'@'%' IDENTIFIED BY 'nfvocatalog' WITH GRANT OPTION; + +GRANT ALL PRIVILEGES ON nfvocatalog.* TO 'nfvocatalog'@'localhost' IDENTIFIED BY 'nfvocatalog' WITH GRANT OPTION; +GRANT ALL PRIVILEGES ON mysql.* TO 'nfvocatalog'@'localhost' IDENTIFIED BY 'nfvocatalog' WITH GRANT OPTION; +FLUSH PRIVILEGES; diff --git a/resources/dbscripts/mysql/vfc-nfvo-catalog-createobj.sql b/resources/dbscripts/mysql/vfc-nfvo-catalog-createobj.sql new file mode 100644 index 00000000..8fa81260 --- /dev/null +++ b/resources/dbscripts/mysql/vfc-nfvo-catalog-createobj.sql @@ -0,0 +1,49 @@ +-- +-- Copyright 2018 ZTE Corporation. +-- +-- 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. +-- + +use nfvocatalog; + +DROP TABLE IF EXISTS CATALOG_JOB; +DROP TABLE IF EXISTS CATALOG_JOB_STATUS; +DROP TABLE IF EXISTS CATALOG_NSPACKAGE; +DROP TABLE IF EXISTS CATALOG_SOFTWAREIMAGEMODEL; +DROP TABLE IF EXISTS CATALOG_VNFPACKAGE; +DROP TABLE IF EXISTS CATALOG_PNFPACKAGE; + +-- +-- Create model JobModel +-- +CREATE TABLE `CATALOG_JOB` (`JOBID` varchar(255) NOT NULL PRIMARY KEY, `JOBTYPE` varchar(255) NOT NULL, `JOBACTION` varchar(255) NOT NULL, `RESID` varchar(255) NOT NULL, `STATUS` integer NULL, `STARTTIME` varchar(255) NULL, `ENDTIME` varchar(255) NULL, `PROGRESS` integer NULL, `USER` varchar(255) NULL, `PARENTJOBID` varchar(255) NULL, `RESNAME` varchar(255) NULL); +-- +-- Create model JobStatusModel +-- +CREATE TABLE `CATALOG_JOB_STATUS` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `INDEXID` integer NOT NULL, `JOBID` varchar(255) NOT NULL, `STATUS` varchar(255) NOT NULL, `PROGRESS` integer NULL, `DESCP` longtext NOT NULL, `ERRCODE` varchar(255) NULL, `ADDTIME` varchar(255) NULL); +-- +-- Create model NSPackageModel +-- +CREATE TABLE `CATALOG_NSPACKAGE` (`NSPACKAGEID` varchar(50) NOT NULL PRIMARY KEY, `NSPACKAGEURI` varchar(300) NULL, `CHECKSUM` varchar(50) NULL, `SDCCSARID` varchar(50) NULL, `ONBOARDINGSTATE` varchar(20) NULL, `OPERATIONALSTATE` varchar(20) NULL, `USAGESTATE` varchar(20) NULL, `DELETIONPENDING` varchar(20) NULL, `NSDID` varchar(50) NULL, `NSDNAME` varchar(50) NULL, `NSDDESIGNER` varchar(50) NULL, `NSDDESCRIPTION` varchar(100) NULL, `NSDVERSION` varchar(20) NULL, `USERDEFINEDDATA` longtext NULL, `LOCALFILEPATH` varchar(300) NULL, `NSDMODEL` longtext NULL, `INVARIANTID` varchar(50) NULL); +-- +-- Create model SoftwareImageModel +-- +CREATE TABLE `CATALOG_SOFTWAREIMAGEMODEL` (`IMAGEID` varchar(50) NOT NULL PRIMARY KEY, `CONTAINERFORMAT` varchar(20) NOT NULL, `DISKFORMAT` varchar(20) NOT NULL, `MINDISK` varchar(20) NOT NULL, `MINRAM` varchar(20) NOT NULL, `USAERMETADATA` varchar(1024) NOT NULL, `VNFPACKAGEID` varchar(50) NOT NULL, `FILEPATH` varchar(300) NOT NULL, `STATUS` varchar(10) NOT NULL, `VIMID` varchar(50) NOT NULL); +-- +-- Create model VnfPackageModel +-- +CREATE TABLE `CATALOG_VNFPACKAGE` (`VNFPACKAGEID` varchar(50) NOT NULL PRIMARY KEY, `VNFPACKAGEURI` varchar(300) NULL, `SDCCSARURI` varchar(300) NULL, `CHECKSUM` varchar(50) NULL, `ONBOARDINGSTATE` varchar(20) NULL, `OPERATIONALSTATE` varchar(20) NULL, `USAGESTATE` varchar(20) NULL, `DELETIONPENDING` varchar(20) NULL, `VNFDID` varchar(50) NULL, `VENDOR` varchar(50) NULL, `VNFDPRODUCTNAME` varchar(50) NULL, `VNFDVERSION` varchar(20) NULL, `VNFSOFTWAREVERSION` varchar(20) NULL, `USERDEFINEDDATA` longtext NULL, `LOCALFILEPATH` varchar(300) NULL, `VNFDMODEL` longtext NULL); +-- +-- Create model PnfPackageModel +-- +CREATE TABLE `CATALOG_PNFPACKAGE` (`PNFPACKAGEID` varchar(50) NOT NULL PRIMARY KEY, `PNFPACKAGEURI` varchar(300) NULL, `SDCCSARURI` varchar(300) NULL, `CHECKSUM` varchar(50) NULL, `ONBOARDINGSTATE` varchar(20) NULL, `USAGESTATE` varchar(20) NULL, `DELETIONPENDING` varchar(20) NULL, `PNFDID` varchar(50) NULL, `VENDOR` varchar(50) NULL, `PNFDPRODUCTNAME` varchar(50) NULL, `PNFDVERSION` varchar(20) NULL, `PNFSOFTWAREVERSION` varchar(20) NULL, `USERDEFINEDDATA` longtext NULL, `LOCALFILEPATH` varchar(300) NULL, `PNFDMODEL` longtext NULL, `PNFDNAME` varchar(100) NULL); -- cgit 1.2.3-korg