@@ -41,6 +41,7 @@ CEILOMETER_CONF_DIR=/etc/ceilometer
4141CEILOMETER_CONF=$CEILOMETER_CONF_DIR/ceilometer.conf
4242CEILOMETER_API_LOG_DIR=/var/log/ceilometer-api
4343CEILOMETER_AUTH_CACHE_DIR=${CEILOMETER_AUTH_CACHE_DIR:-/var/cache/ceilometer}
44+ CEILOMETER_WSGI_DIR=${CEILOMETER_WSGI_DIR:-/var/www/ceilometer}
4445
4546# Support potential entry-points console scripts
4647CEILOMETER_BIN_DIR=$(get_python_exec_prefix)
@@ -52,6 +53,7 @@ CEILOMETER_BACKEND=${CEILOMETER_BACKEND:-mysql}
5253CEILOMETER_SERVICE_PROTOCOL=http
5354CEILOMETER_SERVICE_HOST=$SERVICE_HOST
5455CEILOMETER_SERVICE_PORT=${CEILOMETER_SERVICE_PORT:-8777}
56+ CEILOMETER_USE_MOD_WSGI=$(trueorfalse False $CEILOMETER_USE_MOD_WSGI)
5557
5658# To enable OSprofiler change value of this variable to "notifications,profiler"
5759CEILOMETER_NOTIFICATION_TOPICS=${CEILOMETER_NOTIFICATION_TOPICS:-notifications}
@@ -105,12 +107,39 @@ create_ceilometer_accounts() {
105107}
106108
107109
110+ # _cleanup_keystone_apache_wsgi() - Remove wsgi files, disable and remove apache vhost file
111+ function _cleanup_ceilometer_apache_wsgi {
112+ sudo rm -f $CEILOMETER_WSGI_DIR/*
113+ sudo rm -f $(apache_site_config_for ceilometer)
114+ }
115+
108116# cleanup_ceilometer() - Remove residual data files, anything left over from previous
109117# runs that a clean run would need to clean up
110118function cleanup_ceilometer {
111119 if [ "$CEILOMETER_BACKEND" != 'mysql' ] && [ "$CEILOMETER_BACKEND" != 'postgresql' ] ; then
112120 mongo ceilometer --eval "db.dropDatabase();"
113121 fi
122+ if [ "$CEILOMETER_USE_MOD_WSGI" == "True" ]; then
123+ _cleanup_ceilometer_apache_wsgi
124+ fi
125+ }
126+
127+ function _config_ceilometer_apache_wsgi {
128+ sudo mkdir -p $CEILOMETER_WSGI_DIR
129+
130+ local ceilometer_apache_conf=$(apache_site_config_for ceilometer)
131+ local apache_version=$(get_apache_version)
132+
133+ # copy proxy vhost and wsgi file
134+ sudo cp $CEILOMETER_DIR/ceilometer/api/app.wsgi $CEILOMETER_WSGI_DIR/app
135+
136+ sudo cp $FILES/apache-ceilometer.template $ceilometer_apache_conf
137+ sudo sed -e "
138+ s|%PORT%|$CEILOMETER_SERVICE_PORT|g;
139+ s|%APACHE_NAME%|$APACHE_NAME|g;
140+ s|%WSGIAPP%|$CEILOMETER_WSGI_DIR/app|g;
141+ s|%USER%|$STACK_USER|g
142+ " -i $ceilometer_apache_conf
114143}
115144
116145# configure_ceilometer() - Set config files, create data dirs, etc
@@ -163,6 +192,11 @@ function configure_ceilometer {
163192 iniset $CEILOMETER_CONF vmware host_username "$VMWAREAPI_USER"
164193 iniset $CEILOMETER_CONF vmware host_password "$VMWAREAPI_PASSWORD"
165194 fi
195+
196+ if [ "$CEILOMETER_USE_MOD_WSGI" == "True" ]; then
197+ iniset $CEILOMETER_CONF api pecan_debug "False"
198+ _config_ceilometer_apache_wsgi
199+ fi
166200}
167201
168202function configure_mongodb {
@@ -223,7 +257,16 @@ function start_ceilometer {
223257 run_process ceilometer-acentral "ceilometer-agent-central --config-file $CEILOMETER_CONF"
224258 run_process ceilometer-anotification "ceilometer-agent-notification --config-file $CEILOMETER_CONF"
225259 run_process ceilometer-collector "ceilometer-collector --config-file $CEILOMETER_CONF"
226- run_process ceilometer-api "ceilometer-api -d -v --log-dir=$CEILOMETER_API_LOG_DIR --config-file $CEILOMETER_CONF"
260+
261+ if [[ "$CEILOMETER_USE_MOD_WSGI" == "False" ]]; then
262+ run_process ceilometer-api "ceilometer-api -d -v --log-dir=$CEILOMETER_API_LOG_DIR --config-file $CEILOMETER_CONF"
263+ else
264+ enable_apache_site ceilometer
265+ restart_apache_server
266+ tail_log ceilometer /var/log/$APACHE_NAME/ceilometer.log
267+ tail_log ceilometer-api /var/log/$APACHE_NAME/ceilometer_access.log
268+ fi
269+
227270
228271 # Start the compute agent last to allow time for the collector to
229272 # fully wake up and connect to the message bus. See bug #1355809
@@ -248,6 +291,10 @@ function start_ceilometer {
248291
249292# stop_ceilometer() - Stop running processes
250293function stop_ceilometer {
294+ if [ "$CEILOMETER_USE_MOD_WSGI" == "True" ]; then
295+ disable_apache_site ceilometer
296+ restart_apache_server
297+ fi
251298 # Kill the ceilometer screen windows
252299 for serv in ceilometer-acompute ceilometer-acentral ceilometer-anotification ceilometer-collector ceilometer-api ceilometer-alarm-notifier ceilometer-alarm-evaluator; do
253300 stop_process $serv
0 commit comments