diff options
Diffstat (limited to 'devstack')
-rw-r--r-- | devstack/apache-ceilometer.template | 15 | ||||
-rw-r--r-- | devstack/plugin.sh | 163 | ||||
-rw-r--r-- | devstack/settings | 11 | ||||
-rw-r--r-- | devstack/upgrade/settings | 4 | ||||
-rwxr-xr-x | devstack/upgrade/shutdown.sh | 2 | ||||
-rwxr-xr-x | devstack/upgrade/upgrade.sh | 17 |
6 files changed, 12 insertions, 200 deletions
diff --git a/devstack/apache-ceilometer.template b/devstack/apache-ceilometer.template deleted file mode 100644 index 79f14c38..00000000 --- a/devstack/apache-ceilometer.template +++ /dev/null @@ -1,15 +0,0 @@ -Listen %PORT% - -<VirtualHost *:%PORT%> - WSGIDaemonProcess ceilometer-api processes=2 threads=10 user=%USER% display-name=%{GROUP} %VIRTUALENV% - WSGIProcessGroup ceilometer-api - WSGIScriptAlias / %WSGIAPP% - WSGIApplicationGroup %{GLOBAL} - <IfVersion >= 2.4> - ErrorLogFormat "%{cu}t %M" - </IfVersion> - ErrorLog /var/log/%APACHE_NAME%/ceilometer.log - CustomLog /var/log/%APACHE_NAME%/ceilometer_access.log combined -</VirtualHost> - -WSGISocketPrefix /var/run/%APACHE_NAME% diff --git a/devstack/plugin.sh b/devstack/plugin.sh index 7036addd..3d951a8a 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -34,7 +34,7 @@ # of Ceilometer (see within for additional settings): # # CEILOMETER_PIPELINE_INTERVAL: Seconds between pipeline processing runs. Default 600. -# CEILOMETER_BACKEND: Database backend (e.g. 'mysql', 'mongodb', 'gnocchi', 'none') +# CEILOMETER_BACKEND: Database backend (e.g. 'gnocchi', 'none') # CEILOMETER_COORDINATION_URL: URL for group membership service provided by tooz. # CEILOMETER_EVENT_ALARM: Set to True to enable publisher for event alarming @@ -57,36 +57,11 @@ function is_ceilometer_enabled { return 1 } -function ceilometer_service_url { - echo "$CEILOMETER_SERVICE_PROTOCOL://$CEILOMETER_SERVICE_HOST:$CEILOMETER_SERVICE_PORT" -} - function gnocchi_service_url { echo "$GNOCCHI_SERVICE_PROTOCOL://$GNOCCHI_SERVICE_HOST/metric" } -# _ceilometer_install_mongdb - Install mongodb and python lib. -function _ceilometer_install_mongodb { - # Server package is the same on all - local packages=mongodb-server - - if is_fedora; then - # mongodb client - packages="${packages} mongodb" - fi - - install_package ${packages} - - if is_fedora; then - restart_service mongod - else - restart_service mongodb - fi - - # give time for service to restart - sleep 5 -} # _ceilometer_install_redis() - Install the redis server and python lib. function _ceilometer_install_redis { @@ -117,9 +92,6 @@ function _ceilometer_config_apache_wsgi { local apache_version=$(get_apache_version) local venv_path="" - # Copy proxy vhost and wsgi file - sudo cp $CEILOMETER_DIR/ceilometer/api/app.wsgi $CEILOMETER_WSGI_DIR/app - if [[ ${USE_VENV} = True ]]; then venv_path="python-path=${PROJECT_VENV["ceilometer"]}/lib/$(python_version)/site-packages" fi @@ -143,15 +115,6 @@ function _ceilometer_prepare_coordination { fi } -# Install required services for storage backends -function _ceilometer_prepare_storage_backend { - if [ "$CEILOMETER_BACKEND" = 'mongodb' ] ; then - pip_install_gr pymongo - _ceilometer_install_mongodb - fi -} - - # Install the python modules for inspecting nova virt instances function _ceilometer_prepare_virt_drivers { # Only install virt drivers if we're running nova compute @@ -176,15 +139,6 @@ function ceilometer_create_accounts { create_service_user "ceilometer" "admin" - if is_service_enabled ceilometer-api; then - get_or_create_service "ceilometer" "metering" "OpenStack Telemetry Service" - get_or_create_endpoint "metering" \ - "$REGION_NAME" \ - "$(ceilometer_service_url)" \ - "$(ceilometer_service_url)" \ - "$(ceilometer_service_url)" - fi - if is_service_enabled swift; then # Ceilometer needs ResellerAdmin role to access Swift account stats. get_or_add_user_project_role "ResellerAdmin" "ceilometer" $SERVICE_PROJECT_NAME @@ -243,28 +197,9 @@ function preinstall_ceilometer { echo_summary "Preinstall not in virtualenv context. Skipping." } -# Remove WSGI files, disable and remove Apache vhost file -function _ceilometer_cleanup_apache_wsgi { - if is_service_enabled ceilometer-api && [ "$CEILOMETER_USE_MOD_WSGI" == "True" ]; then - sudo rm -f "$CEILOMETER_WSGI_DIR"/* - sudo rmdir "$CEILOMETER_WSGI_DIR" - sudo rm -f $(apache_site_config_for ceilometer) - fi -} - -function _ceilometer_drop_database { - if is_service_enabled ceilometer-api ; then - if [ "$CEILOMETER_BACKEND" = 'mongodb' ] ; then - mongo ceilometer --eval "db.dropDatabase();" - fi - fi -} - # cleanup_ceilometer() - Remove residual data files, anything left over # from previous runs that a clean run would need to clean up function cleanup_ceilometer { - _ceilometer_cleanup_apache_wsgi - _ceilometer_drop_database sudo rm -f "$CEILOMETER_CONF_DIR"/* sudo rmdir "$CEILOMETER_CONF_DIR" } @@ -288,9 +223,6 @@ function _ceilometer_configure_cache_backend { # Set configuration for storage backend. function _ceilometer_configure_storage_backend { - - inidelete $CEILOMETER_CONF database metering_connection - if [ "$CEILOMETER_BACKEND" = 'none' ] ; then # It's ok for the backend to be 'none', if panko is enabled. We do not # combine this condition with the outer if statement, so that the else @@ -298,37 +230,18 @@ function _ceilometer_configure_storage_backend { if ! is_service_enabled panko-api; then echo_summary "All Ceilometer backends seems disabled, set \$CEILOMETER_BACKEND to select one." fi - elif [ "$CEILOMETER_BACKEND" = 'mysql' ] || [ "$CEILOMETER_BACKEND" = 'postgresql' ] ; then - iniset $CEILOMETER_CONF database metering_connection $(database_connection_url ceilometer) - elif [ "$CEILOMETER_BACKEND" = 'mongodb' ] ; then - iniset $CEILOMETER_CONF database metering_connection mongodb://localhost:27017/ceilometer elif [ "$CEILOMETER_BACKEND" = 'gnocchi' ] ; then - # NOTE(gordc): set batching to better handle recording on a slow machine - iniset $CEILOMETER_CONF collector batch_size 50 - iniset $CEILOMETER_CONF collector batch_timeout 5 - iniset $CEILOMETER_CONF dispatcher_gnocchi archive_policy ${GNOCCHI_ARCHIVE_POLICY} - if is_service_enabled swift && [[ "$GNOCCHI_STORAGE_BACKEND" = 'swift' ]] ; then - iniset $CEILOMETER_CONF dispatcher_gnocchi filter_service_activity "True" - iniset $CEILOMETER_CONF dispatcher_gnocchi filter_project "gnocchi_swift" - else - iniset $CEILOMETER_CONF dispatcher_gnocchi filter_service_activity "False" - fi + sed -i "s/gnocchi:\/\//gnocchi:\/\/?archive_policy=${GNOCCHI_ARCHIVE_POLICY}\&filter_project=gnocchi_swift/" $CEILOMETER_CONF_DIR/event_pipeline.yaml $CEILOMETER_CONF_DIR/pipeline.yaml else die $LINENO "Unable to configure unknown CEILOMETER_BACKEND $CEILOMETER_BACKEND" fi - if [ "$CEILOMETER_BACKEND" = 'mysql' ] || [ "$CEILOMETER_BACKEND" = 'postgresql' ] || [ "$CEILOMETER_BACKEND" = 'mongodb' ]; then - sed -i 's/gnocchi:\/\//database:\/\//g' $CEILOMETER_CONF_DIR/event_pipeline.yaml $CEILOMETER_CONF_DIR/pipeline.yaml - fi - # configure panko if is_service_enabled panko-api; then if ! grep -q 'panko' $CEILOMETER_CONF_DIR/event_pipeline.yaml ; then echo ' - panko://' >> $CEILOMETER_CONF_DIR/event_pipeline.yaml fi fi - - _ceilometer_drop_database } # Configure Ceilometer @@ -345,7 +258,6 @@ function configure_ceilometer { iniset $CEILOMETER_CONF coordination backend_url $CEILOMETER_COORDINATION_URL iniset $CEILOMETER_CONF notification workload_partitioning True iniset $CEILOMETER_CONF notification workers $API_WORKERS - iniset $CEILOMETER_CONF notification pipeline_processing_queues $API_WORKERS fi if [[ -n "$CEILOMETER_CACHE_BACKEND" ]]; then @@ -358,9 +270,6 @@ function configure_ceilometer { # with rootwrap installation done elsewhere and also clobber # ceilometer.conf settings that have already been made. # Anyway, explicit is better than implicit. - for conffile in policy.json api_paste.ini; do - cp $CEILOMETER_DIR/etc/ceilometer/$conffile $CEILOMETER_CONF_DIR - done cp $CEILOMETER_DIR/etc/ceilometer/polling_all.yaml $CEILOMETER_CONF_DIR/polling.yaml cp $CEILOMETER_DIR/ceilometer/pipeline/data/*.yaml $CEILOMETER_CONF_DIR @@ -387,15 +296,6 @@ function configure_ceilometer { configure_auth_token_middleware $CEILOMETER_CONF ceilometer $CEILOMETER_AUTH_CACHE_DIR - # Configure storage - if is_service_enabled ceilometer-api; then - _ceilometer_configure_storage_backend - fi - - if is_service_enabled ceilometer-collector; then - iniset $CEILOMETER_CONF collector workers $API_WORKERS - fi - if [[ "$VIRT_DRIVER" = 'vsphere' ]]; then iniset $CEILOMETER_CONF DEFAULT hypervisor_inspector vsphere iniset $CEILOMETER_CONF vmware host_ip "$VMWAREAPI_IP" @@ -403,9 +303,7 @@ function configure_ceilometer { iniset $CEILOMETER_CONF vmware host_password "$VMWAREAPI_PASSWORD" fi - if is_service_enabled ceilometer-api && [ "$CEILOMETER_USE_MOD_WSGI" == "True" ]; then - _ceilometer_config_apache_wsgi - fi + _ceilometer_configure_storage_backend if is_service_enabled ceilometer-aipmi; then # Configure rootwrap for the ipmi agent @@ -418,15 +316,6 @@ function init_ceilometer { # Create cache dir sudo install -d -o $STACK_USER $CEILOMETER_AUTH_CACHE_DIR rm -f $CEILOMETER_AUTH_CACHE_DIR/* - - if is_service_enabled ceilometer-api; then - if is_service_enabled mysql postgresql ; then - if [ "$CEILOMETER_BACKEND" = 'mysql' ] || [ "$CEILOMETER_BACKEND" = 'postgresql' ] || [ "$CEILOMETER_BACKEND" = 'es' ] ; then - recreate_database ceilometer - $CEILOMETER_BIN_DIR/ceilometer-upgrade --skip-gnocchi-resource-types - fi - fi - fi } # Install Ceilometer. @@ -441,37 +330,17 @@ function install_ceilometer { ! [[ $DEVSTACK_PLUGINS =~ 'gnocchi' ]] && [ "$CEILOMETER_BACKEND" = 'gnocchi' ] && install_gnocchi - if is_service_enabled ceilometer-api; then - _ceilometer_prepare_storage_backend - fi - if is_service_enabled ceilometer-acompute ; then _ceilometer_prepare_virt_drivers fi - install_ceilometerclient - case $CEILOMETER_BACKEND in - mongodb) extra=mongo;; gnocchi) extra=gnocchi;; - mysql) extra=mysql;; - postgresql) extra=postgresql;; esac setup_develop $CEILOMETER_DIR $extra sudo install -d -o $STACK_USER -m 755 $CEILOMETER_CONF_DIR } -# install_ceilometerclient() - Collect source and prepare -function install_ceilometerclient { - if use_library_from_git "python-ceilometerclient"; then - git_clone_by_name "python-ceilometerclient" - setup_dev_lib "python-ceilometerclient" - sudo install -D -m 0644 -o $STACK_USER {${GITDIR["python-ceilometerclient"]}/tools/,/etc/bash_completion.d/}ceilometer.bash_completion - else - pip_install_gr python-ceilometerclient - fi -} - # start_ceilometer() - Start running processes, including screen function start_ceilometer { @@ -479,27 +348,17 @@ function start_ceilometer { run_process gnocchi-api "$CEILOMETER_BIN_DIR/uwsgi --ini $GNOCCHI_UWSGI_FILE" "" run_process gnocchi-metricd "$CEILOMETER_BIN_DIR/gnocchi-metricd --config-file $GNOCCHI_CONF" wait_for_service 30 "$(gnocchi_service_url)" - $CEILOMETER_BIN_DIR/ceilometer-upgrade --skip-metering-database + $CEILOMETER_BIN_DIR/ceilometer-upgrade fi run_process ceilometer-acentral "$CEILOMETER_BIN_DIR/ceilometer-polling --polling-namespaces central --config-file $CEILOMETER_CONF" run_process ceilometer-aipmi "$CEILOMETER_BIN_DIR/ceilometer-polling --polling-namespaces ipmi --config-file $CEILOMETER_CONF" - if [[ "$CEILOMETER_USE_MOD_WSGI" == "False" ]]; then - run_process ceilometer-api "$CEILOMETER_BIN_DIR/ceilometer-api --port $CEILOMETER_SERVICE_PORT" - elif is_service_enabled ceilometer-api; then - enable_apache_site ceilometer - restart_apache_server - tail_log ceilometer /var/log/$APACHE_NAME/ceilometer.log - tail_log ceilometer-api /var/log/$APACHE_NAME/ceilometer_access.log - fi - - # run the notification agent/collector after restarting apache as it needs + # run the notification agent after restarting apache as it needs # operational keystone if using gnocchi run_process ceilometer-anotification "$CEILOMETER_BIN_DIR/ceilometer-agent-notification --config-file $CEILOMETER_CONF" - run_process ceilometer-collector "$CEILOMETER_BIN_DIR/ceilometer-collector --config-file $CEILOMETER_CONF" - # Start the compute agent late to allow time for the collector to + # Start the compute agent late to allow time for the notification agent to # fully wake up and connect to the message bus. See bug #1355809 if [[ "$VIRT_DRIVER" = 'libvirt' ]]; then run_process ceilometer-acompute "$CEILOMETER_BIN_DIR/ceilometer-polling --polling-namespaces compute --config-file $CEILOMETER_CONF" $LIBVIRT_GROUP @@ -511,17 +370,9 @@ function start_ceilometer { # stop_ceilometer() - Stop running processes function stop_ceilometer { - if is_service_enabled ceilometer-api ; then - if [ "$CEILOMETER_USE_MOD_WSGI" == "True" ]; then - disable_apache_site ceilometer - restart_apache_server - else - stop_process ceilometer-api - fi - fi # Kill the ceilometer screen windows - for serv in ceilometer-acompute ceilometer-acentral ceilometer-aipmi ceilometer-anotification ceilometer-collector; do + for serv in ceilometer-acompute ceilometer-acentral ceilometer-aipmi ceilometer-anotification; do stop_process $serv done } diff --git a/devstack/settings b/devstack/settings index 7c2bfb3c..b2768eed 100644 --- a/devstack/settings +++ b/devstack/settings @@ -11,11 +11,8 @@ CEILOMETER_CONF=$CEILOMETER_CONF_DIR/ceilometer.conf CEILOMETER_AUTH_CACHE_DIR=${CEILOMETER_AUTH_CACHE_DIR:-/var/cache/ceilometer} CEILOMETER_WSGI_DIR=${CEILOMETER_WSGI_DIR:-/var/www/ceilometer} -# Set up no backend CEILOMETER_BACKEND=${CEILOMETER_BACKEND:-gnocchi} -if [ "$CEILOMETER_BACKEND" = "es" ] || [ "$CEILOMETER_BACKEND" = "mysql" ] || [ "$CEILOMETER_BACKEND" = "postgresql" ] || [ "$CEILOMETER_BACKEND" = "mongodb" ]; then - enable_service ceilometer-api -elif [ "$CEILOMETER_BACKEND" = "gnocchi" ]; then +if [ "$CEILOMETER_BACKEND" = "gnocchi" ]; then enable_service gnocchi-api gnocchi-metricd fi @@ -38,12 +35,6 @@ GNOCCHI_WSGI_DIR=${GNOCCHI_WSGI_DIR:-/var/www/gnocchi} # when the gate job have overrided this. CEILOMETER_ALARM_GRANULARITY=${CEILOMETER_ALARM_GRANULARITY:-60} -# Ceilometer connection info. -CEILOMETER_SERVICE_PROTOCOL=http -CEILOMETER_SERVICE_HOST=${CEILOMETER_SERVICE_HOST:-${SERVICE_HOST}} -CEILOMETER_SERVICE_PORT=${CEILOMETER_SERVICE_PORT:-8777} -CEILOMETER_USE_MOD_WSGI=${CEILOMETER_USE_MOD_WSGI:-${ENABLE_HTTPD_MOD_WSGI_SERVICES}} - # To enable OSprofiler change value of this variable to "notifications,profiler" CEILOMETER_NOTIFICATION_TOPICS=${CEILOMETER_NOTIFICATION_TOPICS:-notifications} diff --git a/devstack/upgrade/settings b/devstack/upgrade/settings index 6a2dad94..0324704f 100644 --- a/devstack/upgrade/settings +++ b/devstack/upgrade/settings @@ -1,7 +1,7 @@ register_project_for_upgrade ceilometer devstack_localrc base enable_plugin ceilometer git://git.openstack.org/openstack/ceilometer -devstack_localrc base enable_service ceilometer-acompute ceilometer-acentral ceilometer-aipmi ceilometer-anotification ceilometer-collector ceilometer-api tempest +devstack_localrc base enable_service ceilometer-acompute ceilometer-acentral ceilometer-aipmi ceilometer-anotification tempest devstack_localrc target enable_plugin ceilometer git://git.openstack.org/openstack/ceilometer -devstack_localrc target enable_service ceilometer-acompute ceilometer-acentral ceilometer-aipmi ceilometer-anotification ceilometer-collector ceilometer-api tempest +devstack_localrc target enable_service ceilometer-acompute ceilometer-acentral ceilometer-aipmi ceilometer-anotification tempest diff --git a/devstack/upgrade/shutdown.sh b/devstack/upgrade/shutdown.sh index ec0e692b..ccd42bac 100755 --- a/devstack/upgrade/shutdown.sh +++ b/devstack/upgrade/shutdown.sh @@ -22,6 +22,6 @@ stop_ceilometer # ensure everything is stopped -SERVICES_DOWN="ceilometer-acompute ceilometer-acentral ceilometer-aipmi ceilometer-anotification ceilometer-collector ceilometer-api" +SERVICES_DOWN="ceilometer-acompute ceilometer-acentral ceilometer-aipmi ceilometer-anotification" ensure_services_stopped $SERVICES_DOWN diff --git a/devstack/upgrade/upgrade.sh b/devstack/upgrade/upgrade.sh index 929d0ead..b5aa6753 100755 --- a/devstack/upgrade/upgrade.sh +++ b/devstack/upgrade/upgrade.sh @@ -33,13 +33,6 @@ source $GRENADE_DIR/functions # only the first error that occurred. set -o errexit -# Save mongodb state (replace with snapshot) -# TODO(chdent): There used to be a 'register_db_to_save ceilometer' -# which may wish to consider putting back in. -if grep -q 'connection *= *mongo' /etc/ceilometer/ceilometer.conf; then - mongodump --db ceilometer --out $SAVE_DIR/ceilometer-dump.$BASE_RELEASE -fi - # Upgrade Ceilometer # ================== # Locate ceilometer devstack plugin, the directory above the @@ -79,15 +72,7 @@ start_ceilometer # the impi is not ready. The ceilometer-polling should fail. ensure_services_started "ceilometer-polling --polling-namespaces compute" \ "ceilometer-polling --polling-namespaces central" \ - ceilometer-agent-notification \ - ceilometer-api \ - ceilometer-collector - -# Save mongodb state (replace with snapshot) -if grep -q 'connection *= *mongo' /etc/ceilometer/ceilometer.conf; then - mongodump --db ceilometer --out $SAVE_DIR/ceilometer-dump.$TARGET_RELEASE -fi - + ceilometer-agent-notification set +o xtrace echo "*********************************************************************" |