Config for ceilometer gathering from glance

Some changes are required so that ceilometer can gather usage data
from glance (notification & polling) out-of-the-box in devstack:

 - configure glance to emit notifications if rabbitmq or qpid
   is enabled

 - configure the ceilometer collector to consume notifications
   on the default glance topic (glance_notifications.*)

 - pass credentials to ceilometer central agent so that it
   authtenticate polling calls to glance

Change-Id: I0eac223eddb615266e28447b18fcaaadcd40dddf
diff --git a/lib/ceilometer b/lib/ceilometer
index 35d2507..bea68ed 100644
--- a/lib/ceilometer
+++ b/lib/ceilometer
@@ -6,6 +6,9 @@
 
 # Dependencies:
 # - functions
+# - OS_USERNAME, OS_PASSWORD, OS_TENANT_NAME, OS_AUTH_URL set for admin credentials
+# - DEST set to the destination directory
+# - NOVA_CONF_DIR, NOVA_CONF set to the nova configuration directory & file
 
 # stack.sh
 # ---------
@@ -57,6 +60,7 @@
     # ceilometer confs are copy of /etc/nova/nova.conf which must exist first
     grep -v format_string $NOVA_CONF_DIR/$NOVA_CONF > $CEILOMETER_AGENT_CONF
     grep -v format_string $NOVA_CONF_DIR/$NOVA_CONF > $CEILOMETER_COLLECTOR_CONF
+    iniset $CEILOMETER_COLLECTOR_CONF DEFAULT notification_topics 'notifications,glance_notifications'
 }
 
 # install_ceilometer() - Collect source and prepare
@@ -67,7 +71,7 @@
 # start_ceilometer() - Start running processes, including screen
 function start_ceilometer() {
     screen_it ceilometer-acompute "cd $CEILOMETER_DIR && $CEILOMETER_BIN_DIR/ceilometer-agent-compute --config-file $CEILOMETER_AGENT_CONF"
-    screen_it ceilometer-acentral "cd $CEILOMETER_DIR && $CEILOMETER_BIN_DIR/ceilometer-agent-central --config-file $CEILOMETER_AGENT_CONF"
+    screen_it ceilometer-acentral "export OS_USERNAME=$OS_USERNAME OS_PASSWORD=$OS_PASSWORD OS_TENANT_NAME=$OS_TENANT_NAME OS_AUTH_URL=$OS_AUTH_URL && cd $CEILOMETER_DIR && $CEILOMETER_BIN_DIR/ceilometer-agent-central --config-file $CEILOMETER_AGENT_CONF"
     screen_it ceilometer-collector "cd $CEILOMETER_DIR && $CEILOMETER_BIN_DIR/ceilometer-collector --config-file $CEILOMETER_COLLECTOR_CONF"
     screen_it ceilometer-api "cd $CEILOMETER_DIR && $CEILOMETER_BIN_DIR/ceilometer-api -d -v --log-dir=$CEILOMETER_API_LOG_DIR"
 }
diff --git a/lib/glance b/lib/glance
index 4cc6253..070c80d 100644
--- a/lib/glance
+++ b/lib/glance
@@ -107,6 +107,13 @@
     iniset $GLANCE_API_CONF keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
     iniset $GLANCE_API_CONF keystone_authtoken admin_user glance
     iniset $GLANCE_API_CONF keystone_authtoken admin_password $SERVICE_PASSWORD
+    if is_service_enabled qpid; then
+        iniset $GLANCE_API_CONF DEFAULT notifier_strategy qpid
+    elif [ -n "$RABBIT_HOST" ] &&  [ -n "$RABBIT_PASSWORD" ]; then
+        iniset $GLANCE_API_CONF DEFAULT notifier_strategy rabbit
+        iniset $GLANCE_API_CONF DEFAULT rabbit_host $RABBIT_HOST
+        iniset $GLANCE_API_CONF DEFAULT rabbit_password $RABBIT_PASSWORD
+    fi
 
     cp -p $GLANCE_DIR/etc/glance-registry-paste.ini $GLANCE_REGISTRY_PASTE_INI