| 1 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,15 @@ |
| 0 |
+Listen %PORT% |
|
| 1 |
+ |
|
| 2 |
+<VirtualHost *:%PORT%> |
|
| 3 |
+ WSGIDaemonProcess ceilometer-api processes=2 threads=10 user=%USER% display-name=%{GROUP}
|
|
| 4 |
+ WSGIProcessGroup ceilometer-api |
|
| 5 |
+ WSGIScriptAlias / %WSGIAPP% |
|
| 6 |
+ WSGIApplicationGroup %{GLOBAL}
|
|
| 7 |
+ <IfVersion >= 2.4> |
|
| 8 |
+ ErrorLogFormat "%{cu}t %M"
|
|
| 9 |
+ </IfVersion> |
|
| 10 |
+ ErrorLog /var/log/%APACHE_NAME%/ceilometer.log |
|
| 11 |
+ CustomLog /var/log/%APACHE_NAME%/ceilometer_access.log combined |
|
| 12 |
+</VirtualHost> |
|
| 13 |
+ |
|
| 14 |
+WSGISocketPrefix /var/run/%APACHE_NAME% |
| ... | ... |
@@ -41,6 +41,7 @@ CEILOMETER_CONF_DIR=/etc/ceilometer |
| 41 | 41 |
CEILOMETER_CONF=$CEILOMETER_CONF_DIR/ceilometer.conf |
| 42 | 42 |
CEILOMETER_API_LOG_DIR=/var/log/ceilometer-api |
| 43 | 43 |
CEILOMETER_AUTH_CACHE_DIR=${CEILOMETER_AUTH_CACHE_DIR:-/var/cache/ceilometer}
|
| 44 |
+CEILOMETER_WSGI_DIR=${CEILOMETER_WSGI_DIR:-/var/www/ceilometer}
|
|
| 44 | 45 |
|
| 45 | 46 |
# Support potential entry-points console scripts |
| 46 | 47 |
CEILOMETER_BIN_DIR=$(get_python_exec_prefix) |
| ... | ... |
@@ -52,6 +53,7 @@ CEILOMETER_BACKEND=${CEILOMETER_BACKEND:-mysql}
|
| 52 | 52 |
CEILOMETER_SERVICE_PROTOCOL=http |
| 53 | 53 |
CEILOMETER_SERVICE_HOST=$SERVICE_HOST |
| 54 | 54 |
CEILOMETER_SERVICE_PORT=${CEILOMETER_SERVICE_PORT:-8777}
|
| 55 |
+CEILOMETER_USE_MOD_WSGI=$(trueorfalse False $CEILOMETER_USE_MOD_WSGI) |
|
| 55 | 56 |
|
| 56 | 57 |
# To enable OSprofiler change value of this variable to "notifications,profiler" |
| 57 | 58 |
CEILOMETER_NOTIFICATION_TOPICS=${CEILOMETER_NOTIFICATION_TOPICS:-notifications}
|
| ... | ... |
@@ -105,12 +107,39 @@ create_ceilometer_accounts() {
|
| 105 | 105 |
} |
| 106 | 106 |
|
| 107 | 107 |
|
| 108 |
+# _cleanup_keystone_apache_wsgi() - Remove wsgi files, disable and remove apache vhost file |
|
| 109 |
+function _cleanup_ceilometer_apache_wsgi {
|
|
| 110 |
+ sudo rm -f $CEILOMETER_WSGI_DIR/* |
|
| 111 |
+ sudo rm -f $(apache_site_config_for ceilometer) |
|
| 112 |
+} |
|
| 113 |
+ |
|
| 108 | 114 |
# cleanup_ceilometer() - Remove residual data files, anything left over from previous |
| 109 | 115 |
# runs that a clean run would need to clean up |
| 110 | 116 |
function cleanup_ceilometer {
|
| 111 | 117 |
if [ "$CEILOMETER_BACKEND" != 'mysql' ] && [ "$CEILOMETER_BACKEND" != 'postgresql' ] ; then |
| 112 | 118 |
mongo ceilometer --eval "db.dropDatabase();" |
| 113 | 119 |
fi |
| 120 |
+ if [ "$CEILOMETER_USE_MOD_WSGI" == "True" ]; then |
|
| 121 |
+ _cleanup_ceilometer_apache_wsgi |
|
| 122 |
+ fi |
|
| 123 |
+} |
|
| 124 |
+ |
|
| 125 |
+function _config_ceilometer_apache_wsgi {
|
|
| 126 |
+ sudo mkdir -p $CEILOMETER_WSGI_DIR |
|
| 127 |
+ |
|
| 128 |
+ local ceilometer_apache_conf=$(apache_site_config_for ceilometer) |
|
| 129 |
+ local apache_version=$(get_apache_version) |
|
| 130 |
+ |
|
| 131 |
+ # copy proxy vhost and wsgi file |
|
| 132 |
+ sudo cp $CEILOMETER_DIR/ceilometer/api/app.wsgi $CEILOMETER_WSGI_DIR/app |
|
| 133 |
+ |
|
| 134 |
+ sudo cp $FILES/apache-ceilometer.template $ceilometer_apache_conf |
|
| 135 |
+ sudo sed -e " |
|
| 136 |
+ s|%PORT%|$CEILOMETER_SERVICE_PORT|g; |
|
| 137 |
+ s|%APACHE_NAME%|$APACHE_NAME|g; |
|
| 138 |
+ s|%WSGIAPP%|$CEILOMETER_WSGI_DIR/app|g; |
|
| 139 |
+ s|%USER%|$STACK_USER|g |
|
| 140 |
+ " -i $ceilometer_apache_conf |
|
| 114 | 141 |
} |
| 115 | 142 |
|
| 116 | 143 |
# configure_ceilometer() - Set config files, create data dirs, etc |
| ... | ... |
@@ -163,6 +192,11 @@ function configure_ceilometer {
|
| 163 | 163 |
iniset $CEILOMETER_CONF vmware host_username "$VMWAREAPI_USER" |
| 164 | 164 |
iniset $CEILOMETER_CONF vmware host_password "$VMWAREAPI_PASSWORD" |
| 165 | 165 |
fi |
| 166 |
+ |
|
| 167 |
+ if [ "$CEILOMETER_USE_MOD_WSGI" == "True" ]; then |
|
| 168 |
+ iniset $CEILOMETER_CONF api pecan_debug "False" |
|
| 169 |
+ _config_ceilometer_apache_wsgi |
|
| 170 |
+ fi |
|
| 166 | 171 |
} |
| 167 | 172 |
|
| 168 | 173 |
function configure_mongodb {
|
| ... | ... |
@@ -223,7 +257,16 @@ function start_ceilometer {
|
| 223 | 223 |
run_process ceilometer-acentral "ceilometer-agent-central --config-file $CEILOMETER_CONF" |
| 224 | 224 |
run_process ceilometer-anotification "ceilometer-agent-notification --config-file $CEILOMETER_CONF" |
| 225 | 225 |
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" |
|
| 226 |
+ |
|
| 227 |
+ if [[ "$CEILOMETER_USE_MOD_WSGI" == "False" ]]; then |
|
| 228 |
+ run_process ceilometer-api "ceilometer-api -d -v --log-dir=$CEILOMETER_API_LOG_DIR --config-file $CEILOMETER_CONF" |
|
| 229 |
+ else |
|
| 230 |
+ enable_apache_site ceilometer |
|
| 231 |
+ restart_apache_server |
|
| 232 |
+ tail_log ceilometer /var/log/$APACHE_NAME/ceilometer.log |
|
| 233 |
+ tail_log ceilometer-api /var/log/$APACHE_NAME/ceilometer_access.log |
|
| 234 |
+ fi |
|
| 235 |
+ |
|
| 227 | 236 |
|
| 228 | 237 |
# Start the compute agent last to allow time for the collector to |
| 229 | 238 |
# fully wake up and connect to the message bus. See bug #1355809 |
| ... | ... |
@@ -248,6 +291,10 @@ function start_ceilometer {
|
| 248 | 248 |
|
| 249 | 249 |
# stop_ceilometer() - Stop running processes |
| 250 | 250 |
function stop_ceilometer {
|
| 251 |
+ if [ "$CEILOMETER_USE_MOD_WSGI" == "True" ]; then |
|
| 252 |
+ disable_apache_site ceilometer |
|
| 253 |
+ restart_apache_server |
|
| 254 |
+ fi |
|
| 251 | 255 |
# Kill the ceilometer screen windows |
| 252 | 256 |
for serv in ceilometer-acompute ceilometer-acentral ceilometer-anotification ceilometer-collector ceilometer-api ceilometer-alarm-notifier ceilometer-alarm-evaluator; do |
| 253 | 257 |
stop_process $serv |