From 8a1e79f518eadd772913d01c66a98414867fc8a6 Mon Sep 17 00:00:00 2001 From: Remi Bergsma Date: Tue, 11 Aug 2015 13:37:24 +0200 Subject: [PATCH 1/3] make sane defaults for MySQL settings In dev environments, there is no /etc/cloudstack/management/db.properties file That forces you to specify all parameters on the command line. This commit sets some defaults, like port 3306, user root and localhost. When available, it will still get settings from the config file and it will also allow you to override it on the command line. So it is fully backwards compatible. --- .../storage/secondary/cloud-install-sys-tmplt | 62 ++++++++++--------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/scripts/storage/secondary/cloud-install-sys-tmplt b/scripts/storage/secondary/cloud-install-sys-tmplt index 68409ddfc9d..2c4ea36c809 100755 --- a/scripts/storage/secondary/cloud-install-sys-tmplt +++ b/scripts/storage/secondary/cloud-install-sys-tmplt @@ -37,10 +37,10 @@ templateId= hyper= msKey=password DISKSPACE=2120000 #free disk space required in kilobytes -dbHost= -dbUser= +dbHost="localhost" +dbUser="root" dbPassword= -dbPort= +dbPort=3306 jasypt='/usr/share/cloudstack-common/lib/jasypt-1.9.2.jar' while getopts 'm:h:f:u:Ft:e:s:o:r:d:p:'# OPTION do @@ -106,18 +106,19 @@ then failed 3 fi -if [ "$pflag" != 1 ]; then - dbPort=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.port' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') -fi - -if [ "$oflag" != 1 ]; then - dbHost=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.host' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') -fi -if [ "$rflag" != 1 ]; then - dbUser=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.username' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') -fi - if [ -f /etc/cloudstack/management/db.properties ]; then + if [ "$pflag" != 1 ]; then + dbPort=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.port' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') + fi + + if [ "$oflag" != 1 ]; then + dbHost=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.host' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') + fi + + if [ "$rflag" != 1 ]; then + dbUser=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.username' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') + fi + encType=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.encryption.type' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') if [ "$encType" == "file" ] then @@ -130,23 +131,24 @@ if [ -f /etc/cloudstack/management/db.properties ]; then failed 9 fi fi -fi -if [[ "$encType" == "file" || "$encType" == "web" ]] -then - encPassword=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.password' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//'i | sed 's/^ENC(\(.*\))/\1/') - if [ ! $encPassword == "" ] - then - dbPassword=(`java -classpath $jasypt org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI decrypt.sh input=$encPassword password=$msKey verbose=false`) - if [ ! $dbPassword ] - then - echo "Failed to decrypt DB password from db.properties" - failed 9 - fi - fi -else - if [ "$dflag" != 1 ]; then - dbPassword=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.password' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//'i ) + if [[ "$encType" == "file" || "$encType" == "web" ]] + then + encPassword=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.password' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//'i | sed 's/^ENC(\(.*\))/\1/') + if [ ! $encPassword == "" ] + then + dbPassword=(`java -classpath $jasypt org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI decrypt.sh input=$encPassword password=$msKey verbose=false`) + if [ ! $dbPassword ] + then + echo "Failed to decrypt DB password from db.properties" + failed 9 + fi + fi + else + if [ "$dflag" != 1 ] + then + dbPassword=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.password' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//'i ) + fi fi fi From ee9b644e28f8c1bab6afb94311054f2cd2f2e3d9 Mon Sep 17 00:00:00 2001 From: Remi Bergsma Date: Tue, 11 Aug 2015 14:43:17 +0200 Subject: [PATCH 2/3] this query had no -P port specified so did not work --- scripts/storage/secondary/cloud-install-sys-tmplt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/storage/secondary/cloud-install-sys-tmplt b/scripts/storage/secondary/cloud-install-sys-tmplt index 2c4ea36c809..89f386a9544 100755 --- a/scripts/storage/secondary/cloud-install-sys-tmplt +++ b/scripts/storage/secondary/cloud-install-sys-tmplt @@ -193,7 +193,7 @@ fi _uuid=$(uuidgen) localfile=$_uuid.$ext -_res=(`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -U cloud -e "update cloud.vm_template set uuid=\"$_uuid\", url=\"$url\" where id=\"$templateId\""`) +_res=(`mysql -P $dbPort -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -U cloud -e "update cloud.vm_template set uuid=\"$_uuid\", url=\"$url\" where id=\"$templateId\""`) mntpoint=`echo "$mntpoint" | sed 's|/*$||'` From 2f858a7d088f4a41c35bf1c0577f922a51fc3ca2 Mon Sep 17 00:00:00 2001 From: Remi Bergsma Date: Tue, 11 Aug 2015 14:55:16 +0200 Subject: [PATCH 3/3] clean-ups in the file - replace tabs with 4 spaces - removed trailing spaces - fixed indenting - made if; then look the same --- .../storage/secondary/cloud-install-sys-tmplt | 69 ++++++++++--------- 1 file changed, 37 insertions(+), 32 deletions(-) diff --git a/scripts/storage/secondary/cloud-install-sys-tmplt b/scripts/storage/secondary/cloud-install-sys-tmplt index 89f386a9544..91b3a7c9088 100755 --- a/scripts/storage/secondary/cloud-install-sys-tmplt +++ b/scripts/storage/secondary/cloud-install-sys-tmplt @@ -8,9 +8,9 @@ # to you 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 @@ -45,40 +45,41 @@ jasypt='/usr/share/cloudstack-common/lib/jasypt-1.9.2.jar' while getopts 'm:h:f:u:Ft:e:s:o:r:d:p:'# OPTION do case $OPTION in - m) mflag=1 - mntpoint="$OPTARG" - ;; - f) fflag=1 - tmpltimg="$OPTARG" - ;; - u) uflag=1 - url="$OPTARG" - ;; - F) Fflag=1 ;; + m) mflag=1 + mntpoint="$OPTARG" + ;; + f) fflag=1 + tmpltimg="$OPTARG" + ;; + u) uflag=1 + url="$OPTARG" + ;; + F) Fflag=1 + ;; t) templateId="$OPTARG" - ;; + ;; e) ext="$OPTARG" - ;; + ;; h) hyper="$OPTARG" - ;; + ;; s) sflag=1 - msKey="$OPTARG" - ;; + msKey="$OPTARG" + ;; o) oflag=1 dbHost="$OPTARG" - ;; + ;; r) rflag=1 dbUser="$OPTARG" - ;; + ;; d) dflag=1 dbPassword="$OPTARG" - ;; + ;; p) pflag=1 dbPort="$OPTARG" - ;; - ?) usage - failed 2 - ;; + ;; + ?) usage + failed 2 + ;; esac done @@ -94,28 +95,32 @@ then failed 2 fi -if [ ! -d $mntpoint ] +if [ ! -d $mntpoint ] then echo "mount point $mntpoint doesn't exist\n" failed 4 fi -if [[ "$fflag" == "1" && ! -f $tmpltimg ]] +if [[ "$fflag" == "1" && ! -f $tmpltimg ]] then echo "template image file $tmpltimg doesn't exist" failed 3 fi -if [ -f /etc/cloudstack/management/db.properties ]; then - if [ "$pflag" != 1 ]; then +if [ -f /etc/cloudstack/management/db.properties ] +then + if [ "$pflag" != 1 ] + then dbPort=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.port' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') fi - if [ "$oflag" != 1 ]; then + if [ "$oflag" != 1 ] + then dbHost=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.host' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') fi - if [ "$rflag" != 1 ]; then + if [ "$rflag" != 1 ] + then dbUser=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.username' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') fi @@ -186,8 +191,8 @@ fi if [ ! $templateId ] then - echo "Unable to get template Id from database" - failed 8 + echo "Unable to get template Id from database" + failed 8 fi _uuid=$(uuidgen)