]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
install.sh add logic detecting rabbitmq
authorSteven Hardy <shardy@redhat.com>
Fri, 14 Dec 2012 09:47:33 +0000 (09:47 +0000)
committerSteven Hardy <shardy@redhat.com>
Fri, 14 Dec 2012 17:25:56 +0000 (17:25 +0000)
Detect rabbitmq (On Ubuntu and Fedora), and sed the config files
with appropriate values if it looks like we're installing on a
system with rabbitmq and not the default qpidd

fixes bug 1090420

Signed-off-by: Steven Hardy <shardy@redhat.com>
Change-Id: I04a40aab00e7e13d245900aeb384d769d57c4012

install.sh

index e1b8a5febcf3d0663492296e4aeca035ef730b2f..f8331675e3fb14d4e38a5d5c5ea5d7877f3638ab 100755 (executable)
@@ -13,6 +13,41 @@ LOG_DIR=/var/log/heat
 
 install -d $LOG_DIR
 
+detect_rabbit() {
+   PKG_CMD="rpm -q"
+   RABBIT_PKG="rabbitmq-server"
+   QPID_PKG="qpid-cpp-server"
+
+    # Detect OS type
+    # Ubuntu has an lsb_release command which allows us to detect if it is Ubuntu
+    if lsb_release -i 2>/dev/null | grep -iq ubuntu
+    then
+        PKG_CMD="dpkg -s"
+        QPID_PKG="qpidd"
+    fi
+    if $PKG_CMD $RABBIT_PKG > /dev/null 2>&1
+    then
+        if ! $PKG_CMD $QPID_PKG > /dev/null 2>&1
+        then
+            return 0
+        fi
+    fi
+    return 1
+}
+
+sed_if_rabbit() {
+    DEFAULT_RABBIT_PASSWORD="guest"
+    conf_path=$1
+    if echo $conf_path | grep ".conf$" >/dev/null 2>&1
+    then
+    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
+        fi
+    fi
+}
 
 install_dir() {
     local dir=$1
@@ -32,12 +67,12 @@ install_dir() {
             if [ $fn = 'heat-engine.conf' ]; then
                 sed -i "s/%ENCRYPTION_KEY%/`hexdump -n 16 -v -e '/1 "%02x"' /dev/random`/" $prefix/$f
             fi
+            sed_if_rabbit $prefix/$f
         fi
     done
 }
 
 install_dir etc $CONF_PREFIX
 
-
 ./setup.py install >/dev/null
 rm -rf build heat.egg-info