#!/bin/bash # # Cloud.com Bridge setup script. # settingsFile="/usr/share/cloud/bridge/conf/ec2-service.properties" function readCurrentSettings () { readVar managementServer readVar cloudAPIPort readVar cloudstackVersion readVar WSDLVersion readVar keystore readVar keystorePass readVar m1.small.serviceId readVar m1.large.serviceId readVar m1.xlarge.serviceId readVar c1.medium.serviceId readVar c1.xlarge.serviceId readVar m2.xlarge.serviceId readVar m2.2xlarge.serviceId readVar m2.4xlarge.serviceId readVar cc1.4xlarge.serviceId readVar dbHost readVar dbName readVar dbUser readVar dbPassword } function readVar () { local _pointer=$(sub "$1") local _tmp="`cat $settingsFile|grep \"$1=\"|awk -F= '{print $2}'|tr -d '\r'`" eval $_pointer="$_tmp" } function readValue () { local _value local _tmp local _pointer=$(sub "$2") eval _value="\$$_pointer" printf "%s [%s]: " "$1" "$_value" read -e _tmp if [ "$_tmp" != "" ] then eval $_pointer="$_tmp" fi } function getNewValues () { readValue "Management server hostname or IP" managementServer readValue "Management server port" cloudAPIPort readValue "Service offering ID for m1.small" m1.small.serviceId readValue "Service offering ID for m1.large" m1.large.serviceId readValue "Service offering ID for m1.xlarge" m1.xlarge.serviceId readValue "Service offering ID for c1.medium" c1.medium.serviceId readValue "Service offering ID for c1.xlarge" c1.xlarge.serviceId readValue "Service offering ID for m2.xlarge" m2.xlarge.serviceId readValue "Service offering ID for m2.2xlarge" m2.2xlarge.serviceId readValue "Service offering ID for m2.4xlarge" m2.4xlarge.serviceId readValue "Service offering ID for cc1.4xlarge" cc1.4xlarge.serviceId } function sub () { echo "$1" | awk '{gsub(/\./, "_", $0); print $0}' } function saveValue () { local _pointer=$(sub "$1") local _value eval _value="\$$_pointer" echo "$1=$_value" >> $settingsFile } function saveValues () { cat /dev/null > $settingsFile saveValue managementServer saveValue cloudAPIPort saveValue cloudstackVersion saveValue WSDLVersion saveValue keystore saveValue keystorePass saveValue m1.small.serviceId saveValue m1.large.serviceId saveValue m1.xlarge.serviceId saveValue c1.medium.serviceId saveValue c1.xlarge.serviceId saveValue m2.xlarge.serviceId saveValue m2.2xlarge.serviceId saveValue m2.4xlarge.serviceId saveValue cc1.4xlarge.serviceId saveValue dbHost saveValue dbName saveValue dbUser saveValue dbPassword } echo "Welcome to the CloudBridge setup." if [ ! -e $settingsFile ] then settingsFile=$1 if [ ! -e $settingsFile ] then echo "Error: Settings file not found." exit 1 fi fi if [ ! -w $settingsFile ] then echo "Error: Insufficient permissions. Run as super-user." exit 1 fi readCurrentSettings printf "Enter suitable values or press enter for default. \n\n" getNewValues saveValues printf "\nValues saved. Restart the cloud-bridge service for the changes to become active.\n\n"