From: Angus Salkeld Date: Thu, 29 Aug 2013 02:05:37 +0000 (+1000) Subject: Remove references to the multiple config files X-Git-Tag: 2014.1~88^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=ae28bf4c89a69f854eb4556fb584f0d4f92526ad;p=openstack-build%2Fheat-build.git Remove references to the multiple config files Only refer to heat.conf in the docs and scripts. For install.sh copy the iniset() function from devstack to assist in setting some semi-sane defaults. Change-Id: I933891e35103c003f1272bc89c7b42d2ad76697b --- diff --git a/bin/heat-db-setup b/bin/heat-db-setup index 89905b01..d7a58441 100755 --- a/bin/heat-db-setup +++ b/bin/heat-db-setup @@ -63,7 +63,7 @@ start_mysql_server() { MYSQL_HEAT_PW_DEFAULT="heat" MYSQL_HEAT_PW=${MYSQL_HEAT_PW_DEFAULT} -HEAT_CONFIG="/etc/heat/heat-engine.conf" +HEAT_CONFIG="/etc/heat/heat.conf" ASSUME_YES="" ELEVATE="" diff --git a/doc/source/getting_started/on_fedora.rst b/doc/source/getting_started/on_fedora.rst index 9bf57c7a..05444c4d 100644 --- a/doc/source/getting_started/on_fedora.rst +++ b/doc/source/getting_started/on_fedora.rst @@ -111,9 +111,7 @@ In the heat directory, run the install script:: If running OpenStack grizzly installed via tools/openstack, it is necessary to modify the default service user password:: - sudo sed -i "s/verybadpass/secrete/" /etc/heat/heat-api-cfn.conf - sudo sed -i "s/verybadpass/secrete/" /etc/heat/heat-api-cloudwatch.conf - sudo sed -i "s/verybadpass/secrete/" /etc/heat/heat-api.conf + sudo sed -i "s/verybadpass/secrete/" /etc/heat/heat.conf Source the keystone credentials created with tools/openstack ------------------------------------------------------------ @@ -186,9 +184,10 @@ The heat engine configuration file should be updated with the address of the bri :: - sudo sed -i -e "/heat_metadata_server_url/ s/127\.0\.0\.1/${BRIDGE_IP}/" /etc/heat/heat-engine.conf - sudo sed -i -e "/heat_waitcondition_server_url/ s/127\.0\.0\.1/${BRIDGE_IP}/" /etc/heat/heat-engine.conf - sudo sed -i -e "/heat_watch_server_url/ s/127\.0\.0\.1/${BRIDGE_IP}/" /etc/heat/heat-engine.conf + sudo sed -i -e "/^\[DEFAULT\]/ a\\\nheat_metadata_server_url=http://${BRIDGE_IP}:8000/\n" /etc/heat/heat.conf + sudo sed -i -e "/^\[DEFAULT\]/ a\\\nheat_waitcondition_server_url=http://${BRIDGE_IP}:8000/v1/waitcondition/" /etc/heat/heat.conf + sudo sed -i -e "/^\[DEFAULT\]/ a\\\nheat_watch_server_url=http://${BRIDGE_IP}:8003/" /etc/heat/heat.conf + Launch the Heat services ------------------------ diff --git a/doc/source/getting_started/on_ubuntu.rst b/doc/source/getting_started/on_ubuntu.rst index 7ddb3763..a1a805ff 100644 --- a/doc/source/getting_started/on_ubuntu.rst +++ b/doc/source/getting_started/on_ubuntu.rst @@ -101,9 +101,7 @@ Modify configuration for admin password Later a keystone user called '''heat''' will be created. At this point a password for that user needs to be chosen. The following files will need editing: -- /etc/heat/heat-api-cfn.conf -- /etc/heat/heat-api-cloudwatch.conf -- /etc/heat/heat-api.conf +- /etc/heat/heat.conf :: diff --git a/doc/source/man/heat-api-cfn.rst b/doc/source/man/heat-api-cfn.rst index 9fb7220e..25778976 100644 --- a/doc/source/man/heat-api-cfn.rst +++ b/doc/source/man/heat-api-cfn.rst @@ -36,4 +36,4 @@ OPTIONS FILES ======== -* /etc/heat/heat-api-cfn.conf +* /etc/heat/heat.conf diff --git a/doc/source/man/heat-api-cloudwatch.rst b/doc/source/man/heat-api-cloudwatch.rst index 192ff251..85aad6bb 100644 --- a/doc/source/man/heat-api-cloudwatch.rst +++ b/doc/source/man/heat-api-cloudwatch.rst @@ -30,4 +30,4 @@ OPTIONS FILES ======== -* /etc/heat/heat-api-cloudwatch.conf +* /etc/heat/heat.conf diff --git a/doc/source/man/heat-api.rst b/doc/source/man/heat-api.rst index 3b382399..708e9495 100644 --- a/doc/source/man/heat-api.rst +++ b/doc/source/man/heat-api.rst @@ -36,4 +36,4 @@ OPTIONS FILES ======== -* /etc/heat/heat-api.conf +* /etc/heat/heat.conf diff --git a/doc/source/man/heat-engine.rst b/doc/source/man/heat-engine.rst index 3071acd1..1d9420ba 100644 --- a/doc/source/man/heat-engine.rst +++ b/doc/source/man/heat-engine.rst @@ -35,4 +35,4 @@ OPTIONS FILES ======== -* /etc/heat/heat-engine.conf +* /etc/heat/heat.conf diff --git a/etc/heat/api-paste.ini b/etc/heat/api-paste.ini index 273e94c1..3e1094dc 100644 --- a/etc/heat/api-paste.ini +++ b/etc/heat/api-paste.ini @@ -7,7 +7,7 @@ pipeline = faultwrap versionnegotiation authtoken context apiv1app # ie. uses alternative auth backend that authenticates users against keystone # using username and password instead of validating token (which requires # an admin/service token). -# To enable, in heat-api.conf: +# To enable, in heat.conf: # [paste_deploy] # flavor = standalone # @@ -15,7 +15,7 @@ pipeline = faultwrap versionnegotiation authtoken context apiv1app pipeline = faultwrap versionnegotiation authpassword context apiv1app # heat-api pipeline for custom cloud backends -# i.e. in heat-api.conf: +# i.e. in heat.conf: # [paste_deploy] # flavor = custombackend # diff --git a/heat/db/sqlalchemy/manage.py b/heat/db/sqlalchemy/manage.py index 8a7ff168..dc7b9074 100755 --- a/heat/db/sqlalchemy/manage.py +++ b/heat/db/sqlalchemy/manage.py @@ -27,7 +27,7 @@ if __name__ == '__main__': config = ConfigParser.SafeConfigParser() try: config = ConfigParser.SafeConfigParser() - config.readfp(open('/etc/heat/heat-engine.conf')) + config.readfp(open('/etc/heat/heat.conf')) sql_connection = config.get('DEFAULT', 'sql_connection') except Exception: sql_connection = 'mysql://heat:heat@localhost/heat' diff --git a/install.sh b/install.sh index efe1fac5..40dfefae 100755 --- a/install.sh +++ b/install.sh @@ -35,16 +35,60 @@ detect_rabbit() { return 1 } -sed_if_rabbit() { - DEFAULT_RABBIT_PASSWORD="guest" +# Determinate is the given option present in the INI file +# ini_has_option config-file section option +function ini_has_option() { + local file=$1 + local section=$2 + local option=$3 + local line + line=$(sed -ne "/^\[$section\]/,/^\[.*\]/ { /^$option[ \t]*=/ p; }" "$file") + [ -n "$line" ] +} + +# Set an option in an INI file +# iniset config-file section option value +function iniset() { + local file=$1 + local section=$2 + local option=$3 + local value=$4 + if ! grep -q "^\[$section\]" "$file"; then + # Add section at the end + echo -e "\n[$section]" >>"$file" + fi + if ! ini_has_option "$file" "$section" "$option"; then + # Add it + sed -i -e "/^\[$section\]/ a\\ +$option = $value +" "$file" + else + # Replace it + sed -i -e "/^\[$section\]/,/^\[.*\]/ s|^\($option[ \t]*=[ \t]*\).*$|\1$value|" "$file" + fi +} + +basic_configuration() { conf_path=$1 if echo $conf_path | grep ".conf$" >/dev/null 2>&1 then - if detect_rabbit + iniset $target DEFAULT auth_encryption_key `hexdump -n 16 -v -e '/1 "%02x"' /dev/random` + iniset $target DEFAULT db_backend heat.db.sqlalchemy.api + iniset $target DEFAULT sql_connection "mysql://heat:heat@localhost/heat" + + BRIDGE_IP=127.0.0.1 + iniset $target DEFAULT heat_metadata_server_url "http://${BRIDGE_IP}:8000/" + iniset $target DEFAULT heat_waitcondition_server_url "http://${BRIDGE_IP}:8000/v1/waitcondition/" + iniset $target DEFAULT heat_watch_server_url "http://${BRIDGE_IP}:8003/" + + if detect_rabbit then echo "rabbitmq detected, configuring $conf_path for rabbit" >&2 - sed -i "/^rpc_backend\b/ s/impl_qpid/impl_kombu/" $conf_path - sed -i "/^rpc_backend/a rabbit_password=$DEFAULT_RABBIT_PASSWORD" $conf_path + iniset $conf_path DEFAULT rpc_backend heat.openstack.common.rpc.impl_kombu + iniset $conf_path DEFAULT rabbit_password guest + else + echo "qpid detected, configuring $conf_path for qpid" >&2 + iniset $conf_path DEFAULT rpc_backend heat.openstack.common.rpc.impl_qpid fi fi } @@ -55,19 +99,22 @@ install_dir() { for fn in $(ls $dir); do f=$dir/$fn + target=$prefix/$f + if [ $fn = 'heat.conf.sample' ]; then + target=$prefix/$dir/heat.conf + fi if [ -d $f ]; then - [ -d $prefix/$f ] || install -d $prefix/$f + [ -d $target ] || install -d $target install_dir $f $prefix - elif [ -f $prefix/$f ]; then - echo "NOT replacing existing config file $prefix/$f" >&2 - diff -u $prefix/$f $f + elif [ -f $target ]; then + echo "NOT replacing existing config file $target" >&2 + diff -u $target $f else echo "Installing $fn in $prefix/$dir" >&2 - install -m 664 $f $prefix/$dir - if [ $fn = 'heat-engine.conf' ]; then - sed -i "s/%ENCRYPTION_KEY%/`hexdump -n 16 -v -e '/1 "%02x"' /dev/random`/" $prefix/$f + install -m 664 $f $target + if [ $fn = 'heat.conf.sample' ]; then + basic_configuration $target fi - sed_if_rabbit $prefix/$f fi done }