aodh-2.0.0/ 0000775 0005670 0005671 00000000000 12701405544 013567 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/devstack/ 0000775 0005670 0005671 00000000000 12701405544 015373 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/devstack/apache-aodh.template 0000664 0005670 0005671 00000000745 12701405355 021270 0 ustar jenkins jenkins 0000000 0000000 Listen %PORT%
WSGIDaemonProcess aodh-api processes=%APIWORKERS% threads=10 user=%USER% display-name=%{GROUP} %VIRTUALENV%
WSGIProcessGroup aodh-api
WSGIScriptAlias / %WSGIAPP%
WSGIApplicationGroup %{GLOBAL}
= 2.4>
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/%APACHE_NAME%/aodh.log
CustomLog /var/log/%APACHE_NAME%/aodh_access.log combined
WSGISocketPrefix /var/run/%APACHE_NAME%
aodh-2.0.0/devstack/settings 0000664 0005670 0005671 00000002270 12701405357 017161 0 ustar jenkins jenkins 0000000 0000000 # turn on all the aodh services by default
# API service
enable_service aodh-api
# Alarming
enable_service aodh-notifier aodh-evaluator
# Listener for Event Alarming
enable_service aodh-listener
# Default directories
AODH_DIR=$DEST/aodh
AODH_CONF_DIR=/etc/aodh
AODH_CONF=$AODH_CONF_DIR/aodh.conf
AODH_API_LOG_DIR=/var/log/aodh-api
AODH_AUTH_CACHE_DIR=${AODH_AUTH_CACHE_DIR:-/var/cache/aodh}
AODH_WSGI_DIR=${AODH_WSGI_DIR:-/var/www/aodh}
# Set up database backend
AODH_BACKEND=${AODH_BACKEND:-mysql}
# Aodh connection info.
AODH_SERVICE_PROTOCOL=http
AODH_SERVICE_HOST=$SERVICE_HOST
AODH_SERVICE_PORT=${AODH_SERVICE_PORT:-8042}
AODH_USE_MOD_WSGI=${AODH_USE_MOD_WSGI:-${ENABLE_HTTPD_MOD_WSGI_SERVICES}}
# To enable OSprofiler change value of this variable to "notifications,profiler"
AODH_NOTIFICATION_TOPICS=${AODH_NOTIFICATION_TOPICS:-notifications}
AODH_COORDINATION_URL=${AODH_COORDINATION_URL:-}
# Tell Tempest this project is present
TEMPEST_SERVICES+=,aodh
# Set up default directories for client and middleware
GITDIR["python-ceilometerclient"]=$DEST/python-ceilometerclient
# Get rid of this before done.
# Tell emacs to use shell-script-mode
## Local variables:
## mode: shell-script
## End:
aodh-2.0.0/devstack/plugin.sh 0000664 0005670 0005671 00000024614 12701405357 017236 0 ustar jenkins jenkins 0000000 0000000 # Install and start **Aodh** service in devstack
#
# To enable Aodh in devstack add an entry to local.conf that
# looks like
#
# [[local|localrc]]
# enable_plugin aodh git://git.openstack.org/openstack/aodh
#
# By default all aodh services are started (see
# devstack/settings).
#
# AODH_BACKEND: Database backend (e.g. 'mysql', 'mongodb')
# AODH_COORDINATION_URL: URL for group membership service provided by tooz.
# Support potential entry-points console scripts in VENV or not
if [[ ${USE_VENV} = True ]]; then
PROJECT_VENV["aodh"]=${AODH_DIR}.venv
AODH_BIN_DIR=${PROJECT_VENV["aodh"]}/bin
else
AODH_BIN_DIR=$(get_python_exec_prefix)
fi
# Test if any Aodh services are enabled
# is_aodh_enabled
function is_aodh_enabled {
[[ ,${ENABLED_SERVICES} =~ ,"aodh-" ]] && return 0
return 1
}
function aodh_service_url {
echo "$AODH_SERVICE_PROTOCOL://$AODH_SERVICE_HOST:$AODH_SERVICE_PORT"
}
# _install_mongdb - Install mongodb and python lib.
function _aodh_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
}
# _install_redis() - Install the redis server and python lib.
function _aodh_install_redis {
if is_ubuntu; then
install_package redis-server
restart_service redis-server
else
# This will fail (correctly) where a redis package is unavailable
install_package redis
restart_service redis
fi
pip_install_gr redis
}
# Configure mod_wsgi
function _aodh_config_apache_wsgi {
sudo mkdir -p $AODH_WSGI_DIR
local aodh_apache_conf=$(apache_site_config_for aodh)
local apache_version=$(get_apache_version)
local venv_path=""
# Copy proxy vhost and wsgi file
sudo cp $AODH_DIR/aodh/api/app.wsgi $AODH_WSGI_DIR/app
if [[ ${USE_VENV} = True ]]; then
venv_path="python-path=${PROJECT_VENV["aodh"]}/lib/$(python_version)/site-packages"
fi
sudo cp $AODH_DIR/devstack/apache-aodh.template $aodh_apache_conf
if [ "$AODH_BACKEND" = 'hbase' ] ; then
# Use one process to have single in-memory DB instance for data consistency
AODH_API_WORKERS=1
else
AODH_API_WORKERS=$API_WORKERS
fi
sudo sed -e "
s|%PORT%|$AODH_SERVICE_PORT|g;
s|%APACHE_NAME%|$APACHE_NAME|g;
s|%WSGIAPP%|$AODH_WSGI_DIR/app|g;
s|%USER%|$STACK_USER|g;
s|%APIWORKERS%|$AODH_API_WORKERS|g;
s|%VIRTUALENV%|$venv_path|g
" -i $aodh_apache_conf
}
# Install required services for coordination
function _aodh_prepare_coordination {
if echo $AODH_COORDINATION_URL | grep -q '^memcached:'; then
install_package memcached
elif echo $AODH_COORDINATION_URL | grep -q '^redis:'; then
_aodh_install_redis
fi
}
# Install required services for storage backends
function _aodh_prepare_storage_backend {
if [ "$AODH_BACKEND" = 'mongodb' ] ; then
pip_install_gr pymongo
_aodh_install_mongodb
fi
}
# Create aodh related accounts in Keystone
function _aodh_create_accounts {
if is_service_enabled aodh-api; then
create_service_user "aodh" "admin"
local aodh_service=$(get_or_create_service "aodh" \
"alarming" "OpenStack Alarming Service")
get_or_create_endpoint $aodh_service \
"$REGION_NAME" \
"$(aodh_service_url)" \
"$(aodh_service_url)" \
"$(aodh_service_url)"
fi
}
# Activities to do before aodh has been installed.
function preinstall_aodh {
# Needed to build psycopg2
if is_ubuntu; then
install_package libpq-dev
else
install_package postgresql-devel
fi
}
# Remove WSGI files, disable and remove Apache vhost file
function _aodh_cleanup_apache_wsgi {
sudo rm -f $AODH_WSGI_DIR/*
sudo rm -f $(apache_site_config_for aodh)
}
# cleanup_aodh() - Remove residual data files, anything left over
# from previous runs that a clean run would need to clean up
function cleanup_aodh {
if [ "$AODH_BACKEND" = 'mongodb' ] ; then
mongo aodh --eval "db.dropDatabase();"
fi
if [ "$AODH_USE_MOD_WSGI" == "True" ]; then
_aodh_cleanup_apache_wsgi
fi
}
# Set configuration for storage backend.
function _aodh_configure_storage_backend {
if [ "$AODH_BACKEND" = 'mysql' ] || [ "$AODH_BACKEND" = 'postgresql' ] ; then
iniset $AODH_CONF database connection $(database_connection_url aodh)
elif [ "$AODH_BACKEND" = 'mongodb' ] ; then
iniset $AODH_CONF database connection mongodb://localhost:27017/aodh
cleanup_aodh
elif [ "$AODH_BACKEND" = 'hbase' ] ; then
iniset $AODH_CONF database connection hbase://__test__
else
die $LINENO "Unable to configure unknown AODH_BACKEND $AODH_BACKEND"
fi
}
# Configure Aodh
function configure_aodh {
iniset_rpc_backend aodh $AODH_CONF
iniset $AODH_CONF DEFAULT notification_topics "$AODH_NOTIFICATION_TOPICS"
iniset $AODH_CONF DEFAULT verbose True
iniset $AODH_CONF DEFAULT debug "$ENABLE_DEBUG_LOG_LEVEL"
if [[ -n "$AODH_COORDINATION_URL" ]]; then
iniset $AODH_CONF coordination backend_url $AODH_COORDINATION_URL
fi
# Install the policy file for the API server
cp $AODH_DIR/etc/aodh/policy.json $AODH_CONF_DIR
iniset $AODH_CONF oslo_policy policy_file $AODH_CONF_DIR/policy.json
cp $AODH_DIR/etc/aodh/api_paste.ini $AODH_CONF_DIR
# The alarm evaluator needs these options to call gnocchi/ceilometer APIs
iniset $AODH_CONF service_credentials auth_type password
iniset $AODH_CONF service_credentials username aodh
iniset $AODH_CONF service_credentials user_domain_id default
iniset $AODH_CONF service_credentials project_domain_id default
iniset $AODH_CONF service_credentials password $SERVICE_PASSWORD
iniset $AODH_CONF service_credentials project_name $SERVICE_PROJECT_NAME
iniset $AODH_CONF service_credentials region_name $REGION_NAME
iniset $AODH_CONF service_credentials auth_url $KEYSTONE_SERVICE_URI
configure_auth_token_middleware $AODH_CONF aodh $AODH_AUTH_CACHE_DIR
iniset $AODH_CONF notification store_events $AODH_EVENTS
# Configured storage
_aodh_configure_storage_backend
# NOTE: This must come after database configuration as those can
# call cleanup_aodh which will wipe the WSGI config.
if [ "$AODH_USE_MOD_WSGI" == "True" ]; then
iniset $AODH_CONF api pecan_debug "False"
_aodh_config_apache_wsgi
fi
if is_service_enabled gnocchi-api; then
iniset $AODH_CONF DEFAULT gnocchi_url $(gnocchi_service_url)
fi
}
# init_aodh() - Initialize etc.
function init_aodh {
# Get aodh keystone settings in place
_aodh_create_accounts
# Create cache dir
sudo install -d -o $STACK_USER $AODH_AUTH_CACHE_DIR
rm -f $AODH_AUTH_CACHE_DIR/*
if is_service_enabled mysql postgresql; then
if [ "$AODH_BACKEND" = 'mysql' ] || [ "$AODH_BACKEND" = 'postgresql' ] ; then
recreate_database aodh
$AODH_BIN_DIR/aodh-dbsync
fi
fi
}
# Install Aodh.
# The storage and coordination backends are installed here because the
# virtualenv context is active at this point and python drivers need to be
# installed. The context is not active during preinstall (when it would
# otherwise makes sense to do the backend services).
function install_aodh {
_aodh_prepare_coordination
_aodh_prepare_storage_backend
install_aodhclient
sudo -H pip install -e "$AODH_DIR"[test,$AODH_BACKEND]
sudo install -d -o $STACK_USER -m 755 $AODH_CONF_DIR $AODH_API_LOG_DIR
}
# install_aodhclient() - Collect source and prepare
function install_aodhclient {
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_aodh() - Start running processes, including screen
function start_aodh {
if [[ "$AODH_USE_MOD_WSGI" == "False" ]]; then
run_process aodh-api "$AODH_BIN_DIR/aodh-api -d -v --log-dir=$AODH_API_LOG_DIR --config-file $AODH_CONF"
else
enable_apache_site aodh
restart_apache_server
tail_log aodh /var/log/$APACHE_NAME/aodh.log
tail_log aodh-api /var/log/$APACHE_NAME/aodh_access.log
fi
# Only die on API if it was actually intended to be turned on
if is_service_enabled aodh-api; then
echo "Waiting for aodh-api to start..."
if ! wait_for_service $SERVICE_TIMEOUT $(aodh_service_url)/v2/; then
die $LINENO "aodh-api did not start"
fi
fi
run_process aodh-notifier "$AODH_BIN_DIR/aodh-notifier --config-file $AODH_CONF"
run_process aodh-evaluator "$AODH_BIN_DIR/aodh-evaluator --config-file $AODH_CONF"
run_process aodh-listener "$AODH_BIN_DIR/aodh-listener --config-file $AODH_CONF"
}
# stop_aodh() - Stop running processes
function stop_aodh {
if [ "$AODH_USE_MOD_WSGI" == "True" ]; then
disable_apache_site aodh
restart_apache_server
fi
# Kill the aodh screen windows
for serv in aodh-api aodh-notifier aodh-evaluator aodh-listener; do
stop_process $serv
done
}
# This is the main for plugin.sh
if is_service_enabled aodh; then
if [[ "$1" == "stack" && "$2" == "pre-install" ]]; then
# Set up other services
echo_summary "Configuring system services for Aodh"
preinstall_aodh
elif [[ "$1" == "stack" && "$2" == "install" ]]; then
echo_summary "Installing Aodh"
# Use stack_install_service here to account for vitualenv
stack_install_service aodh
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
echo_summary "Configuring Aodh"
configure_aodh
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
echo_summary "Initializing Aodh"
# Tidy base for aodh
init_aodh
# Start the services
start_aodh
fi
if [[ "$1" == "unstack" ]]; then
echo_summary "Shutting Down Aodh"
stop_aodh
fi
if [[ "$1" == "clean" ]]; then
echo_summary "Cleaning Aodh"
cleanup_aodh
fi
fi
aodh-2.0.0/devstack/gate/ 0000775 0005670 0005671 00000000000 12701405544 016313 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/devstack/gate/gate_hook.sh 0000775 0005670 0005671 00000002500 12701405355 020607 0 ustar jenkins jenkins 0000000 0000000 #!/bin/bash
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# This script is executed inside gate_hook function in devstack gate.
ENABLED_SERVICES="key,aodi-api,aodh-notifier,aodh-evaluator"
ENABLED_SERVICES+="ceilometer-acompute,ceilometer-acentral,ceilometer-anotification,"
ENABLED_SERVICES+="ceilometer-collector,ceilometer-api,"
# The backend is passed in by the job as the first and only argument
export AODH_BACKEND="${1}"
export DEVSTACK_GATE_INSTALL_TESTONLY=1
export DEVSTACK_GATE_NO_SERVICES=1
export DEVSTACK_GATE_TEMPEST=0
export DEVSTACK_GATE_EXERCISES=0
export KEEP_LOCALRC=1
# default to mysql
case $AODH_BACKEND in
postgresql)
export DEVSTACK_GATE_POSTGRES=1
;;
esac
DEVSTACK_LOCAL_CONFIG+=$'\n'"export AODH_BACKEND=${AODH_BACKEND}"
export ENABLED_SERVICES
$BASE/new/devstack-gate/devstack-vm-gate.sh
aodh-2.0.0/devstack/README.rst 0000664 0005670 0005671 00000000554 12701405355 017066 0 ustar jenkins jenkins 0000000 0000000 =========================
Enabling Aodh in DevStack
=========================
1. Download DevStack::
git clone https://git.openstack.org/openstack-dev/devstack.git
cd devstack
2. Add this repo as an external repository in ``local.conf`` file::
[[local|localrc]]
enable_plugin aodh https://git.openstack.org/openstack/aodh
3. Run ``stack.sh``.
aodh-2.0.0/etc/ 0000775 0005670 0005671 00000000000 12701405544 014342 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/etc/aodh/ 0000775 0005670 0005671 00000000000 12701405544 015255 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/etc/aodh/policy.json 0000664 0005670 0005671 00000001325 12701405355 017450 0 ustar jenkins jenkins 0000000 0000000 {
"context_is_admin": "role:admin",
"segregation": "rule:context_is_admin",
"admin_or_owner": "rule:context_is_admin or project_id:%(project_id)s",
"default": "rule:admin_or_owner",
"telemetry:get_alarm": "rule:admin_or_owner",
"telemetry:get_alarms": "rule:admin_or_owner",
"telemetry:query_alarm": "rule:admin_or_owner",
"telemetry:create_alarm": "",
"telemetry:change_alarm": "rule:admin_or_owner",
"telemetry:delete_alarm": "rule:admin_or_owner",
"telemetry:get_alarm_state": "rule:admin_or_owner",
"telemetry:change_alarm_state": "rule:admin_or_owner",
"telemetry:alarm_history": "rule:admin_or_owner",
"telemetry:query_alarm_history": "rule:admin_or_owner"
}
aodh-2.0.0/etc/aodh/api_paste.ini 0000664 0005670 0005671 00000001306 12701405355 017723 0 ustar jenkins jenkins 0000000 0000000 # aodh API WSGI Pipeline
# Define the filters that make up the pipeline for processing WSGI requests
# Note: This pipeline is PasteDeploy's term rather than aodh's pipeline
# used for processing samples
# Remove authtoken from the pipeline if you don't want to use keystone authentication
[pipeline:main]
pipeline = cors request_id authtoken api-server
[app:api-server]
paste.app_factory = aodh.api.app:app_factory
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
oslo_config_project = aodh
[filter:request_id]
paste.filter_factory = oslo_middleware:RequestId.factory
[filter:cors]
paste.filter_factory = oslo_middleware.cors:filter_factory
oslo_config_project = aodh aodh-2.0.0/etc/apache2/ 0000775 0005670 0005671 00000000000 12701405544 015645 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/etc/apache2/aodh 0000664 0005670 0005671 00000002576 12701405355 016515 0 ustar jenkins jenkins 0000000 0000000 # Copyright (c) 2013 New Dream Network, LLC (DreamHost)
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# This is an example Apache2 configuration file for using the
# aodh API through mod_wsgi.
# Note: If you are using a Debian-based system then the paths
# "/var/log/httpd" and "/var/run/httpd" will use "apache2" instead
# of "httpd".
#
# The number of processes and threads is an example only and should
# be adjusted according to local requirements.
Listen 8042
WSGIDaemonProcess aodh-api processes=2 threads=10 user=SOMEUSER display-name=%{GROUP}
WSGIProcessGroup aodh-api
WSGIScriptAlias / /var/www/aodh/app
WSGIApplicationGroup %{GLOBAL}
= 2.4>
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/aodh_error.log
CustomLog /var/log/httpd/aodh_access.log combined
WSGISocketPrefix /var/run/httpd
aodh-2.0.0/babel.cfg 0000664 0005670 0005671 00000000021 12701405355 015306 0 ustar jenkins jenkins 0000000 0000000 [python: **.py]
aodh-2.0.0/.coveragerc 0000664 0005670 0005671 00000000126 12701405355 015707 0 ustar jenkins jenkins 0000000 0000000 [run]
branch = True
source = aodh
omit = aodh/tests/*
[report]
ignore_errors = True
aodh-2.0.0/MAINTAINERS 0000664 0005670 0005671 00000000664 12701405355 015272 0 ustar jenkins jenkins 0000000 0000000 = Generalist Code Reviewers =
The current members of aodh-core are listed here:
https://launchpad.net/~aodh-drivers/+members#active
This group can +2 and approve patches in aodh. However, they may
choose to seek feedback from the appropriate specialist maintainer before
approving a patch if it is in any way controversial or risky.
= IRC handles of maintainers =
cdent
gordc
ildikov
jd__
liusheng
llu
_nadya_
r-mibu
sileht
zqfan
aodh-2.0.0/setup.cfg 0000664 0005670 0005671 00000010427 12701405544 015414 0 ustar jenkins jenkins 0000000 0000000 [metadata]
name = aodh
summary = OpenStack Telemetry Alarming
description-file =
README.rst
author = OpenStack
author-email = openstack-dev@lists.openstack.org
home-page = http://www.openstack.org/
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
Intended Audience :: System Administrators
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
Programming Language :: Python
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Topic :: System :: Monitoring
[global]
setup-hooks =
pbr.hooks.setup_hook
[files]
packages =
aodh
data_files =
etc/aodh = etc/aodh/*
[extras]
mysql =
SQLAlchemy<1.1.0,>=0.9.7
alembic>=0.7.2
PyMySQL>=0.6.2 # MIT License
postgresql =
SQLAlchemy<1.1.0,>=0.9.7
alembic>=0.7.2
psycopg2
mongodb =
pymongo>=3.0.2
hbase =
happybase!=0.7,>=0.5:python_version=='2.7'
# Required for bson
pymongo>=3.0.2
doc =
oslosphinx>=2.5.0 # Apache-2.0
reno>=0.1.1 # Apache2
sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
sphinxcontrib-httpdomain
sphinxcontrib-pecanwsme>=0.8
test =
overtest>=0.7.0
oslotest>=1.5.1 # Apache-2.0
coverage>=3.6
fixtures>=1.3.1
mock>=1.0
testrepository>=0.0.18
testtools>=1.4.0
gabbi>=0.12.0 # Apache-2.0
# Provides subunit-trace
tempest-lib>=0.6.1
python-subunit>=0.0.18
[entry_points]
aodh.storage =
log = aodh.storage.impl_log:Connection
mongodb = aodh.storage.impl_mongodb:Connection
mysql = aodh.storage.impl_sqlalchemy:Connection
mysql+pymysql = aodh.storage.impl_sqlalchemy:Connection
postgresql = aodh.storage.impl_sqlalchemy:Connection
sqlite = aodh.storage.impl_sqlalchemy:Connection
hbase = aodh.storage.impl_hbase:Connection
aodh.alarm.rule =
threshold = aodh.api.controllers.v2.alarm_rules.threshold:AlarmThresholdRule
combination = aodh.api.controllers.v2.alarm_rules.combination:AlarmCombinationRule
gnocchi_resources_threshold = aodh.api.controllers.v2.alarm_rules.gnocchi:MetricOfResourceRule
gnocchi_aggregation_by_metrics_threshold = aodh.api.controllers.v2.alarm_rules.gnocchi:AggregationMetricsByIdLookupRule
gnocchi_aggregation_by_resources_threshold = aodh.api.controllers.v2.alarm_rules.gnocchi:AggregationMetricByResourcesLookupRule
event = aodh.api.controllers.v2.alarm_rules.event:AlarmEventRule
composite = aodh.api.controllers.v2.alarm_rules.composite:composite_rule
aodh.evaluator =
threshold = aodh.evaluator.threshold:ThresholdEvaluator
combination = aodh.evaluator.combination:CombinationEvaluator
gnocchi_resources_threshold = aodh.evaluator.gnocchi:GnocchiResourceThresholdEvaluator
gnocchi_aggregation_by_metrics_threshold = aodh.evaluator.gnocchi:GnocchiAggregationMetricsThresholdEvaluator
gnocchi_aggregation_by_resources_threshold = aodh.evaluator.gnocchi:GnocchiAggregationResourcesThresholdEvaluator
composite = aodh.evaluator.composite:CompositeEvaluator
aodh.notifier =
log = aodh.notifier.log:LogAlarmNotifier
test = aodh.notifier.test:TestAlarmNotifier
http = aodh.notifier.rest:RestAlarmNotifier
https = aodh.notifier.rest:RestAlarmNotifier
trust+http = aodh.notifier.trust:TrustRestAlarmNotifier
trust+https = aodh.notifier.trust:TrustRestAlarmNotifier
zaqar = aodh.notifier.zaqar:ZaqarAlarmNotifier
console_scripts =
aodh-api = aodh.cmd.api:main
aodh-dbsync = aodh.cmd.storage:dbsync
aodh-expirer = aodh.cmd.storage:expirer
aodh-evaluator = aodh.cmd.alarm:evaluator
aodh-notifier = aodh.cmd.alarm:notifier
aodh-listener = aodh.cmd.alarm:listener
oslo.config.opts =
aodh = aodh.opts:list_opts
aodh-auth = aodh.opts:list_keystoneauth_opts
oslo.config.opts.defaults =
aodh = aodh.conf.defaults:set_cors_middleware_defaults
keystoneauth1.plugin =
password-aodh-legacy = aodh.keystone_client:LegacyAodhKeystoneLoader
tempest.test_plugins =
aodh_tests = aodh.tests.tempest.plugin:AodhTempestPlugin
[build_sphinx]
all_files = 1
build-dir = doc/build
source-dir = doc/source
[pbr]
warnerrors = true
autodoc_index_modules = true
autodoc_exclude_modules = aodh.storage.sqlalchemy.alembic.*
[extract_messages]
keywords = _ gettext ngettext l_ lazy_gettext
mapping_file = babel.cfg
output_file = aodh/locale/aodh.pot
[compile_catalog]
directory = aodh/locale
domain = aodh
[update_catalog]
domain = aodh
output_dir = aodh/locale
input_file = aodh/locale/aodh.pot
[egg_info]
tag_build =
tag_date = 0
tag_svn_revision = 0
aodh-2.0.0/aodh.egg-info/ 0000775 0005670 0005671 00000000000 12701405544 016174 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/aodh.egg-info/requires.txt 0000664 0005670 0005671 00000002214 12701405543 020572 0 ustar jenkins jenkins 0000000 0000000 retrying!=1.3.0,>=1.2.3
croniter>=0.3.4
jsonschema!=2.5.0,<3.0.0,>=2.0.0
keystonemiddleware>=2.2.0
gnocchiclient>=2.1.0
lxml>=2.3
oslo.context>=0.2.0
oslo.db>=1.12.0
oslo.config>=2.6.0
oslo.i18n>=1.5.0
oslo.log>=1.2.0
oslo.policy>=0.5.0
oslo.service>=0.1.0
PasteDeploy>=1.5.0
pbr<2.0,>=0.11
pecan>=0.8.0
oslo.messaging>2.6.1,!=2.8.0
oslo.middleware>=3.0.0
oslo.serialization>=1.4.0
oslo.utils>=1.9.0
python-ceilometerclient>=1.5.0
python-keystoneclient>=1.6.0
pytz>=2013.6
requests>=2.5.2
six>=1.9.0
stevedore>=1.5.0
tooz>=0.16.0
Werkzeug>=0.7
WebOb>=1.2.3
WSME>=0.8
[doc]
oslosphinx>=2.5.0 # Apache-2.0
reno>=0.1.1 # Apache2
sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
sphinxcontrib-httpdomain
sphinxcontrib-pecanwsme>=0.8
[hbase]
pymongo>=3.0.2
[hbase:(python_version=='2.7')]
happybase!=0.7,>=0.5
[mongodb]
pymongo>=3.0.2
[mysql]
SQLAlchemy<1.1.0,>=0.9.7
alembic>=0.7.2
PyMySQL>=0.6.2 # MIT License
[postgresql]
SQLAlchemy<1.1.0,>=0.9.7
alembic>=0.7.2
psycopg2
[test]
overtest>=0.7.0
oslotest>=1.5.1 # Apache-2.0
coverage>=3.6
fixtures>=1.3.1
mock>=1.0
testrepository>=0.0.18
testtools>=1.4.0
gabbi>=0.12.0 # Apache-2.0
tempest-lib>=0.6.1
python-subunit>=0.0.18
aodh-2.0.0/aodh.egg-info/dependency_links.txt 0000664 0005670 0005671 00000000001 12701405543 022241 0 ustar jenkins jenkins 0000000 0000000
aodh-2.0.0/aodh.egg-info/not-zip-safe 0000664 0005670 0005671 00000000001 12701405527 020423 0 ustar jenkins jenkins 0000000 0000000
aodh-2.0.0/aodh.egg-info/SOURCES.txt 0000664 0005670 0005671 00000017136 12701405544 020070 0 ustar jenkins jenkins 0000000 0000000 .coveragerc
.mailmap
.testr.conf
AUTHORS
CONTRIBUTING.rst
ChangeLog
HACKING.rst
LICENSE
MAINTAINERS
README.rst
aodh-config-generator.conf
babel.cfg
functions.sh
pylintrc
requirements.txt
run-functional-tests.sh
setup.cfg
setup.py
tox.ini
aodh/__init__.py
aodh/coordination.py
aodh/event.py
aodh/i18n.py
aodh/keystone_client.py
aodh/messaging.py
aodh/opts.py
aodh/queue.py
aodh/rpc.py
aodh/service.py
aodh.egg-info/PKG-INFO
aodh.egg-info/SOURCES.txt
aodh.egg-info/dependency_links.txt
aodh.egg-info/entry_points.txt
aodh.egg-info/not-zip-safe
aodh.egg-info/pbr.json
aodh.egg-info/requires.txt
aodh.egg-info/top_level.txt
aodh/api/__init__.py
aodh/api/app.py
aodh/api/app.wsgi
aodh/api/hooks.py
aodh/api/middleware.py
aodh/api/rbac.py
aodh/api/controllers/__init__.py
aodh/api/controllers/root.py
aodh/api/controllers/v2/__init__.py
aodh/api/controllers/v2/alarms.py
aodh/api/controllers/v2/base.py
aodh/api/controllers/v2/capabilities.py
aodh/api/controllers/v2/query.py
aodh/api/controllers/v2/root.py
aodh/api/controllers/v2/utils.py
aodh/api/controllers/v2/alarm_rules/__init__.py
aodh/api/controllers/v2/alarm_rules/combination.py
aodh/api/controllers/v2/alarm_rules/composite.py
aodh/api/controllers/v2/alarm_rules/event.py
aodh/api/controllers/v2/alarm_rules/gnocchi.py
aodh/api/controllers/v2/alarm_rules/threshold.py
aodh/cmd/__init__.py
aodh/cmd/alarm.py
aodh/cmd/api.py
aodh/cmd/storage.py
aodh/conf/__init__.py
aodh/conf/defaults.py
aodh/evaluator/__init__.py
aodh/evaluator/combination.py
aodh/evaluator/composite.py
aodh/evaluator/event.py
aodh/evaluator/gnocchi.py
aodh/evaluator/threshold.py
aodh/evaluator/utils.py
aodh/hacking/__init__.py
aodh/hacking/checks.py
aodh/locale/aodh-log-error.pot
aodh/locale/aodh-log-info.pot
aodh/locale/aodh-log-warning.pot
aodh/locale/aodh.pot
aodh/locale/es/LC_MESSAGES/aodh-log-info.po
aodh/locale/es/LC_MESSAGES/aodh-log-warning.po
aodh/locale/pt/LC_MESSAGES/aodh-log-info.po
aodh/locale/pt/LC_MESSAGES/aodh-log-warning.po
aodh/locale/pt/LC_MESSAGES/aodh.po
aodh/locale/ru/LC_MESSAGES/aodh-log-info.po
aodh/locale/ru/LC_MESSAGES/aodh-log-warning.po
aodh/locale/ru/LC_MESSAGES/aodh.po
aodh/notifier/__init__.py
aodh/notifier/log.py
aodh/notifier/rest.py
aodh/notifier/test.py
aodh/notifier/trust.py
aodh/notifier/zaqar.py
aodh/storage/__init__.py
aodh/storage/base.py
aodh/storage/impl_hbase.py
aodh/storage/impl_log.py
aodh/storage/impl_mongodb.py
aodh/storage/impl_sqlalchemy.py
aodh/storage/models.py
aodh/storage/pymongo_base.py
aodh/storage/hbase/__init__.py
aodh/storage/hbase/base.py
aodh/storage/hbase/inmemory.py
aodh/storage/hbase/migration.py
aodh/storage/hbase/utils.py
aodh/storage/mongo/__init__.py
aodh/storage/mongo/utils.py
aodh/storage/sqlalchemy/__init__.py
aodh/storage/sqlalchemy/models.py
aodh/storage/sqlalchemy/utils.py
aodh/storage/sqlalchemy/alembic/alembic.ini
aodh/storage/sqlalchemy/alembic/env.py
aodh/storage/sqlalchemy/alembic/script.py.mako
aodh/storage/sqlalchemy/alembic/versions/12fe8fac9fe4_initial_base.py
aodh/storage/sqlalchemy/alembic/versions/bb07adac380_add_severity_to_alarm_history.py
aodh/tests/__init__.py
aodh/tests/base.py
aodh/tests/constants.py
aodh/tests/mocks.py
aodh/tests/open-policy.json
aodh/tests/policy.json-pre-mikita
aodh/tests/test_hacking.py
aodh/tests/functional/__init__.py
aodh/tests/functional/db.py
aodh/tests/functional/api/__init__.py
aodh/tests/functional/api/test_app.py
aodh/tests/functional/api/test_versions.py
aodh/tests/functional/api/v2/__init__.py
aodh/tests/functional/api/v2/policy.json-test
aodh/tests/functional/api/v2/test_acl_scenarios.py
aodh/tests/functional/api/v2/test_alarm_scenarios.py
aodh/tests/functional/api/v2/test_app.py
aodh/tests/functional/api/v2/test_capabilities.py
aodh/tests/functional/api/v2/test_complex_query.py
aodh/tests/functional/api/v2/test_complex_query_scenarios.py
aodh/tests/functional/api/v2/test_query.py
aodh/tests/functional/api/v2/test_wsme_custom_type.py
aodh/tests/functional/gabbi/__init__.py
aodh/tests/functional/gabbi/fixtures.py
aodh/tests/functional/gabbi/gabbi_paste.ini
aodh/tests/functional/gabbi/test_gabbi.py
aodh/tests/functional/gabbi/test_gabbi_live.py
aodh/tests/functional/gabbi/gabbits/alarms.yaml
aodh/tests/functional/gabbi/gabbits/basic.yaml
aodh/tests/functional/gabbi/gabbits/capabilities.yaml
aodh/tests/functional/gabbi/gabbits/middleware.yaml
aodh/tests/functional/gabbi/gabbits-live/alarms.yaml
aodh/tests/functional/hooks/post_test_hook.sh
aodh/tests/functional/storage/__init__.py
aodh/tests/functional/storage/test_get_connection.py
aodh/tests/functional/storage/test_impl_hbase.py
aodh/tests/functional/storage/test_impl_log.py
aodh/tests/functional/storage/test_impl_mongodb.py
aodh/tests/functional/storage/test_impl_sqlalchemy.py
aodh/tests/functional/storage/test_storage_scenarios.py
aodh/tests/functional/storage/sqlalchemy/__init__.py
aodh/tests/functional/storage/sqlalchemy/test_migrations.py
aodh/tests/functional/storage/sqlalchemy/test_models.py
aodh/tests/tempest/__init__.py
aodh/tests/tempest/config.py
aodh/tests/tempest/plugin.py
aodh/tests/tempest/api/__init__.py
aodh/tests/tempest/api/base.py
aodh/tests/tempest/api/test_alarming_api.py
aodh/tests/tempest/api/test_alarming_api_negative.py
aodh/tests/tempest/service/__init__.py
aodh/tests/tempest/service/client.py
aodh/tests/unit/__init__.py
aodh/tests/unit/test_api_v2_capabilities.py
aodh/tests/unit/test_bin.py
aodh/tests/unit/test_coordination.py
aodh/tests/unit/test_evaluator.py
aodh/tests/unit/test_event.py
aodh/tests/unit/test_messaging.py
aodh/tests/unit/test_notifier.py
aodh/tests/unit/test_rpc.py
aodh/tests/unit/test_storage.py
aodh/tests/unit/evaluator/__init__.py
aodh/tests/unit/evaluator/base.py
aodh/tests/unit/evaluator/test_base.py
aodh/tests/unit/evaluator/test_combination.py
aodh/tests/unit/evaluator/test_composite.py
aodh/tests/unit/evaluator/test_event.py
aodh/tests/unit/evaluator/test_gnocchi.py
aodh/tests/unit/evaluator/test_threshold.py
devstack/README.rst
devstack/apache-aodh.template
devstack/plugin.sh
devstack/settings
devstack/gate/gate_hook.sh
doc/Makefile
doc/source/architecture.rst
doc/source/conf.py
doc/source/configuration.rst
doc/source/contributing.rst
doc/source/glossary.rst
doc/source/index.rst
doc/source/testing.rst
doc/source/_templates/.placeholder
doc/source/api/index.rst
doc/source/install/development.rst
doc/source/install/index.rst
doc/source/install/manual.rst
doc/source/install/mod_wsgi.rst
doc/source/install/storage.rst
doc/source/webapi/index.rst
doc/source/webapi/v2.rst
etc/aodh/api_paste.ini
etc/aodh/policy.json
etc/apache2/aodh
rally-jobs/README.rst
rally-jobs/ceilometer.yaml
rally-jobs/extra/README.rst
rally-jobs/extra/fake.img
rally-jobs/plugins/README.rst
rally-jobs/plugins/plugin_sample.py
releasenotes/notes/.placeholder
releasenotes/notes/bug1540395-reason-string-0aad56966007d0e3.yaml
releasenotes/notes/composite-alarm-1b1ca9ea0e8f55c8.yaml
releasenotes/notes/deprecate-nosql-backends-13079883eec7e8e5.yaml
releasenotes/notes/fix-ceilometerclient-init-8bc7a6742937c3e2.yaml
releasenotes/notes/fix-combination-alarms-8097adf08b837a50.yaml
releasenotes/notes/fix-empty-statistics-3852da99b1c0b297.yaml
releasenotes/notes/fix-gnocchi-aggregation-eval-7c2c1c67bdf2d11c.yaml
releasenotes/notes/fix-rbac-50825144e0897d7d.yaml
releasenotes/notes/gnocchi-client-a62ca5a0c717807e.yaml
releasenotes/notes/keystone-v3-support-ffc0f804dbe9d7e9.yaml
releasenotes/notes/queue-communication-1b884feab4078dde.yaml
releasenotes/notes/remove-eventlet-18ada1cff213af5e.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/liberty.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
tools/pretty_tox.sh
tools/test_hbase_table_utils.py aodh-2.0.0/aodh.egg-info/PKG-INFO 0000664 0005670 0005671 00000002014 12701405543 017265 0 ustar jenkins jenkins 0000000 0000000 Metadata-Version: 1.1
Name: aodh
Version: 2.0.0
Summary: OpenStack Telemetry Alarming
Home-page: http://www.openstack.org/
Author: OpenStack
Author-email: openstack-dev@lists.openstack.org
License: UNKNOWN
Description: aodh
====
Release notes can be read online at:
http://docs.openstack.org/developer/aodh/releasenotes/index.html
Documentation for the project can be found at:
http://docs.openstack.org/developer/aodh/
The project home is at:
http://launchpad.net/aodh
Platform: UNKNOWN
Classifier: Environment :: OpenStack
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: System :: Monitoring
aodh-2.0.0/aodh.egg-info/top_level.txt 0000664 0005670 0005671 00000000005 12701405543 020720 0 ustar jenkins jenkins 0000000 0000000 aodh
aodh-2.0.0/aodh.egg-info/pbr.json 0000664 0005670 0005671 00000000056 12701405543 017652 0 ustar jenkins jenkins 0000000 0000000 {"is_release": true, "git_version": "9887405"} aodh-2.0.0/aodh.egg-info/entry_points.txt 0000664 0005670 0005671 00000004637 12701405543 021503 0 ustar jenkins jenkins 0000000 0000000 [aodh.alarm.rule]
combination = aodh.api.controllers.v2.alarm_rules.combination:AlarmCombinationRule
composite = aodh.api.controllers.v2.alarm_rules.composite:composite_rule
event = aodh.api.controllers.v2.alarm_rules.event:AlarmEventRule
gnocchi_aggregation_by_metrics_threshold = aodh.api.controllers.v2.alarm_rules.gnocchi:AggregationMetricsByIdLookupRule
gnocchi_aggregation_by_resources_threshold = aodh.api.controllers.v2.alarm_rules.gnocchi:AggregationMetricByResourcesLookupRule
gnocchi_resources_threshold = aodh.api.controllers.v2.alarm_rules.gnocchi:MetricOfResourceRule
threshold = aodh.api.controllers.v2.alarm_rules.threshold:AlarmThresholdRule
[aodh.evaluator]
combination = aodh.evaluator.combination:CombinationEvaluator
composite = aodh.evaluator.composite:CompositeEvaluator
gnocchi_aggregation_by_metrics_threshold = aodh.evaluator.gnocchi:GnocchiAggregationMetricsThresholdEvaluator
gnocchi_aggregation_by_resources_threshold = aodh.evaluator.gnocchi:GnocchiAggregationResourcesThresholdEvaluator
gnocchi_resources_threshold = aodh.evaluator.gnocchi:GnocchiResourceThresholdEvaluator
threshold = aodh.evaluator.threshold:ThresholdEvaluator
[aodh.notifier]
http = aodh.notifier.rest:RestAlarmNotifier
https = aodh.notifier.rest:RestAlarmNotifier
log = aodh.notifier.log:LogAlarmNotifier
test = aodh.notifier.test:TestAlarmNotifier
trust+http = aodh.notifier.trust:TrustRestAlarmNotifier
trust+https = aodh.notifier.trust:TrustRestAlarmNotifier
zaqar = aodh.notifier.zaqar:ZaqarAlarmNotifier
[aodh.storage]
hbase = aodh.storage.impl_hbase:Connection
log = aodh.storage.impl_log:Connection
mongodb = aodh.storage.impl_mongodb:Connection
mysql = aodh.storage.impl_sqlalchemy:Connection
mysql+pymysql = aodh.storage.impl_sqlalchemy:Connection
postgresql = aodh.storage.impl_sqlalchemy:Connection
sqlite = aodh.storage.impl_sqlalchemy:Connection
[console_scripts]
aodh-api = aodh.cmd.api:main
aodh-dbsync = aodh.cmd.storage:dbsync
aodh-evaluator = aodh.cmd.alarm:evaluator
aodh-expirer = aodh.cmd.storage:expirer
aodh-listener = aodh.cmd.alarm:listener
aodh-notifier = aodh.cmd.alarm:notifier
[keystoneauth1.plugin]
password-aodh-legacy = aodh.keystone_client:LegacyAodhKeystoneLoader
[oslo.config.opts]
aodh = aodh.opts:list_opts
aodh-auth = aodh.opts:list_keystoneauth_opts
[oslo.config.opts.defaults]
aodh = aodh.conf.defaults:set_cors_middleware_defaults
[tempest.test_plugins]
aodh_tests = aodh.tests.tempest.plugin:AodhTempestPlugin
aodh-2.0.0/tools/ 0000775 0005670 0005671 00000000000 12701405544 014727 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/tools/pretty_tox.sh 0000775 0005670 0005671 00000000652 12701405355 017512 0 ustar jenkins jenkins 0000000 0000000 #!/usr/bin/env bash
set -o pipefail
TESTRARGS=$1
# --until-failure is not compatible with --subunit see:
#
# https://bugs.launchpad.net/testrepository/+bug/1411804
#
# this work around exists until that is addressed
if [[ "$TESTARGS" =~ "until-failure" ]]; then
python setup.py testr --slowest --testr-args="$TESTRARGS"
else
python setup.py testr --slowest --testr-args="--subunit $TESTRARGS" | subunit-trace -f
fi
aodh-2.0.0/tools/test_hbase_table_utils.py 0000664 0005670 0005671 00000002371 12701405355 022014 0 ustar jenkins jenkins 0000000 0000000 # Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import os
import sys
from oslo_config import cfg
from aodh import storage
def main(argv):
cfg.CONF([], project='aodh')
if os.getenv("AODH_TEST_STORAGE_URL"):
url = ("%s?table_prefix=%s" %
(os.getenv("AODH_TEST_STORAGE_URL"),
os.getenv("AODH_TEST_HBASE_TABLE_PREFIX", "test")))
cfg.CONF.set_override("connection", url, group="database",
enforce_type=True)
alarm_conn = storage.get_connection_from_config(cfg.CONF)
for arg in argv:
if arg == "--upgrade":
alarm_conn.upgrade()
if arg == "--clear":
alarm_conn.clear()
if __name__ == '__main__':
main(sys.argv[1:])
aodh-2.0.0/run-functional-tests.sh 0000775 0005670 0005671 00000000317 12701405355 020233 0 ustar jenkins jenkins 0000000 0000000 #!/bin/bash -x
set -e
case $AODH_TEST_BACKEND in
hbase)
export AODH_TEST_STORAGE_URL="hbase://__test__"
;;
*)
source $(which overtest) $AODH_TEST_BACKEND
;;
esac
$*
aodh-2.0.0/doc/ 0000775 0005670 0005671 00000000000 12701405544 014334 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/doc/source/ 0000775 0005670 0005671 00000000000 12701405544 015634 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/doc/source/index.rst 0000664 0005670 0005671 00000002632 12701405355 017500 0 ustar jenkins jenkins 0000000 0000000 ..
Copyright 2012 Nicolas Barcet for Canonical
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
============================================
Welcome to the Aodh developer documentation!
============================================
What is the purpose of the project and vision for it?
=====================================================
* Provide alarms and notifications based on metrics.
This documentation offers information on how Aodh works and how to contribute
to the project.
Overview
========
.. toctree::
:maxdepth: 2
architecture
webapi/index
Developer Documentation
=======================
.. toctree::
:maxdepth: 2
install/index
configuration
testing
contributing
Appendix
========
.. toctree::
:maxdepth: 1
glossary
api/index
.. update index
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
aodh-2.0.0/doc/source/glossary.rst 0000664 0005670 0005671 00000003027 12701405355 020233 0 ustar jenkins jenkins 0000000 0000000 ..
Copyright 2012 New Dream Network (DreamHost)
Copyright 2013 eNovance
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
==========
Glossary
==========
.. glossary::
alarm
An action triggered whenever a meter reaches a certain threshold.
API server
HTTP REST API service for Aodh.
ceilometer
From Wikipedia [#]_:
A ceilometer is a device that uses a laser or other light
source to determine the height of a cloud base.
http callback
HTTP callback is used for calling a predefined URL, whenever an
alarm has been set off. The payload of the request contains
all the details of why the alarm was triggered.
log
Logging is one of the alarm actions that is useful mostly for debugging,
it stores the alarms in a log file.
project
The OpenStack tenant or project.
resource
The OpenStack entity being metered (e.g. instance, volume, image, etc).
user
An OpenStack user.
.. [#] http://en.wikipedia.org/wiki/Ceilometer
aodh-2.0.0/doc/source/_templates/ 0000775 0005670 0005671 00000000000 12701405544 017771 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/doc/source/_templates/.placeholder 0000664 0005670 0005671 00000000000 12701405355 022242 0 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/doc/source/configuration.rst 0000664 0005670 0005671 00000005173 12701405355 021243 0 ustar jenkins jenkins 0000000 0000000 ..
Copyright 2012 New Dream Network, LLC (DreamHost)
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
=============
Configuration
=============
Configure Aodh by editing `/etc/aodh/aodh.conf`.
No config file is provided with the source code, but one can be easily created
by running:
::
tox -e genconfig
This command will create an `etc/aodh/aodh.conf` file which can be used as a
base for the default configuration file at `/etc/aodh/aodh.conf`.
For the list and description of configuration options that can be set for Aodh in
order to set up the services please see the
`Telemetry section `_
in the OpenStack Manuals Configuration Reference.
HBase
===================
This storage implementation uses Thrift HBase interface. The default Thrift
connection settings should be changed to support using ConnectionPool in HBase.
To ensure proper configuration, please add the following lines to the
`hbase-site.xml` configuration file::
hbase.thrift.minWorkerThreads200
For pure development purposes, you can use HBase from Apache_ or some other
vendor like Cloudera or Hortonworks. To verify your installation, you can use
the `list` command in `HBase shell`, to list the tables in your
HBase server, as follows::
$ ${HBASE_HOME}/bin/hbase shell
hbase> list
.. note::
This driver has been tested against HBase 0.94.2/CDH 4.2.0,
HBase 0.94.4/HDP 1.2, HBase 0.94.18/Apache, HBase 0.94.5/Apache,
HBase 0.96.2/Apache and HBase 0.98.0/Apache.
Versions earlier than 0.92.1 are not supported due to feature incompatibility.
To find out more about supported storage backends please take a look on the
:doc:`install/manual/` guide.
.. note::
If you are changing the configuration on the fly to use HBase, as a storage
backend, you will need to restart the Aodh services that use the
database to allow the changes to take affect, i.e. the collector and API
services.
.. _Apache: https://hbase.apache.org/book/quickstart.html
aodh-2.0.0/doc/source/testing.rst 0000664 0005670 0005671 00000005230 12701405355 020043 0 ustar jenkins jenkins 0000000 0000000 ..
Copyright 2012 New Dream Network, LLC (DreamHost)
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
=================
Running the Tests
=================
Aodh includes an extensive set of automated unit tests which are
run through tox_.
1. Install ``tox``::
$ sudo pip install tox
2. On Ubuntu install ``mongodb`` and ``libmysqlclient-dev`` packages::
$ sudo apt-get install mongodb
$ sudo apt-get install libmysqlclient-dev
For Fedora20 there is no ``libmysqlclient-dev`` package, so you’ll need
to install ``mariadb-devel.x86-64`` (or ``mariadb-devel.i386``) instead::
$ sudo yum install mongodb
$ sudo yum install mariadb-devel.x86_64
3. Install the test dependencies::
$ sudo pip install -e /opt/stack/aodh[test]
4. Run the unit and code-style tests::
$ cd /opt/stack/aodh
$ tox -e py27,pep8
As tox is a wrapper around testr, it also accepts the same flags as testr.
See the `testr documentation`_ for details about these additional flags.
.. _testr documentation: https://testrepository.readthedocs.org/en/latest/MANUAL.html
Use a double hyphen to pass options to testr. For example, to run only tests under tests/api/v2::
$ tox -e py27 -- api.v2
To debug tests (ie. break into pdb debugger), you can use ''debug'' tox
environment. Here's an example, passing the name of a test since you'll
normally only want to run the test that hits your breakpoint::
$ tox -e debug aodh.tests.test_bin
For reference, the ``debug`` tox environment implements the instructions
here: https://wiki.openstack.org/wiki/Testr#Debugging_.28pdb.29_Tests
5. There is a growing suite of tests which use a tool called `gabbi`_ to
test and validate the behavior of the Aodh API. These tests are run
when using the usual ``py27`` tox target but if desired they can be run by
themselves::
$ tox -e gabbi
The YAML files used to drive the gabbi tests can be found in
``aodh/tests/gabbi/gabbits``. If you are adding to or adjusting the
API you should consider adding tests here.
.. _gabbi: https://gabbi.readthedocs.org/
.. seealso::
* tox_
.. _tox: http://tox.testrun.org/latest/
aodh-2.0.0/doc/source/webapi/ 0000775 0005670 0005671 00000000000 12701405544 017103 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/doc/source/webapi/index.rst 0000664 0005670 0005671 00000002417 12701405355 020750 0 ustar jenkins jenkins 0000000 0000000 =========
Web API
=========
.. toctree::
:maxdepth: 2
v2
You can get API version list via request to endpoint root path. For example::
curl -H "X-AUTH-TOKEN: fa2ec18631f94039a5b9a8b4fe8f56ad" http://127.0.0.1:8777
Sample response::
{
"versions": {
"values": [
{
"id": "v2",
"links": [
{
"href": "http://127.0.0.1:8777/v2",
"rel": "self"
},
{
"href": "http://docs.openstack.org/",
"rel": "describedby",
"type": "text/html"
}
],
"media-types": [
{
"base": "application/json",
"type": "application/vnd.openstack.telemetry-v2+json"
},
{
"base": "application/xml",
"type": "application/vnd.openstack.telemetry-v2+xml"
}
],
"status": "stable",
"updated": "2013-02-13T00:00:00Z"
}
]
}
}
aodh-2.0.0/doc/source/webapi/v2.rst 0000664 0005670 0005671 00000010142 12701405355 020162 0 ustar jenkins jenkins 0000000 0000000 .. docbookrestapi
============
V2 Web API
============
Capabilities
============
The Capabilities API allows you to directly discover which functions from the
V2 API functionality, including the selectable aggregate functions, are
supported by the currently configured storage driver. A capabilities query
returns a flattened dictionary of properties with associated boolean values -
a 'False' or absent value means that the corresponding feature is not
available in the backend.
.. rest-controller:: aodh.api.controllers.v2.capabilities:CapabilitiesController
:webprefix: /v2/capabilities
.. autotype:: aodh.api.controllers.v2.capabilities.Capabilities
:members:
.. _alarms-api:
Alarms
======
.. rest-controller:: aodh.api.controllers.v2.alarms:AlarmsController
:webprefix: /v2/alarms
.. rest-controller:: aodh.api.controllers.v2.alarms:AlarmController
:webprefix: /v2/alarms
.. autotype:: aodh.api.controllers.v2.alarms.Alarm
:members:
.. autotype:: aodh.api.controllers.v2.alarm_rules.threshold.AlarmThresholdRule
:members:
.. autotype:: aodh.api.controllers.v2.alarm_rules.combination.AlarmCombinationRule
:members:
.. autotype:: aodh.api.controllers.v2.alarm_rules.gnocchi.MetricOfResourceRule
:members:
.. autotype:: aodh.api.controllers.v2.alarm_rules.gnocchi.AggregationMetricByResourcesLookupRule
:members:
.. autotype:: aodh.api.controllers.v2.alarm_rules.gnocchi.AggregationMetricsByIdLookupRule
:members:
.. autotype:: aodh.api.controllers.v2.alarms.AlarmTimeConstraint
:members:
.. autotype:: aodh.api.controllers.v2.alarms.AlarmChange
:members:
Filtering Queries
=================
The filter expressions of the query feature operate on the fields of *Alarm*
and *AlarmChange*. The following comparison operators are supported: *=*, *!=*,
*<*, *<=*, *>*, *>=* and *in*; and the following logical operators can be used:
*and* *or* and *not*. The field names are validated against the database
models.
.. note:: The *not* operator has different meaning in Mongo DB and in SQL DB engine.
If the *not* operator is applied on a non existent metadata field then
the result depends on the DB engine. For example if
{"not": {"metadata.nonexistent_field" : "some value"}} filter is used in a query
the Mongo DB will return every Sample object as *not* operator evaluated true
for every Sample where the given field does not exists. See more in the Mongod DB doc.
On the other hand SQL based DB engine will return empty result as the join operation
on the metadata table will return zero rows as the on clause of the join which
tries to match on the metadata field name is never fulfilled.
Complex Query supports defining the list of orderby expressions in the form
of [{"field_name": "asc"}, {"field_name2": "desc"}, ...].
The number of the returned items can be bounded using the *limit* option.
The *filter*, *orderby* and *limit* are all optional fields in a query.
.. rest-controller:: aodh.api.controllers.v2.query:QueryAlarmsController
:webprefix: /v2/query/alarms
.. rest-controller:: aodh.api.controllers.v2.query:QueryAlarmHistoryController
:webprefix: /v2/query/alarms/history
.. autotype:: aodh.api.controllers.v2.query.ComplexQuery
:members:
Composite rule Alarm
====================
The *composite* type alarm allows users to specify a composite rule to define
an alarm with multiple triggering conditions, using a combination of *and* and
*or* relations. A composite rule is composed of multiple threshold rules or
gnocchi rules. A sample composite alarm request form is as follows::
{
"name": "test_composite",
"type": "composite",
"composite_rule": {
"and": [THRESHOLD_RULE1, THRESHOLD_RULE2, {
'or': [THRESHOLD_RULE3, GNOCCHI_RULE1,
GNOCCHI_RULE2, GNOCCHI_RULE3]
}]
}
}
A sub-rule in composite_rule is same as a threshold_rule in threshold alarm
or a gnocchi_rule in gnocchi alarm. Additionally it has a mandatory *type*
field to specify the rule type, like in the following sample::
{
"threshold": 0.8,
"meter_name": "cpu_util",
"type": "threshold"
}
aodh-2.0.0/doc/source/conf.py 0000664 0005670 0005671 00000023004 12701405355 017132 0 ustar jenkins jenkins 0000000 0000000 #
# Aodh documentation build configuration file, created by
# sphinx-quickstart on Thu Oct 27 11:38:59 2011.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys
import os
import subprocess
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
ROOT = os.path.abspath(os.path.join(BASE_DIR, "..", ".."))
sys.path.insert(0, ROOT)
sys.path.insert(0, BASE_DIR)
# This is required for ReadTheDocs.org, but isn't a bad idea anyway.
os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_dashboard.settings'
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.'))
# -- General configuration ----------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings.
# They can be extensions coming with Sphinx (named 'sphinx.ext.*')
# or your custom ones.
extensions = [
'sphinx.ext.autodoc',
'sphinxcontrib.autohttp.flask',
'wsmeext.sphinxext',
'sphinx.ext.coverage',
'sphinx.ext.viewcode',
'sphinxcontrib.pecanwsme.rest',
'oslosphinx',
'stevedore.sphinxext',
]
wsme_protocols = ['restjson', 'restxml']
todo_include_todos = True
# Add any paths that contain templates here, relative to this directory.
if os.getenv('HUDSON_PUBLISH_DOCS'):
templates_path = ['_ga', '_templates']
else:
templates_path = ['_templates']
# The suffix of source filenames.
source_suffix = '.rst'
# The encoding of source files.
#source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'Aodh'
copyright = u'2012-2015, OpenStack Foundation'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = ['**/#*', '**~', '**/#*#', '**/*alembic*']
# The reST default role (used for this markup: `text`)
# to use for all documents.
#default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
primary_domain = 'py'
nitpicky = False
# -- Options for HTML output --------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
# html_theme_path = ['.']
# html_theme = '_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
html_theme_options = {
"nosidebar": "false"
}
# Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to
# " v documentation".
#html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
#html_static_path = ['_static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
git_cmd = ["git", "log", "--pretty=format:'%ad, commit %h'", "--date=local",
"-n1"]
html_last_updated_fmt = subprocess.Popen(git_cmd,
stdout=subprocess.PIPE).communicate()[0]
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
#html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#html_additional_pages = {}
# If false, no module index is generated.
#html_domain_indices = True
# If false, no index is generated.
#html_use_index = True
# If true, the index is split into individual pages for each letter.
#html_split_index = False
# If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = None
# Output file base name for HTML help builder.
htmlhelp_basename = 'Aodhdoc'
# -- Options for LaTeX output -------------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#'preamble': '',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass
# [howto/manual]).
latex_documents = [
('index', 'Aodh.tex', u'Aodh Documentation',
u'OpenStack Foundation', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
#latex_use_parts = False
# If true, show page references after internal links.
#latex_show_pagerefs = False
# If true, show URL addresses after external links.
#latex_show_urls = False
# Documents to append as an appendix to all manuals.
#latex_appendices = []
# If false, no module index is generated.
#latex_domain_indices = True
# -- Options for manual page output -------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'aodh', u'Aodh Documentation',
[u'OpenStack'], 1)
]
# If true, show URL addresses after external links.
#man_show_urls = False
# -- Options for Texinfo output -----------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('index', 'Aodh', u'Aodh Documentation', u'OpenStack',
'Aodh', 'One line description of project.', 'Miscellaneous'),
]
# Documents to append as an appendix to all manuals.
#texinfo_appendices = []
# If false, no module index is generated.
#texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#texinfo_show_urls = 'footnote'
# -- Options for Epub output --------------------------------------------------
# Bibliographic Dublin Core info.
epub_title = u'Aodh'
epub_author = u'OpenStack'
epub_publisher = u'OpenStack'
epub_copyright = u'2012-2015, OpenStack'
# The language of the text. It defaults to the language option
# or en if the language is not set.
#epub_language = ''
# The scheme of the identifier. Typical schemes are ISBN or URL.
#epub_scheme = ''
# The unique identifier of the text. This can be an ISBN number
# or the project homepage.
#epub_identifier = ''
# A unique identification for the text.
#epub_uid = ''
# A tuple containing the cover image and cover page html template filenames.
#epub_cover = ()
# HTML files that should be inserted before the pages created by sphinx.
# The format is a list of tuples containing the path and title.
#epub_pre_files = []
# HTML files shat should be inserted after the pages created by sphinx.
# The format is a list of tuples containing the path and title.
#epub_post_files = []
# A list of files that should not be packed into the epub file.
#epub_exclude_files = []
# The depth of the table of contents in toc.ncx.
#epub_tocdepth = 3
# Allow duplicate toc entries.
#epub_tocdup = True
aodh-2.0.0/doc/source/contributing.rst 0000664 0005670 0005671 00000002323 12701405355 021075 0 ustar jenkins jenkins 0000000 0000000 ..
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
.. _contributing:
======================
Contributing to Aodh
======================
Aodh follows the same workflow as other OpenStack projects. To start
contributing to Aodh, please follow the workflow found here_.
.. _here: https://wiki.openstack.org/wiki/Gerrit_Workflow
Project Hosting Details
=======================
:Bug tracker: http://launchpad.net/aodh
:Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev (prefix subjects with ``[Aodh]`` for faster responses)
:Code Hosting: https://git.openstack.org/cgit/openstack/aodh/
:Code Review: https://review.openstack.org/#/q/status:open+project:openstack/aodh,n,z
aodh-2.0.0/doc/source/architecture.rst 0000664 0005670 0005671 00000004503 12701405355 021052 0 ustar jenkins jenkins 0000000 0000000 .. _architecture:
=====================
System Architecture
=====================
.. index::
single: agent; architecture
double: compute agent; architecture
double: collector; architecture
double: data store; architecture
double: database; architecture
double: API; architecture
High-Level Architecture
=======================
Each of Aodh's services are designed to scale horizontally. Additional
workers and nodes can be added depending on the expected load. It provides
daemons to evaluate and notify based on defined alarming rules.
Evaluating the data
===================
Alarming Service
----------------
The alarming component of Aodh, first delivered in the Havana
version, allows you to set alarms based on threshold evaluation for a
collection of samples. An alarm can be set on a single meter, or on a
combination. For example, you may want to trigger an alarm when the memory
consumption reaches 70% on a given instance if the instance has been up for
more than 10 min. To setup an alarm, you will call
:ref:`Aodh's API server ` specifying the alarm conditions and
an action to take.
Of course, if you are not administrator of the cloud itself, you can only set
alarms on meters for your own components.
There can be multiple form of actions, but two have been implemented so far:
1. :term:`HTTP callback`: you provide a URL to be called whenever the alarm has
been set off. The payload of the request contains all the details of why the
alarm was triggered.
2. :term:`log`: mostly useful for debugging, stores alarms in a log file.
For more details on this, we recommend that you read the blog post by
Mehdi Abaakouk `Autoscaling with Heat and Ceilometer`_. Particular attention
should be given to the section "Some notes about deploying alarming" as the
database setup (using a separate database from the one used for metering)
will be critical in all cases of production deployment.
.. _Autoscaling with Heat and Ceilometer: http://techs.enovance.com/5991/autoscaling-with-heat-and-ceilometer
Alarm Rules
===========
.. list-plugins:: aodh.alarm.rule
:detailed:
Alarm Evaluators
================
.. list-plugins:: aodh.evaluator
:detailed:
Alarm Notifiers
===============
.. list-plugins:: aodh.notifier
:detailed:
Alarm Storage
===============
.. list-plugins:: aodh.storage
:detailed:
aodh-2.0.0/doc/source/api/ 0000775 0005670 0005671 00000000000 12701405544 016405 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/doc/source/api/index.rst 0000664 0005670 0005671 00000000147 12701405355 020250 0 ustar jenkins jenkins 0000000 0000000 ===================
Source Code Index
===================
.. toctree::
:maxdepth: 1
autoindex
aodh-2.0.0/doc/source/install/ 0000775 0005670 0005671 00000000000 12701405544 017302 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/doc/source/install/index.rst 0000664 0005670 0005671 00000001421 12701405357 021143 0 ustar jenkins jenkins 0000000 0000000 ..
Copyright 2013 New Dream Network, LLC (DreamHost)
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
.. _install:
=================
Installing Aodh
=================
.. toctree::
:maxdepth: 2
development
manual
storage
mod_wsgi
aodh-2.0.0/doc/source/install/manual.rst 0000664 0005670 0005671 00000006714 12701405355 021321 0 ustar jenkins jenkins 0000000 0000000 ..
Copyright 2012 Nicolas Barcet for Canonical
2013 New Dream Network, LLC (DreamHost)
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
.. _installing_manually:
=====================
Installing Manually
=====================
Storage Backend Installation
============================
This step is a prerequisite for the collector, notification agent and API
services. You may use one of the listed database backends below to store
Aodh data.
.. note::
Please notice, MongoDB requires pymongo_ to be installed on the system. The
required minimum version of pymongo is 2.4.
..
MongoDB
-------
The recommended Aodh storage backend is `MongoDB`. Follow the
instructions to install the MongoDB_ package for your operating system, then
start the service. The required minimum version of MongoDB is 2.4.
To use MongoDB as the storage backend, change the 'database' section in
aodh.conf as follows::
[database]
connection = mongodb://username:password@host:27017/aodh
If MongoDB is configured in replica set mode, add `?replicaSet=` in your
connection URL::
[database]
connection = mongodb://username:password@host:27017/aodh?replicaSet=foobar
SQLalchemy-supported DBs
------------------------
You may alternatively use `MySQL` (or any other SQLAlchemy-supported DB
like `PostgreSQL`).
In case of SQL-based database backends, you need to create a `aodh`
database first and then initialise it by running::
aodh-dbsync
To use MySQL as the storage backend, change the 'database' section in
aodh.conf as follows::
[database]
connection = mysql+pymysql://username:password@host/aodh?charset=utf8
HBase
-----
HBase backend is implemented to use HBase Thrift interface, therefore it is
mandatory to have the HBase Thrift server installed and running. To start
the Thrift server, please run the following command::
${HBASE_HOME}/bin/hbase thrift start
The implementation uses `HappyBase`_, which is a wrapper library used to
interact with HBase via Thrift protocol. You can verify the thrift
connection by running a quick test from a client::
import happybase
conn = happybase.Connection(host=$hbase-thrift-server, port=9090, table_prefix=None)
print conn.tables() # this returns a list of HBase tables in your HBase server
.. note::
HappyBase version 0.5 or greater is required. Additionally, version 0.7
is not currently supported.
..
In case of HBase, the needed database tables (`project`, `user`, `resource`,
`meter`, `alarm`, `alarm_h`) should be created manually with `f` column
family for each one.
To use HBase as the storage backend, change the 'database' section in
aodh.conf as follows::
[database]
connection = hbase://hbase-thrift-host:9090
.. _HappyBase: http://happybase.readthedocs.org/en/latest/index.html#
.. _MongoDB: http://www.mongodb.org/
.. _pymongo: https://pypi.python.org/pypi/pymongo/
aodh-2.0.0/doc/source/install/mod_wsgi.rst 0000664 0005670 0005671 00000004263 12701405355 021651 0 ustar jenkins jenkins 0000000 0000000 ..
Copyright 2013 New Dream Network, LLC (DreamHost)
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
===================================
Installing the API behind mod_wsgi
===================================
Aodh comes with a few example files for configuring the API
service to run behind Apache with ``mod_wsgi``.
app.wsgi
========
The file ``aodh/api/app.wsgi`` sets up the V2 API WSGI
application. The file is installed with the rest of the Aodh
application code, and should not need to be modified.
etc/apache2/aodh
================
The ``etc/apache2/aodh`` file contains example settings that
work with a copy of Aodh installed via devstack.
.. literalinclude:: ../../../etc/apache2/aodh
1. On deb-based systems copy or symlink the file to
``/etc/apache2/sites-available``. For rpm-based systems the file will go in
``/etc/httpd/conf.d``.
2. Modify the ``WSGIDaemonProcess`` directive to set the ``user`` and
``group`` values to a appropriate user on your server. In many
installations ``aodh`` will be correct.
3. Enable the Aodh site. On deb-based systems::
$ a2ensite aodh
$ service apache2 reload
On rpm-based systems::
$ service httpd reload
Limitation
==========
As Aodh is using Pecan and Pecan's DebugMiddleware doesn't support
multiple processes, there is no way to set debug mode in the multiprocessing
case. To allow multiple processes the DebugMiddleware may be turned off by
setting ``pecan_debug`` to ``False`` in the ``api`` section of
``aodh.conf``.
For other WSGI setup you can refer to the `pecan deployment`_ documentation.
.. _`pecan deployment`: http://pecan.readthedocs.org/en/latest/deployment.html#deployment
aodh-2.0.0/doc/source/install/storage.rst 0000664 0005670 0005671 00000000143 12701405355 021476 0 ustar jenkins jenkins 0000000 0000000 =================
Storage Drivers
=================
.. list-plugins:: aodh.storage
:detailed:
aodh-2.0.0/doc/source/install/development.rst 0000664 0005670 0005671 00000003266 12701405355 022365 0 ustar jenkins jenkins 0000000 0000000 ..
Copyright 2012 Nicolas Barcet for Canonical
2013 New Dream Network, LLC (DreamHost)
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
===============================
Installing development sandbox
===============================
Configuring devstack
====================
.. index::
double: installing; devstack
1. Download devstack_.
2. Create a ``local.conf`` file as input to devstack.
.. note::
``local.conf`` replaces the former configuration file called ``localrc``.
If you used localrc before, remove it to switch to using the new file.
For further information see the `localrc description page
`_ or `devstack configuration
`_.
3. The aodh services are not enabled by default, so they must be
enabled in ``local.conf`` before running ``stack.sh``.
This example ``local.conf`` file shows all of the settings required for
aodh::
[[local|localrc]]
# Enable the aodh alarming services
enable_plugin aodh https://git.openstack.org/openstack/aodh master
.. _devstack: http://docs.openstack.org/developer/devstack
aodh-2.0.0/doc/Makefile 0000664 0005670 0005671 00000013613 12701405355 016000 0 ustar jenkins jenkins 0000000 0000000 # Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = build
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
help:
@echo "Please use \`make ' where is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " wadl to build a WADL file for api.openstack.org"
clean:
-rm -rf $(BUILDDIR)/*
html: check-dependencies
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
.PHONY: check-dependencies
check-dependencies:
@python -c 'import sphinxcontrib.autohttp.flask' >/dev/null 2>&1 || (echo "ERROR: Missing Sphinx dependencies. Run: pip install sphinxcontrib-httpdomain" && exit 1)
wadl:
$(SPHINXBUILD) -b docbook $(ALLSPHINXOPTS) $(BUILDDIR)/wadl
@echo
@echo "Build finished. The WADL pages are in $(BUILDDIR)/wadl."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Ceilometer.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Ceilometer.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/Ceilometer"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Ceilometer"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
aodh-2.0.0/LICENSE 0000664 0005670 0005671 00000023637 12701405355 014607 0 ustar jenkins jenkins 0000000 0000000
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
aodh-2.0.0/ChangeLog 0000664 0005670 0005671 00000314003 12701405543 015341 0 ustar jenkins jenkins 0000000 0000000 CHANGES
=======
2.0.0
-----
* cleanup core list
* Use assertIn and assertNotIn for test
* register the config generator default hook with the right name
* Replace deprecated LOG.warn with LOG.warning
* Properly retrieve keystone user from admin client
* Fixed tempest error due to upstream change
* Record all the fired alarm state for event-alarm
* tempest: migrate api tests from tempest tree
* add missing mitaka-3 release notes
* A little typo of doc
* Moved CORS middleware configuration into oslo-config-generator
2.0.0.0b3
---------
* Add composite alarm usage description
* Remove unused pngmath Sphinx extension
* Fix py34 error of indexing 'dict_keys' object
* Add releasenote for composite alarm feature
* Change the SERVICE_TENANT_NAME to SERVICE_PROJECT_NAME
* Fix tempest test path
* Add composite rule alarm API support
* Add composite rule alarm evaluator
* Remove ceilometer-alarm-* related content of installation
* Clean etc directory
* Install configuration files by default
* KEYSTONE_CATALOG_BACKEND is deprecated
* Added CORS support to Aodh
* devstack: Fix Keystone v3 configuration typo
* Fix alarm reason
* Clean config in source code
* tempest: add aodh tempest plugin
* gabbi's own paste.ini file
* Log deprecation message if users use nosql backend
* devstack: use password with version discovery
* devstack: support publicURL retrieval in both keystone v2/v3 format
* Load zaqar client outside init
* Update alarm history only if change in alarm property
* functional tests: fix publicURL retrieval
* threshold: fix statistics empty case
* tempest: migrate codes from tempest tree
2.0.0.0b2
---------
* Zaqar notifier for alarms
* tox: change default target from MongoDB to MySQL
* tests: replace bash scripts with overtest
* Imported Translations from Zanata
* add release notes for mitaka-2
* Refactor Gnocchi and threshold evaluators
* gnocchi: use gnocchiclient instead of requests
* Use keystoneauth1 instead of manual setup
* Replace deprecated library function os.popen() with subprocess
* Use assertTrue/False instead of assertEqual(T/F)
* Test: make enforce_type=True in CONF.set_override
* devstack: add support for Gnocchi
* Replace LOG.warn with LOG.warning
* Trivial: Remove vim header from source files
* Trival: Remove unused logging import
* Fix an minor error in test_hbase_table_utils.py
* Don't need a metaclass for AlarmEvaluationService
* Use extras for dependency installation
* Support newer versions of MySQL
* rbac: add some backport compat tests
* Fix rbac system
* MAINTAINERS: remove outdated data
* Replace stackforge with openstack
* messaging: remove most oslo.context usage
2.0.0.0b1
---------
* add initial release notes
* Put py34 first in the env order of tox
* Update policy.json.sample with correct values
* deprecate timeutils.total_seconds()
* clean up integration test urls
* initialize ceilometerclient when we use it
* fix some test cases wrongly skipped for mysql backend
* support queue based communication between evaluator and notifier
* remove unnecessary mock for rpc server start
* Move the content of ReleaseNotes to README.rst
* devstack: fix HBase functional tests
* don't pass aodh options to oslo.db engine facade
* gnocchi: only evaluate the required eval_periods
* Fix combination alarms
* Fixing evaluation of gnocchi aggregation-by-metric
* add reno for release notes management
* Revert "Revert "Use oslo_config PortOpt support""
* Do not use oslo.messaging 2.8.0
* utils: move code where it's actually used and remove
* hbase: add functional testing
* tests: remove testscenarios usage
* Remove eventlet usage
* remove default=None for config options
* Do not use system config file for test
* devstack: install PostgreSQL devel tool for psycopg2
* Move evaluator tests into the unit folder
* Revert "Use oslo_config PortOpt support"
* Use oslo_config PortOpt support
* Add deprecated group for gnocchi_url
* Fix indent of code blocks in Devstack plugin README file
* Imported Translations from Zanata
* devstack: Fix some comments
* remove unused configuration options
* devstack/plugin.sh: fix typo
* monkeypatch thread for oslo.messaging tests
* Remove dependency on sphinxcontrib-docbookrestapi
* Using oslo-config-generator to instead of generate-config-file.sh
* Added README.rst and corrected the rally repository
* proposal to add Ryota Mibu to Aodh core
* Fix the gabbi target in tox.ini to use correct path
1.1.0
-----
* Avoid oslo.messaging 2.6.0 and 2.6.1
* update ceilometerclient requirement
* re-organise tests
* Imported Translations from Zanata
* Cleanup of Translations
* Remove unused file
* Add test to cover history rule change
* Change ignore-errors to ignore_errors
* tox: Allow to pass some OS_* variables
* Imported Translations from Zanata
* gnocchi: Fix typo for needed_overlap
* Cleanup keystonemiddleware configuration
* event-alarm: add unit tests for various trait types
* event-alarm: add alarm wrapper class
* event-alarm: add event wrapper class
* Refactor event-alarm caching
* event-alarm: fix unit tests to check stored alrams
* event-alarm: fix the order of alarms in unit test
* event-alarm: delete debug message to show # of alarms
1.0.0
-----
* remove db2 nosql driver
* storage: remove unused classes
* storage: remove unused CLI option
* tests: use requests rather than httplib2
* Remove unused tests requirements
* percent_of_overlap=0 to validate gnocchi alarm
* Adding liusheng to MAINTAINERS
* Fix the aodh api port
* Use new location of subunit2html
* Add storage documentation
* Fix args for get_notification_listener()
* Create conf directory during devstack install phase
* event-alarm: devstack plugin support
* Update tests to reflect WSME 0.8.0 changes
* Make event-alarm evaluator caching alarms
* Add listener service for event alarm evaluation
* Add evaluator for event alarm
* doc: Fix the devstack configuration
* Revert "Use generic keystone uri in devstack ..."
* Imported Translations from Transifex
* Exclude event type from targets of alarm evaluator
* tox: generate sample config file on default target
* Refactor api tests (_update_alarm)
* Storage: add 'exclude' constraint to get_alarms()
* Use generic keystone uri in devstack config
* Avoid translating debug log
* Use the Serializer from oslo.messaging
* Fixes querying alarm history with severity field
* Remove the unused cpu_count utils method
* api: move API options to their own api group
* storage: remove mongodb_replica_set option
* service: stop supporting deprecated group for auth option
* storage: remove unused option db2nosql_resource_id_maxlen
* Stop registering oslo.messaging option
* Move import to local to resolve circular dependency failure
* Refactor api tests for alarm history
* Move ceilometerclient mock to evaluator/base
* Correct database functional tests
* Correct thread handling in TranslationHook
* storage: re-add and deprecate alarm_connection
* Fix TestEvaluatorBase.prepare_alarms()
* Make ConnectionRetryTest more reliable
* storage: remove deprecated database_connection
* Use storage scenario test base to test migration
* devstack: use $API_WORKERS to set the number of WSGI workers in Apache
* Add 'event' type and 'event_rule' to alarm API
* Refactor alarm scenario tests (RuleCombination)
* gnocchi: percent_of_overlap=0 for agg. alarms
* Drop downgrade field in alembic script.py.mako
* Imported Translations from Transifex
* Refactor alarm scenario tests (RuleGnocchi)
* Add alembic support for aodh
* Use mocked object to test log message
* storage: only retry connection, not driver finding
* Stop using global conf object
* gnocchi: stop using global conf object for Gnocchi evaluator
* api: fix alarm group declaration
* mongodb: stop relying on global conf object in utils
* mongodb: replace custom retry code by retrying
* evaluator: remove global conf usage from threshold evaluator
* rpc: remove global conf usage from notifier
* api: remove global conf and local pecan config
* api: remove force_canonical option
* tests.api: remove unused argument/config option
* api: stop using a global Enforcer object
* api.hooks: stop using global conf object
* Port remaining tests to Python 3
* Keep alarm other attrs constantly after evaluating an alarm
* tests: ensure gabbi live test fail
* api: fix alarm deletion and update
* functionnal: fix gating
* Imported Translations from Transifex
* mongodb: stop using global config object
* tests.db: simplify connection handling
* storage: always use get_connection_from_config()
* Add keystone V3 support for service credentials
* Delete its corresponding history data when deleting an alarm
* Avoid getting alarm change notifier repeatedly
* Use user_id/project_id from service_credentials in alarm_change
* Refactor alarm scenario tests (RuleThreshold)
* Fix the service entry of evaluator and notifier
* Use stevedore directive to document plugins
* Add basic gate functional testing jobs for aodh
* notifier: stop using global conf object
* tests: use config fixture in evaluator tests
* coordination: stop using global conf object
* storage: pass conf rather at __init__ than using a global one
* evaluator: stop using global conf in evaluator service
* evaluator: stop using global conf in Evaluator
* notifier: stop relying on global conf object
* api: stop using cfg.CONF and use request local conf
* keystone_client: stop using cfg.CONF
* Move service classes to their correct subdir
* api: use oslo.config to validate data for worker
* rpc: stop using global conf object in some functions
* tests: remove unused fake class
* Switch to oslo.utils.fileutils
* Move Gnocchi options out of the "alarms" group
* Remove aodh/tests/alarm, move last test out
* evaluator: move to top-level
* notifier: move from alarm to top-level
* Close and dispose test database setup connections
* Remove remnants of ceilometer from mongodb data file
* Make py27 run tests on all backends by default
* Imported Translations from Transifex
* Move aodh.alarm.rpc to aodh.rpc
* Move alarm.service to service
* Allow aodh directly acessing to its storage
* Refactor alarm scenario tests (TestAlarmsHistory)
* trust: remove useless conf imports
* api: Add location alarm creation
* Add devstack plugin
* Use the right sqla type for JSONEncodedDict
* Refactor alarm scenario tests (TestAlarmsBase)
* Imported Translations from Transifex
* Make GnocchiThreshold evaluator derived from ThresholdEvaluator
* Tolerate alarm actions set to None
* Optionally create trust for alarm actions
* Imported Translations from Transifex
* doc: use pbr autodoc feature to build api doc
* Remove code related to metadata/metaquery
* messaging: remove unused cleanup function
* impl_log: make methods static
* Remove useless migration module
* Minor changes for evaluator service
* Update the requirements
* notifier: tests stop method
* api: remove v1 handling
* api: remove unused extra_hooks
* Move 'alarm_connection' to 'connection'
* Move aodh.alarm.storage to aodh.storage
* Replaces methods deprecated in pymongo3.0
* Fix options registeration in tests
* Change the default api server port
* Initial translation import
* Rename to aodh
* Remove locale
* Remove code unrelated to alarming
* remove unused notifier
* Add support for posting samples to notification-agent via API
* Stop dropping deprecated tables while upgrade in mongodb and db2
* Add handler of sample creation notification
* Remove the unused get_targets method of plugin base
* add oslo.service options
* Restricts pipeline to have unique source names
* drop use of oslo.db private attribute
* Fix oslo.service configuration options building
* Add fileutils to openstack-common.conf
* Remove unnecessary executable permission
* Switch to oslo.service
* Remove unnecessary wrapping of transformer ExtentionManager
* Port test_complex_query to Python 3
* Fix expected error message on Python 3
* Fix usage of iterator/list on Python 3
* Replaces ensure_index for create_index
* pip has its own download cache by default
* For sake of future python3 encode FakeMemcache hashes
* Make acl_scenarios tests' keystonemiddleware cache work flexibly
* Update version for Liberty
* Gnocchi Dispatcher support in Ceilometer
* Updated from global requirements
* Fix alarm rest notifier logging to include severity
* Remove useless execute bit on rst file
* Fix unicode/bytes issues in API v2 tests
* Fix script name in tox.ini for Elasticsearch
* Fix the meter unit types to be consistent
* tests: use policy_file in group oslo_policy
* Fix publisher test_udp on Python 3
* Fix Ceph object store tests on Python 3
* Port IPMI to Python 3
* Port middleware to Python 3
* [elasticsearch] default trait type to string
* Updated from global requirements
* Lower down the range for columns which are being used as uuid
* Sync with latest oslo-incubator
* Fix testing of agent manager with tooz
* Remove deprecated Swift middleware
* add DNS events
* Handle database failures on api startup
* Fix more tests on Python 3
* Remove old oslo.messaging aliases
* Remove useless versioninfo and clean ceilometer.conf git exclusion
* Register oslo_log options before using them
* Add running functional scripts for defined backend
* Remove snapshot.update events as they are not sent
* WSME version >=0.7 correctly returns a 405
* TraitText value restricted to max length 255
* Cause gabbi to skip on no storage sooner
* Updated from global requirements
* Move eventlet using commands into own directory
* adjust alarm post ut code to adapt to upstream wsme
* Disable rgw pollster when aws module not found
* Fixes DiskInfoPollster AttributeError exception
* remove useless log message
* use oslo.log instead of oslo-incubator code
* Port test_inspector to Python 3
* Fix usage of dictionary methods on Python 3
* Imported Translations from Transifex
* Add oslo.vmware to Python 3 test dependencies
* Remove iso8601 dependency
* Enable test_swift_middleware on Python 3
* Enable more tests on Python 3
* Skip hbase tests on Python 3
* Clear useless exclude from flake8 ignore in tox
* Remove pagination code
* Stop importing print_function
* Remove useless release script in tools
* Remove useless dependency on posix_ipc
* Remove exceute bit on HTTP dispatcher
* Remove oslo.messaging compat from Havana
* Fixing event types pattern for Role Noti. handler
* Mask database.event_connection details in logs
* Switch from MySQL-python to PyMySQL
* Python 3: replace long with int
* Python 3: Replace unicode with six.text_type
* Python 3: generalize the usage of the six module
* Update Python 3 requirements
* Python 3: set __bool__() method on Namespace
* Python 3: encode to UTF-8 when needed
* Python 3: sort tables by their full name
* Python 3: replace sys.maxint with sys.maxsize
* Initial commit for functional tests
* Update a test to properly anticipate HTTP 405 for RestController
* proposal to add Chris Dent to Ceilometer core
* rebuild event model only for database writes
* cleanup problem events logic in event db storage
* fix incorrect docstring for dispatcher
* Imported Translations from Transifex
* api: record severity change in alarm history
* VMware: verify vCenter server certificate
* Add hardware memory buffer and cache metrics
* Make interval optional in pipeline
* Improve ceilometer-api install documentation
* empty non-string values are returned as string traits
* Trait_* models have incorrect type for key
* small change to development.rst file
* Drop use of 'oslo' namespace package
* [unittests] Increase agent module unittests coverage
* stop mocking os.path in test_setup_events_default_config
* Remove py33 tox target
* made change to mod_wsgi.rst file
* ensure collections created on upgrade
* Fix raise error when run "tox -egenconfig"
* Updated from global requirements
* Fix None TypeError in neutron process notifications
* Have eventlet monkeypatch the time module
* Have eventlet monkeypatch the time module
* Add the function of deleting alarm history
* Updated from global requirements
* Fix valueerror when ceilometer-api start
* Override gnocchi_url configuration in test
* Move ceilometer/cli.py to ceilometer/cmd/sample.py
* Fix valueerror when ceilometer-api start
* remove deprecated partitioned alarm service
* use message id to generate hbase unique key
* gnocchi: fix typo in the aggregation endpoint
* Release Import of Translations from Transifex
* Fix Copyright date in docs
* Replace 'metrics' with 'meters' in option and doc
* use message id to generate hbase unique key
* update .gitreview for stable/kilo
* gnocchi: fix typo in the aggregation endpoint
* broadcast data to relevant queues only
* Imported Translations from Transifex
* fix combination alarm with operator == 'or'
* Updated from global requirements
* proposal to add ZhiQiang Fan to Ceilometer core
* Open Liberty development
* Fix a samples xfail test that now succeeds
* Cosmetic changes for system architecture docs
* Fix a issue for kafka-publisher and refactor the test code
* pymongo 3.0 breaks ci gate
* use oslo.messaging dispatch filter
* Further mock adjustments to deal with intermittent failure
* Adds support for default rule in ceilometer policy.json
* Updated from global requirements
* limit alarm actions
* Use oslo_vmware instead of deprecated oslo.vmware
* Remove 'samples:groupby' from the Capabilities list
* Use old name of 'hardware.ipmi.node.temperature'
* Revert "remove instance: meter"
* Tweak authenticate event definition
* Add project and domain ID to event definition for identity CRUD
* Fix the event type for trusts
* reset croniter to avoid cur time shift
* Imported Translations from Transifex
* Avoid a error when py27 and py-mysql tests run in sequence
* Stop using PYTHONHASHSEED=0 in ceilometer tests
* remove instance: meter
* Added ipv6 support for udp publisher
* Remove the unnecessary dependency to netaddr
* Optimize the flow of getting pollster resources
* support ability to skip message signing
* Avoid conflict with existing gnocchi_url conf value
* Using oslo.db retry decorator for sample create
* alarm: Use new gnocchi aggregation API
* collector: enable the service to listen on IPv6
* minimise the use of hmac
* Typo in pylintrc
* Ceilometer retrieve all images by 'all-tenants'
* fix incorrect key check in swift notifications
* support disabling profiler and http meters
* ensure collections created on upgrade
* Fix common misspellings
* Updated from global requirements
* refuse to post sample which is not supported
* Enable collector to requeue samples when enabled
* drop deprecated novaclient.v1_1
* exclude precise metaquery in query field
* Imported Translations from Transifex
* remove log message when process notification
* Add gabbi tests for resources
* Fix typos and format in docstrings in http dispatcher
* add ability to dispatch events to http target
* doc: fix class name
* add ability to publish to multiple topics
* make field and value attributes mandatory in API Query
* Fix db2 upgrade in multi-thread run issue
* Add memory.resident libvirt meter for Ceilometer
* Update reference
* Check the namespaces duplication for ceilometer-polling
* Add gabbi tests to explore the Meter and MetersControllers
* Imported Translations from Transifex
* mysql doesn't understand intersect
* order traits returned within events
* add network, kv-store, and http events
* Add support for additional identity events
* Add a Kafka publisher as a Ceilometer publisher
* Fix response POST /v2/meters/(meter_name) to 201 status
* Attempt to set user_id for identity events
* Switch to oslo.policy 0.3.0
* normalise timestamp in query
* Add more power and thermal data
* Updated from global requirements
* Fix formatting error in licence
* Added option to allow sample expiration more frequently
* add option to store raw notification
* use mongodb distinct
* remove event_types ordering assumption
* Add gabbi tests to cover the SamplesController
* api: fix alarm creation if time_constraint is null
* fix log message format in event.storage.impl_sqlalchemy
* Remove duplications from docco
* Tidy up clean-samples.yaml
* Fix a few typos in the docs
* use default trait type in event list query
* fix wrong string format in libvirt inspector
* create a developer section and refactor
* Do not default pecan_debug to CONF.debug
* Adding Gabbi Tests to Events API
* fix config opts in objectstore.rgw
* Updated from global requirements
* support time to live on event database for sql backend
* add an option to disable non-metric meters
* add missing objectstore entry points
* Initial gabbi testing for alarms
* reorganise architecture page
* Add ceph object storage meters
* Use oslo_config choices support
* fix inline multiple assignment
* alarming: add gnocchi alarm rules
* Protect agent startup from import errors in plugins
* Revert "Add ceph object storage meters"
* api: move alarm rules into they directory
* compress events notes
* Destroy fixture database after each gabbi TestSuite
* Fix unittests for supporting py-pgsql env
* Adding links API and CLI query examples
* correct column types in events
* Be explicit about using /tmp for temporary datafiles
* Patch for fixing hardware.memory.used metric
* Add ceph object storage meters
* [PostgreSQL] Fix regexp operator
* Add clean_exit for py-pgsql unit tests
* modify events sql schema to reduce empty columns
* Remove duplicated resource when pollster polling
* check metering_connection attribute by default
* unicode error in event converter
* cleanup measurements page
* api: add missing combination_rule field in sample
* Fix test case of self-disabled pollster
* update event architecture diagram
* use configured max_retries and retry_interval for database connection
* Updated from global requirements
* Making utilization the default spelling
* Add Disk Meters for ceilometer
* correctly leave group when process is stopped
* Updated from global requirements
* enable oslo namespace check for ceilometer project
* Add doc for version list API
* Enabling self-disabled pollster
* Use werkzeug to run the developement API server
* Imported Translations from Transifex
* switch to oslo_serialization
* move non-essential libs to test-requirements
* Validate default values in config
* fix the value of query_spec.maxSample to advoid to be zero
* clean up to use common service code
* Add more sql test scenarios
* [SQLalchemy] Add regex to complex queries
* Fix duplication in sinks names
* metering data ttl sql backend breaks resource metadata
* Refactor unit test code for disk pollsters
* start recording error notifications
* Remove no_resource hack for IPMI pollster
* Add local node resource for IPMI pollsters
* Use stevedore to load alarm rules api
* [MongoDB] Add regex to complex queries
* Imported Translations from Transifex
* support time to live on event database for MongoDB
* split api.controllers.v2
* add elasticsearch events db
* use debug value for pecan_debug default
* Shuffle agents to send request
* Updated from global requirements
* Adds disk iops metrics implementation in Hyper-V Inspector
* discovery: allow to discover all endpoints
* Declarative HTTP testing for the Ceilometer API
* add listener to pick up notification from ceilometermiddleware
* Drop deprecated namespace for oslo.rootwrap
* remove empty module tests.collector
* Add disk latency metrics implementation in Hyper-V Inspector
* add event listener to collector
* add notifier publisher for events
* enable event pipeline
* Imported Translations from Transifex
* deprecate swift middleware
* sync oslo and bring in versionutils
* Expose alarm severity in Alarm Model
* Hyper-V: Adds memory metrics implementation
* Remove mox from requirements
* Fix IPMI unit test to cover different platforms
* adjust import group order in db2 ut code
* add event pipeline
* remove unexistent module from doc/source/conf.py
* Upgrade to hacking 0.10
* Remove the Nova notifier
* Remove argparse from requirements
* [MongoDB] Improves get_meter_statistics method
* Fix docs repeating measuring units
* [DB2 nosql] Create TIMESTAMP type index for 'timestamp' field
* remove pytidylib and netifaces from tox.ini external dependency
* Avoid unnecessary API dependency on tooz & ceilometerclient
* Correct name of "ipmi" options group
* Fix Opencontrail pollster according the API changes
* enable tests.storage.test_impl_mongodb
* Remove lockfile from requirements
* Disable eventlet monkey-patching of DNS
* Expose vm's metadata to metrics
* Adding build folders & sorting gitignore
* Disable proxy in unit test case of test_bin
* Add Event and Trait API to document
* Refactor ipmi agent manager
* Use alarm's evaluation periods in sufficient test
* Use oslo_config instead of deprecated oslo.config
* Avoid executing ipmitool in IPMI unit test
* Updated from global requirements
* Add a direct to database publisher
* Fixed MagnetoDB metrics title
* Imported Translations from Transifex
* Fix incorrect test case name in test_net.py
* Updated from global requirements
* notification agent missing CONF option
* switch to oslo_i18n
* Use right function to create extension list for agent test
* Imported Translations from Transifex
* Add an exchange for Zaqar in profiler notification plugin
* Remove unused pecan configuration options
* Updated from global requirements
* Use oslo_utils instead of deprecated oslo.utils
* Match the meter names for network services
* stop using private timeutils attribute
* Update measurement docs for network services
* Catch exception when evaluate single alarm
* Return a meaningful value or raise an excpetion for libvirt
* Imported Translations from Transifex
* make transformers optional in pipeline
* Added metering for magnetodb
* Add release notes URL for Juno
* Fix release notes URL for Icehouse
* remove unnecessary str method when log messages
* Revert "Remove Sphinx from py33 requirements"
* untie pipeline manager from samples
* reset listeners on agent refresh
* Remove inspect_instances method from virt
* Optimize resource list query
* Synchronize Python 3 requirements
* Remove unnecessary import_opt|group
* Add test data generator via oslo messaging
* Check to skip to poll and publish when no resource
* Add oslo.concurrency module to tox --env genconfig
* add glance events
* add cinder events
* Manual update from global requirements
* Add cmd.polling.CLI_OPTS to option list
* Ignore ceilometer.conf
* Switch to oslo.context library
* Revert "Skip to poll and publish when no resources found"
* Added missing measurements and corrected errors in doc
* Remove Sphinx from py33 requirements
* Clean up bin directory
* Improve tools/make_test_data.sh correctness
* ensure unique pipeline names
* implement notification coordination
* Make methods static where possible (except openstack.common)
* Fix docs to suit merged compute/central agents concept
* Drop anyjson
* Move central agent code to the polling agent module
* RBAC Support for Ceilometer API Implementation
* [SQLalchemy] Add groupby ability resource_metadata
* Improve links in config docs
* Make LBaaS total_connections cumulative
* remove useless looping in pipeline
* Encompassing one source pollsters with common context
* Modify tests to support ordering of wsme types
* Make compute discovery pollster-based, not agent-level
* Add docs about volume/snapshot measurements
* Port to graduated library oslo.i18n
* Retry to connect database when DB2 or mongodb is restarted
* Updated from global requirements
* Standardize timestamp fields of ceilometer API
* Workflow documentation is now in infra-manual
* Add alarm_name field to alarm notification
* Updated from global requirements
* Rely on VM UUID to fetch metrics in libvirt
* Imported Translations from Transifex
* Initializing a longer resource id in DB2 nosql backend
* Sync oslo-incubator code to latest
* ensure unique list of consumers created
* fix import oslo.concurrency issue
* Add some rally scenarios
* Do not print snmpd password in logs
* Miniscule typo in metering_connection help string
* add http dispatcher
* [MongoDB] Add groupby ability on resource_metadata
* [MongoDB] Fix bug with 'bad' chars in metadatas keys
* Override retry_interval in MongoAutoReconnectTest
* Exclude tools/lintstack.head.py for pep8 check
* Add encoding of rows and qualifiers in impl_hbase
* Database.max_retries only override on sqlalchemy side
* Support to capture network services notifications
* Internal error with period overflow
* Remove Python 2.6 classifier
* Enable pep8 on ./tools directory
* Imported Translations from Transifex
* Fixes Hyper-V Inspector disk metrics cache issue
* fix swift middleware parsing
* Fix order of arguments in assertEqual
* Updated from global requirements
* Adapting pylint runner to the new message format
* Validate AdvEnum & return an InvalidInput on error
* add sahara and heat events
* add keystone events to definitions
* Add timeout to all http requests
* [MongoDB] Refactor time to live feature
* transform samples only when transformers exist
* Updated from global requirements
* Remove module not really used by Ceilometer
* Switch to oslo.concurrency
* Skip to poll and publish when no resources found
* Change event type for identity trust notifications
* Add mysql and postgresql in tox for debug env
* Add new notifications types for volumes/snapshots
* Add encoding to keys in compute_signature
* Tests for system and network aggregate pollsters
* Add bandwidth to measurements
* Fix wrong example of capabilities
* Correct the mongodb_replica_set option's description
* Alarms listing based on "timestamp"
* Use 'pg_ctl' utility to start and stop database
* Correct alarm timestamp field in unittest code
* Refactor kwapi unit test
* Remove duplicated config doc
* VMware: Enable VMware inspector to support any port
* Clean event method difinition in meter storage base
* Fix some nits or typos found by chance
* Add Sample ReST API path in webapi document
* Enable filter alarms by their type
* Fix storage.hbase.util.prepare_key() for 32-bits system
* Add event storage for test_hbase_table_utils
* Add per device rate metrics for instances
* Fix hacking rule H305 imports not grouped correctly
* Add __repr__ method for sample.Sample
* remove ordereddict requirement
* Improve manual.rst file
* Imported Translations from Transifex
* Fix columns migrating for PostgreSQL
* Updated from global requirements
* Updated from global requirements
* [MongoDB] Fix bug with reconnection to new master node
* Updated from global requirements
* support request-id
* Update coverage job to references correct file
* remove reference to model in migration
* Use oslo_debug_helper and remove our own version
* Allow collector service database connection retry
* refresh ceilometer architecture documentation
* Edits assert methods
* Adds memory stats meter to libvirt inspector
* Edits assert methods
* Edits assert methods
* Edits assert methods
* Edits assert method
* Imported Translations from Transifex
* Imported Translations from Transifex
* Updated from global requirements
* add script to generate test event data
* Handle poorly formed individual sensor readings
* refactor hbase storage code
* Avoid clobbering existing class definition
* Hoist duplicated AlarmService initialization to super
* Clarify deprecation comment to be accurate
* Work toward Python 3.4 support and testing
* Fix recording failure for system pollster
* sync and clean up oslo
* Add missing notification options to the documentation
* Add missing alarm options to the documentation
* Add oslo.db to config generator
* Add missed control exchange options to the documentation
* Add coordination related options to the documentation
* Add missing collector options to the documentation
* switch to oslo-config-generator
* Edit docs for docs.opentack.org/developer/
* Add oslo.db to config generator
* Fix signature validation failure when using qpid message queue
* clean capabilities
* move db2 and mongo driver to event tree
* move sql event driver to event tree
* move hbase event driver to event tree
* Sets default encoding for PostgreSQL testing
* update database dispatcher to use events db
* Add role assignment notifications for identity
* add mailmap to avoid dup of authors
* Add user_metadata to network samples
* Fix recording failure for system pollster
* Manually updated translations
* Updated from global requirements
* Creates one database per sql test
* Adds pylint check for critical error in new patches
* Fix neutron client to catch 404 exceptions
* Fix OrderedDict usage for Python 2.6
* Include a 'node' key and value in ipmi metadata
* clean path in swift middleware
* Implement redesigned separator in names of columns in HBase
* [HBase] Add migration script for new row separate design
* Imported Translations from Transifex
* Include a 'node' key and value in ipmi metadata
* Updated from global requirements
* Run unit tests against PostgreSQL
* create skeleton files for event storage backends
* Imported Translations from Transifex
* isolate event storage models
* Fix neutron client to catch 404 exceptions
* Run unit tests against MySQL
* Updated from global requirements
* Correct JSON-based query examples in documentation
* Open Kilo development
* Add cfg.CONF.import_group for service_credentials
* Fix OrderedDict usage for Python 2.6
* clean path in swift middleware
* Partition static resources defined in pipeline.yaml
* Per-source separation of static resources & discovery
* dbsync: Acknowledge 'metering_connection' option
* Fix bug in the documentation
* Use oslo.msg retry API in rpc publisher
* Describe API versions
* Change compute agent recurring logs from INFO to DEBUG
* Fix bug with wrong bool opt value interpolation
* [HBase] Improves speed of unit tests on real HBase backend
* Imported Translations from Transifex
* Removed unused abc meta class
* update references to auth_token middleware
* clean up swift middleware to avoid unicode errors
* [HBase] Catch AlreadyExists error in Connection upgrade
* Use None instead of mutables in method params default values
* Updated from global requirements
* Enable to get service types from configuration file
* test db2 driver code
* Docs: Add description of pipeline discovery section
* Typo "possibilites" should be "possibilities"
* Modified docs to update DevStack's config filename
* Add an API configuration section to docs
* Tune up mod_wsgi settings in example configuration
* Allow pecan debug middleware to be turned off
* Provide __repr__ for SampleFilter
* Eliminate unnecessary search for test cases
* Switch to a custom NotImplementedError
* minimise ceilometer memory usage
* Partition swift pollster resources by tenant
* Add IPMI pollster
* Add IPMI support
* Stop using intersphinx
* Use central agent manager's keystone token in discoveries
* Handle invalid JSON filters from the input gracefully
* Sync jsonutils for namedtuple_as_object fix
* ceilometer spamming syslog
* Timestamp bounds need not be tight (per ceilometer 1288372)
* Allow to pass dict from resource discovery
* fix network discovery meters
* switch to sqlalchemy core
* Imported Translations from Transifex
* Improve the timestamp validation of ceilometer API
* Update docs with Sahara notifications configuration
* Migrate the rest of the central agent pollsters to use discoveries
* Add documentation for implemented identity meters
* Fix tests with testtools>=0.9.39
* Document the standard for PaaS service notifications
* Returns 401 when unauthorized project access occurs
* Adding another set of hardware metrics
* normalise resource data
* warn against sorting requirements
* Add validate alarm_actions schema in alarm API
* Fix help strings
* Imported Translations from Transifex
* Switch partitioned alarm evaluation to a hash-based approach
* Central agent work-load partitioning
* collector: Allows to requeue a sample
* Typo fixed
* Switch to oslo.serialization
* Document pipeline publishers configuration
* Alarm: Use stevedore to load the service class
* Enhance compute diskio tests to handle multi instance
* Adding comparison operators in query for event traits
* XenAPI support: Update measurements documentation
* update requirements
* add documentation for setting up api pipeline
* Permit usage of notifications for metering
* XenAPI support: Disk rates
* XenAPI support: Changes for networking metrics
* XenAPI support: Memory Usage
* XenAPI support: Changes for cpu_util
* XenAPI support: List the instances
* Rebase hardware pollsters to use new inspector interface
* Switch to use oslo.db
* Remove oslo middleware
* Adding quotas on alarms
* Add an exchange for Trove in profiler notification plugin
* Simplify chained comparisons
* In-code comments should start with `#`, not with `"""`
* Remove redundant parentheses
* skip polls if service is not registered
* re-add hashseed to avoid gate error
* Switch to oslo.utils
* Switch to oslotest
* Handle sqlalchemy connection strings with drivers
* Rewrite list creation as a list literal
* Rewrite dictionary creation as a dictionary literal
* Triple double-quoted strings should be used for docstrings
* Add upgrading alarm storage in dbsync
* Improving of configuration.rst
* Fix typos in transformer docstrings
* Update tox.ini pep8 config to ignore i18n functions
* Added new hardware inspector interface
* compute: fix wrong test assertion
* sync olso-incubator code
* VMware: Support secret host_password option
* refactor filter code in sql backend
* Support for per disk volume measurements
* Use a FakeRequest object to test middleware
* Imported Translations from Transifex
* Improve api_paste_config file searching
* [Hbase] Add column for source filter in _get_meter_samples
* Issue one SQL statement per execute() call
* Allow tests to run outside tox
* [HBase] Refactor hbase.utils
* Set page size when Glance API request is called
* Adding init into tools folder
* Enhancing the make_test_data script
* correct DB2 installation supported features documentation
* Avoid duplication of discovery for multi-sink sources
* Improve performance of libvirt inspector requests
* Documented Stevedore usage and source details
* Add notifications for identity authenticate events
* Add message translate module in vmware inspector
* Handle Cinder attach and detach notifications
* [HBase] Improve uniqueness for row in meter table
* Doc enhancement for API service deployment with mod_wsgi
* Update documentation for new transformer
* Add the arithmetic transformer endpoint to setup.cfg
* Imported Translations from Transifex
* Fix unit for vpn connection metric
* Debug env for tox
* Change spelling mistakes
* Use auth_token from keystonemiddleware
* Fix dict and set order related issues in tests
* Fix listener for update.start notifications
* Sahara integration with Ceilometer
* Add notifications for identity CRUD events
* Extracting make_resource_metadata method
* Fix make_test_data tools script
* Add cumulative and gauge to aggregator transformer
* Enable some tests against py33
* Remove --tmpdir from mktemp
* Replace dict.iteritems() with six.iteritems(dict)
* Replace iterator.next() with next(iterator)
* Fix aggregator flush method
* Automatic discovery of TripleO Overcloud hardware
* Set python hash seed to 0 in tox.ini
* Don't override the original notification message
* Remove ConnectionProxy temporary class
* Move sqlalchemy alarms driver code to alarm tree
* basestring replaced with six.string_types
* Correct misspelled words
* Add retry function for alarm REST notifier
* Move hbase alarms driver code to alarm tree
* Update measurement docs for FWaaS
* Update measurement docs for VPNaaS
* Follow up fixes to network services pollsters
* Updated from global requirements
* Implement consuming ipmi notifications from Ironic
* Support for metering FWaaS
* Adds Content-Type to alarm REST notifier
* Multi meter arithmetic transformer
* Remove redudent space in doc string
* Use None instead of mutables in test method params defaults
* Add support for metering VPNaaS
* Use resource discovery for Network Services
* Change of get_events and get_traits method in MongoDB and Hbase
* Fix two out-dated links in doc
* Move log alarms driver code to alarm tree
* Separate the console scripts
* clean up event model
* improve expirer performance for sql backend
* Move mongodb/db2 alarms driver code to alarm tree
* Allow to have different DB for alarm and metering
* Replace datetime of time_constraints by aware object
* Sync oslo log module and its dependencies
* Use hmac.compare_digest to compare signature
* Add testcase for multiple discovery-driven sources
* Fixes aggregator transformer timestamp and user input handling
* Improves pipeline transformer documentation
* Fix incorrect use of timestamp in test
* Add keystone control exchange
* Fix call to meter-list in measurements doc
* Remove redundant parentheses
* [Mongodb] Implement events on Mongodb and DB2
* Fix typos in code comments & docstrings
* Make the error message of alarm-not-found clear
* Fix SQL exception getting statitics with metaquery
* Remove docutils pin
* update default_log_levels set by ceilometer
* Fix annoying typo in partition coordinator test
* Transform sample_cnt type to int
* Remove useless sources.json
* Fix H405 violations and re-enable gating
* Fix H904 violations and re-enable gating
* Fix H307 violations and re-enable gating
* Fix the section name in CONTRIBUTING.rst
* Added osprofiler notifications plugin
* Improve a bit performance of Ceilometer
* Revert "Align to openstack python package index mirror"
* Fix aggregator _get_unique_key method
* Remove meter hardware.network.bandwidth.bytes
* Fix F402 violations and re-enable gating
* Fix E265 violations and re-enable gating
* Fix E251 violations and re-enable gating
* Fix E128 violations and re-enable gating
* Fix E126,H104 violations and re-enable gating
* Bump hacking to 0.9.x
* Fixed various import issues exposed by unittest
* use urlparse from six
* clean up sample index
* Fix HBase available capabilities list
* Updated from global requirements
* VMware:Update the ceilometer doc with VMware opts
* Handle non-ascii character in meter name
* Add log output of "x-openstack-request-id" from nova
* Imported Translations from Transifex
* fix StringIO errors in unit test
* Fix hacking rule 302 and enable it
* Imported Translations from Transifex
* sync oslo code
* Fixes ceilometer-compute service start failure
* Reenables the testr per test timeout
* Avoid reading real config files in unit test
* Clean up oslo.middleware.{audit,notifier}
* Use hacking from test-requirements
* Splits hbase storage code base
* Splits mongo storage code base
* Separate alarm storage models from other models
* Iterates swift response earlier to get the correct status
* Fix messaging.get_transport caching
* Fix method mocked in a test
* Don't keep a single global TRANSPORT object
* Clean up .gitignore
* Fix Sphinx directive name in session.py
* Fix list of modules not included in auto-gen docs
* Downgrade publisher logging to debug level again
* remove default=None for config options
* [HBase] get_resource optimization
* Fix incorrect trait initialization
* Remove unused logging in tests
* Revert "Fix the floatingip pollster"
* Remove low-value logging from publication codepath
* Fix LBaaS connection meter docs
* Fix the meter type for LB Bytes
* Adding alarm list filtering by state and meter
* Adds caches for image and flavor in compute agent
* [HBase] Implement events on HBase
* Skipping central agent pollster when keystone not available
* Respect $TMPDIR environment variable to run tests
* Fixed unit test TestRealNotification
* Update Measurement Docs for LBaaS
* Metering LoadBalancer as a Service
* Removes per test testr timeout
* Change pipeline_manager to instance attribute in hooks
* Change using of limit argument in get_sample
* Refactor tests to remove direct access to test DBManagers
* Fix notification for NotImplemented record_events
* Add missing explicit cfg option import
* Fix ceilometer.alarm.notifier.trust import
* Use TYPE_GAUGE rather than TYPE_CUMULATIVE
* Update doc for sample config file issue
* Corrects a flaw in the treatment of swift endpoints
* use LOG instead of logger as name for the Logger object
* Fix doc gate job false success
* Improve performance of api requests with hbase scan
* Add new 'storage': {'production_ready': True} capability
* Clean tox.ini
* Remove (c) and remove unnecessary encoding lines
* Fix testing gate due to new keystoneclient release
* Ignore the generated file ceilometer.conf.sample
* Update the copyright date in doc
* Updated from global requirements
* reconnect to mongodb on connection failure
* refactor sql backend to improve write speed
* Don't rely on oslomsg configuration options
* replaced unicode() with six.text_type()
* Synced jsonutils from oslo-incubator
* Fix the floatingip pollster
* Fix project authorization check
* Update testrepository configuration
* Implemented metering for Cinder's snapshots
* Use joins instead of subqueries for metadata filtering
* Use None instead of mutables in method params defaults
* Remove all mostly untranslated PO files
* switch SplitResult to use six
* Remove unused db code due to api v1 drop
* Updated from global requirements
* oslo.messaging context must be a dict
* Drop deprecated api v1
* Fix network notifications of neutron bulk creation
* mongo: remove _id in inserted alarm changes
* Clean up openstack-common.conf
* Revert "oslo.messaging context must be a dict"
* Correct class when stopping partitioned alarm eval svc
* oslo.messaging context must be a dict
* Corrections of spelling, rephrasing for clarity
* Adapt failing tests for latest wsme version
* Removed StorageEngine class and it's hierarchy
* Correcting formatting and adding period in measurement doc
* Initialize dispatcher manager in event endpoint
* Replaced CONF object with url in storage engine creation
* Synced jsonutils from oslo-incubator
* Remove gettextutils._ imports where they are not used
* Remove "# noqa" leftovers for gettextutils._
* transformer: Add aggregator transformer
* Remove conversion debug message
* Fix the return of statistic with getting no sample
* Remove eventlet.sleep(0) in collector tests
* Don't allow queries with 'IN' predicate with an empty sequence
* Check if samples returned by get_sample_data are not None
* Opencontrail network statistics driver
* Add a alarm notification using trusts
* Replace hard coded WSGI application creation
* Describe storage backends in the collector installation guide
* Made get_capabilities a classmethod instead of object method
* Disable reverse dns lookup
* Consume notif. from multiple message bus
* Use NotificationPlugin as an oslo.msg endpoint
* Improve combination rule validation
* Remove ceilometer.conf.sample
* Use known protocol scheme in keystone tests
* cleanup virt pollster code
* Add encoding argument to deserialising udp packets in collector
* Made get_engine method module-private
* Make entities (Resource, User, Project) able to store lists
* Remove duplicate alarm from alarm_ids
* More accurate meter name and unit for host load averages
* Replace oslo.rpc by oslo.messaging
* Fix a response header bug in the error middleware
* Remove unnecessary escape character in string format
* Optimize checks to set image properties in metadata
* fix statistics query in postgres
* Removed useless code from __init__ method
* Refactored fake connection URL classes
* Replace assert statements with assert methods
* Removes direct access of timeutils.override_time
* Disable specifying alarm itself in combination rule
* Include instance state in metadata
* Allowed nested resource metadata in POST'd samples
* Sync oslo-incubator code
* Updated from global requirements
* Refactor the DB implementation of Capabilities API
* Fix Jenkins translation jobs
* Align to openstack python package index mirror
* User a more accurate max_delay for reconnects
* Open Juno development
* Imported Translations from Transifex
* Add note on aggregate duplication to API docco
* Use ConectionPool instead of one Connection in HBase
* remove dump tables from previous migrations
* De-dupe selectable aggregate list in statistics API
* ensure dispatcher service is configured before rpc
* improve performance of resource-list in sql
* SSL errors thrown with Postgres on multi workers
* Remove escape character in string format
* Verify user/project ID for alarm created by non-admin user
* enable a single worker by default
* Fix ceilometer.conf.sample mismatch
* Metadata in compute.instance.exists fix
* Fix order of arguments in assertEquals
* Documenting hypervisor support for nova meters
* Ensure idempotency of cardinality reduction in mongo
* VMware vSphere: Improve the accuracy of queried samples
* Use swob instead of webob in swift unit tests
* Disable oslo.messaging debug logs
* Fix validation error for invalid field name in simple query
* fix create_or_update logic to avoid rollbacks
* Avoid swallowing AssertionError in test skipping logic
* Fix hardware pollster to inspect multiple resources
* spawn multiple workers in services
* Install global lazy _()
* Fixes Hyper-V metrics units
* Ensure intended indices on project_id are created for mongo
* Fix the type of the disk IO rate measurements
* Change the sample_type from tuple to string
* Fix order of arguments in assertEquals
* Ensure alarm rule conform to alarm type
* insecure flag added to novaclient
* Fixes duplicated names in alarm time constraints
* Use the list when get information from libvirt
* Eventlet monkeypatch must be done before anything
* 028 migration script incorrectly skips over section
* Fix bug in get_capabilities behavior in DB drivers
* Added documentation for selectable aggregates
* Make sure use IPv6 sockets for ceilometer in IPv6 environment
* VMware vSphere: Bug fixes
* Ensure insecure config option propagated by alarm evaluator
* Fix order of arguments in assertEquals
* Fix order of arguments in assertEquals
* Fix order of arguments in assertEquals
* Rationalize get_resources for mongodb
* Ensure insecure config option propagated by alarm service
* add host meters to doc
* Add field translation to complex query from OldSample to Sample
* Extend test case to cover old alarm style conversion
* Updated doc with debug instructions
* Refactored the way how testscenarios tests are run
* Corrected the sample names in hardware pollsters
* Prevent alarm_id in query field of getting history
* Make ceilometer work with sqla 0.9.x
* Implements monitoring-network-from-opendaylight
* Add user-supplied arguments in log_handler
* VMware vSphere support: Disk rates
* Fix updating alarm can specify existing alarm name
* Changes for networking metrics support for vSphere
* VMware vSphere: Changes for cpu_util
* VMware vSphere support: Memory Usage
* Fix broken statistics in sqlalchemy
* Fixes Hyper-V Inspector network metrics values
* Set storage engine for the trait_type table
* Enable monkeypatch for select module
* Rename id to alarm_id of Alarm in SqlAlchemy
* Fix some spelling mistakes and a incorrect url
* Skip central agent interval_task when keystone fails
* Ensure user metadata mapped for instance notifications
* Per pipeline pluggable resource discovery
* Wider selection of aggregates for sqlalchemy
* Wider selection of aggregates for mongodb
* Adds time constraints to alarms
* Remove code duplication Part 3
* Decouple source and sink configuration for pipelines
* Selectable aggregate support in mongodb
* Selectable aggregation functions for statistics
* Add simple capabilities API
* Removed global state modification by api test
* VMware vSphere support: Performance Mgr APIs
* Fix typo
* move databases to test requirements
* Make recording and scanning data more determined
* Implements "not" operator for complex query
* Implements metadata query for complex query feature
* Alarms support in HBase Part 2
* Alarm support in HBase Part 1
* Remove unused variable
* Added hardware pollsters for the central agent
* Added hardware agent's inspector and snmp implementation
* Updated from global requirements
* Pluggable resource discovery for agents
* Remove code duplication Part 2
* Imported Translations from Transifex
* remove audit logging on flush
* Tolerate absent recorded_at on older mongo/db2 samples
* api: export recorded_at in returned samples
* Fix the way how metadata is stored in HBase
* Set default log level of iso8601 to WARN
* Sync latest config file generator from oslo-incubator
* Fix typo on testing doc page
* Remove code duplication
* sample table contains redundant/duplicate data
* rename meter table to sample
* storage: store recording timestamp
* Fixed spelling error in Ceilometer
* Adds doc string to query validate functions in V2 API
* Updated from global requirements
* Remove code that works around a (now-resolved) bug in pecan
* Fix missing source field content on /v2/samples API
* Refactor timestamp existence validation in V2 API
* Use the module units to refer bytes type
* sync units.py from oslo to ceilometer
* Add comments for _build_paginate_query
* Implements monitoring-network
* Handle Heat notifications for stack CRUD
* Alembic migrations not tested
* Modify the discription of combination alarm
* check domain state before inspecting nics/disks
* Adds gettextutils module in converter
* Keep py3.X compatibility for urllib.urlencode
* Added missing import
* Removed useless prints that pollute tests log
* Implements in operator for complex query functionality
* Implements field validation for complex query functionality
* allow hacking to set dependencies
* Implements complex query functionality for alarm history
* Implements complex query functionality for alarms
* Remove None for dict.get()
* Replace assertEqual(None, *) with assertIsNone in tests
* Update notification_driver
* Switch over to oslosphinx
* Fix some flaws in ceilometer docstrings
* Rename Openstack to OpenStack
* Remove start index 0 in range()
* Updated from global requirements
* Remove blank line in docstring
* Use six.moves.urllib.parse instead of urlparse
* Propogate cacert and insecure flags to glanceclient
* Test case for creating an alarm without auth headers
* Refactored run-tests script
* Implements complex query functionality for samples
* fix column name and alignment
* Remove tox locale overrides
* Updated from global requirements
* Adds flavor_id in the nova_notifier
* Improve help strings
* service: re-enable eventlet just for sockets
* Fixes invalid key in Neutron notifications
* Replace BoundedInt with WSME's IntegerType
* Replace 'Ceilometer' by 'Telemetry' in the generated doc
* Doc: Add OldSample to v2.rst
* Fixing some simple documentation typos
* Updated from global requirements
* Fix for a simple typo
* Replace 'a alarm' by 'an alarm'
* Move ceilometer-send-counter to a console script
* sync oslo common code
* Handle engine creation inside of Connection object
* Adds additional details to alarm notifications
* Fix formating of compute-nova measurements table
* Fix string-to-boolean casting in queries
* nova notifier: disable tests + update sample conf
* Update oslo
* Refactored session access
* Fix the py27 failure because of "ephemeral_key_uuid" error
* Correct a misuse of RestController in the Event API
* Fix docs on what an instance meter represents
* Fix measurement docs to correctly represent Existance meters
* samples: fix test case status code check
* Replace non-ascii symbols in docs
* Use swift master
* Add table prefix for unit tests with hbase
* Add documentation for pipeline configuration
* Remove unnecessary code from alarm test
* Updated from global requirements
* Use stevedore's make_test_instance
* use common code for migrations
* Use explicit http error code for api v2
* Clean .gitignore
* Remove unused db engine variable in api
* Revert "Ensure we are not exhausting the sqlalchemy pool"
* eventlet: stop monkey patching
* Update dev docs to include notification-agent
* Change meter_id to meter_name in generated docs
* Correct spelling of logger for dispatcher.file
* Fix some typos in architecture doc
* Drop foreign key contraints of alarm in sqlalchemy
* Re-enable lazy translation
* Sync gettextutils from Oslo
* Fix wrong doc string for meter type
* Fix recursive_keypairs output
* Added abc.ABCMeta metaclass for abstract classes
* Removes use of timeutils.set_time_override
* tests: kill all started processes on exit
* Exclude weak datapoints from alarm threshold evaluation
* Move enable_acl and debug config to ceilometer.conf
* Fix the Alarm documentation of Web API V2
* StringIO compatibility for python3
* Set the SQL Float precision
* Convert alarm timestamp to PrecisionTimestamp
* use six.move.xrange replace xrange
* Exit expirer earlier if db-ttl is disabled
* Added resources support in pollster's interface
* Improve consistency of help strings
* assertTrue(isinstance) replace by assertIsInstance
* Return trait type from Event api
* Add new rate-based disk and network pipelines
* Name and unit mapping for rate_of_change transformer
* Update oslo
* Remove dependencies on pep8, pyflakes and flake8
* Implement the /v2/samples/ API
* Fix to handle null threshold_rule values
* Use DEFAULT section for dispatcher in doc
* Insertion in HBase should be fixed
* Trivial typo
* Update ceilometer.conf.sample
* Fix use the fact that empty sequences are false
* Remove unused imports
* Replace mongo aggregation with plain ol' map-reduce
* Remove redundant meter (name,type,unit) tuples from Resource model
* Fix work of udp publisher
* tests: pass /dev/null as config for mongod
* requirements: drop netaddr
* tests: allow to skip if no database URL
* Fix to tackle instances without an image assigned
* Check for pep8 E226 and E24
* Fixed spelling mistake
* AlarmChange definition added to doc/source/webapi/v2.rst
* 1st & last sample timestamps in Resource representation
* Avoid false negatives on message signature comparison
* cacert is not picked up correctly by alarm services
* Change endpoint_type parameter
* Utilizes assertIsNone and assertIsNotNone
* Add missing gettextutils import to ceilometer.storage.base
* Remove redundant code in nova_client.Client
* Allow customized reseller_prefix in Ceilometer middleware for Swift
* Fix broken i18n support
* Empty files should no longer contain copyright
* Add Event API
* Ensure we are not exhausting the sqlalchemy pool
* Add new meters for swift
* Sync config generator workaround from oslo
* storage: factorize not implemented methods
* Don't assume alarms are returned in insert order
* Correct env variable in file oslo.config.generator.rc
* Handle the metrics sent by nova notifier
* Add a wadl target to the documentation
* Sync config generator from oslo-incubator
* Convert event timestamp to PrecisionTimestamp
* Add metadata query validation limitation
* Ensure the correct error message is displayed
* Imported Translations from Transifex
* Move sphinxcontrib-httpdomain to test-requirements
* Ensure that the user/project exist on alarm update
* api: raise ClientSideError rather than ValueError
* Implement the /v2/sample API
* service: fix service alive checking
* Oslo sync to recover from db2 server disconnects
* Event Storage Layer
* config: specify a template for mktemp
* test code should be excluded from test coverage summary
* doc: remove note about Nova plugin framework
* doc: fix formatting of alarm action types
* Updated from global requirements
* Add configuration-driven conversion to Events
* add newly added constraints to expire clear_expired_metering_data
* fix unit
* Add import for publisher_rpc option
* add more test cases to improve the test code coverage #5
* Create a shared queue for QPID topic consumers
* Properly reconnect subscribing clients when QPID broker restarts
* Don't need session.flush in context managed by session
* sql migration error in 020_add_metadata_tables
* Remove rpc service from agent manager
* Imported Translations from Transifex
* organise requirements files
* Add a Trait Type model and db table
* No module named MySQLdb bug
* Add a note about permissions to ceilometer logging directory
* sync with oslo-incubator
* Rename OpenStack Metering to OpenStack Telemetry
* update docs to adjust for naming change
* Add i18n warpping for all LOG messages
* Imported Translations from Transifex
* Removed unused method in compute agent manger
* connection is not close in migration script
* Fixed a bug in sql migration script 020
* Fixed nova notifier test
* Added resources definition in the pipeline
* Change metadata_int's value field to type bigint
* Avoid intermittent integrity error on alarm creation
* Simplify the dispatcher method prototype
* Use map_method from stevedore 0.12
* Remove the collector submodule
* Move dispatcher a level up
* Split collector
* Add a specialized Event Type model and db table
* Remove old sqlalchemy-migrate workaround
* Revert "Support building wheels (PEP-427)"
* full pep8 compliance (part 2)
* Selectively import RPC backend retry config
* Fixes Hyper-V Inspector disk metrics bug
* Imported Translations from Transifex
* full pep8 compliance (part1)
* Replace mox with mock in alarm,central,image tests
* Stop ignoring H506 errors
* Update hacking for real
* Replace mox with mock in tests.collector
* Replace mox with mock in publisher and pipeline
* Replace mox with mock in novaclient and compute
* Remove useless defined Exception in tests
* Support building wheels (PEP-427)
* Fixes Hyper-V Inspector cpu metrics bug
* Replace mox with mock in tests.storage
* Document user-defined metadata for swift samples
* Replace mox with mock in energy and objectstore
* Updated from global requirements
* Replace mox with mock in tests.api.v2
* Refactor API error handling
* make record_metering_data concurrency safe
* Move tests into ceilometer module
* Replace mox with mock in tests.api.v1
* Replace mox with mock in tests.api.v2.test_compute
* Corrected import order
* Use better predicates from testtools instead of plain assert
* Stop using openstack.common.exception
* Replace mox with mock in tests.network
* Replace mox with mocks in test_inspector
* Fix failing nova_tests tests
* Replace mox with mocks in tests.compute.pollsters
* Add an insecure option for Keystone client
* Sync log from oslo
* Cleanup tests.publisher tests
* mongodb, db2: do not print full URL in logs
* Use wsme ClientSideError to handle unicode string
* Use consistant cache key for swift pollster
* Fix the developer documentation of the alarm API
* Fix the default rpc policy value
* Allow Events without traits to be returned
* Replace tests.base part8
* Replace tests.base part7
* Replace tests.base part6
* Imported Translations from Transifex
* Imported Translations from Transifex
* Sync log_handler from Oslo
* Don't use sqlachemy Metadata as global var
* enable sql metadata query
* Replace tests.base part5
* Replace tests.base part4
* Imported Translations from Transifex
* Updated from global requirements
* Fix doc typo in volume meter description
* Updated from global requirements
* Add source to Resource API object
* compute: virt: Fix Instance creation
* Fix for get_resources with postgresql
* Updated from global requirements
* Add tests when admin set alarm owner to its own
* Replace tests.base part3
* Replace tests.base part2
* Replace tests.base part1
* Fix wrong using of Metadata in 15,16 migrations
* api: update for WSME 0.5b6 compliance
* Changes FakeMemcache to set token to expire on utcnow + 5 mins
* Change test case get_alarm_history_on_create
* Change alarm_history.detail to text type
* Add support for keystoneclient 0.4.0
* Ceilometer has no such project-list subcommand
* Avoid leaking admin-ness into combination alarms
* Updated from global requirements
* Avoid leaking admin-ness into threshold-oriented alarms
* Update Oslo
* Set python-six minimum version
* Ensure combination alarms can be evaluated
* Ensure combination alarm evaluator can be loaded
* Apply six for metaclass
* add more test cases to improve the test code coverage #6
* Update python-ceilometerclient lower bound to 1.0.6
* Imported Translations from Transifex
* add more test cases to improve the test code coverage #4
* db2 does not allow None as a key for user_id in user collection
* Start Icehouse development
* Imported Translations from Transifex
* Disable lazy translation
* Add notifications for alarm changes
* Updated from global requirements
* api: allow alarm creation for others project by admins
* assertEquals is deprecated, use assertEqual
* Imported Translations from Transifex
* update alarm service setup in dev doc
* Add bug number of some wsme issue
* api: remove useless comments
* issue an error log when cannot import libvirt
* add coverage config file to control module coverage report
* tests: fix rounding issue in timestamp comparison
* api: return 404 if a alarm is not found
* remove locals() for stringformat
* add more test cases to improve the test code coverage #3
* Remove extraneous vim configuration comments
* Return 401 when action is not authorized
* api: return 404 if a resource is not found
* keystone client changes in AuthProtocol made our test cases failing
* Don't load into alarms evaluators disabled alarms
* Remove MANIFEST.in
* Allow to get a disabled alarm
* Add example with return values in API v2 docs
* Avoid imposing alembic 6.0 requirement on all distros
* tests: fix places check for timestamp equality
* Don't publish samples if resource_id in missing
* Require oslo.config 1.2.0 final
* Don't send unuseful rpc alarm notification
* service: check that timestamps are almost equals
* Test the response body when deleting a alarm
* Change resource.resource_metadata to text type
* Adding region name to service credentials
* Fail tests early if mongod is not found
* add more test cases to improve the test code coverage #2
* add more test cases to improve the test code coverage #1
* Imported Translations from Transifex
* Replace OpenStack LLC with OpenStack Foundation
* Use built-in print() instead of print statement
* Simple alarm partitioning protocol based on AMQP fanout RPC
* Handle manually mandatory field
* Provide new API endpoint for alarm state
* Implement the combination evaluator
* Add alarm combination API
* Notify with string representation of alarm reason
* Convert BoundedInt value from json into int
* Fix for timestamp precision in SQLAlchemy
* Add source field to Meter model
* Refactor threshold evaluator
* Alarm API update
* Update requirements
* WSME 0.5b5 breaking unit tests
* Fix failed downgrade in migrations
* refactor db2 get_meter_statistics method to support mongodb and db2
* tests: import pipeline config
* Fix a tiny mistake in api doc
* collector-udp: use dispatcher rather than storage
* Imported Translations from Transifex
* Drop sitepackages=False from tox.ini
* Update sphinxcontrib-pecanwsme to 0.3
* Architecture enhancements
* Force MySQL to use InnoDB/utf8
* Update alembic requirement to 0.6.0 version
* Correctly output the sample content in the file publisher
* Pecan assuming meter names are extensions
* Handle inst not found exceptions in pollsters
* Catch exceptions from nova client in poll_and_publish
* doc: fix storage backend features status
* Add timestamp filtering cases in storage tests
* Imported Translations from Transifex
* Use global openstack requirements
* Add group by statistics examples in API v2 docs
* Add docstrings to some methods
* add tests for _query_to_kwargs func
* validate counter_type when posting samples
* Include auth_token middleware in sample config
* Update config generator
* run-tests: fix MongoDB start wait
* Imported Translations from Transifex
* Fix handling of bad paths in Swift middleware
* Drop the *.create.start notification for Neutron
* Make the Swift-related doc more explicit
* Fix to return latest resource metadata
* Update the high level architecture
* Alarm history storage implementation for sqlalchemy
* Improve libvirt vnic parsing with missing mac!
* Handle missing libvirt vnic targets!
* Make type guessing for query args more robust
* add MAINTAINERS file
* nova_notifier: fix tests
* Update openstack.common.policy from oslo-incubator
* Clean-ups related to alarm history patches
* Improved MongoClient pooling to avoid out of connections error
* Disable the pymongo pooling feature for tests
* Fix wrong migrations
* Fixed nova notifier unit test
* Add group by statistics in API v2
* Update to tox 1.6 and setup.py develop
* Add query support to alarm history API
* Reject duplicate events
* Fixes a bug in Kwapi pollster
* alarm api: rename counter_name to meter_name
* Fixes service startup issue on Windows
* Handle volume.resize.* notifications
* Network: process metering reports from Neutron
* Alarm history storage implementation for mongodb
* Fix migration with fkeys
* Fixes two typos in this measurements.rst
* Add a fake UUID to Meter on API level
* Append /usr/sbin:/sbin to the path for searching mongodb
* Plug alarm history logic into the API
* Added upper version boundry for six
* db2 distinct call results are different from mongodb call
* Sync rpc from oslo-incubator
* Imported Translations from Transifex
* Add pagination parameter to the database backends of storage
* Base Alarm history persistence model
* Fix empty metadata issue of instance
* alarm: generate alarm_id in API
* Import middleware from Oslo
* Imported Translations from Transifex
* Adds group by statistics for MongoDB driver
* Fix wrong UniqueConstraint name
* Adds else and TODO in statistics storage tests
* Imported Translations from Transifex
* Extra indexes cleanup
* API FunctionalTest class lacks doc strings
* install manual last few sections format needs to be fixed
* api: update v1 for Flask >= 0.10
* Use system locale when Accept-Language header is not provided
* Adds Hyper-V compute inspector
* missing resource in middleware notification
* Support for wildcard in pipeline
* Refactored storage tests to use testscenarios
* doc: replace GitHub by git.openstack.org
* api: allow usage of resource_metadata in query
* Remove useless doc/requirements
* Fixes non-string metadata query issue
* rpc: reduce sleep time
* Move sqlachemy tests only in test_impl_sqlachemy
* Raise Error when pagination/groupby is missing
* Raise Error when pagination support is missing
* Use timeutils.utcnow in alarm threshold evaluation
* db2 support
* plugin: remove is_enabled
* Doc: improve doc about Nova measurements
* Storing events via dispatchers
* Imported Translations from Transifex
* ceilometer-agent-compute did not catch exception for disk error
* Change counter to sample in network tests
* Change counter to sample in objectstore tests
* Remove no more used code in test_notifier
* Change counter to sample vocable in cm.transformer
* Change counter to sample vocable in cm.publisher
* Change counter to sample vocable in cm.image
* Change counter to sample vocable in cm.compute
* Change counter to sample vocable in cm.energy
* Use samples vocable in cm.publisher.test
* Change counter to sample vocable in volume tests
* Change counter to sample vocable in api tests
* Add the source=None to from_notification
* Make RPCPublisher flush method threadsafe
* Enhance delayed message translation when _ is imported
* Remove use_greenlets argument to MongoClient
* Enable concurrency on nova notifier tests
* Imported Translations from Transifex
* Close database connection for alembic env
* Fix typo in 17738166b91 migration
* Don't call publisher without sample
* message_id is not allowed to be submitted via api
* Api V2 post sample refactoring
* Add SQLAlchemy implementation of groupby
* Fixes failed notification when deleting instance
* Reinitialize pipeline manager for service restart
* Sync gettextutils from oslo-incubator
* Doc: clearly state that one can filter on metadata
* Add HTTP request/reply samples
* Use new olso fixture in CM tests
* Imported Translations from Transifex
* Bump hacking to 0.7.0
* Fix the dict type metadata missing issue
* Raise error when period with negative value
* Imported Translations from Transifex
* Import missing gettext _
* Remove 'counter' occurences in pipeline
* Remove the mongo auth warning during tests
* Change the error message of resource listing in mongodb
* Change test_post_alarm case in test_alarm_scenarios
* Skeletal alarm history API
* Reorg alarms controller to facilitate history API
* Fix Jenkins failed due to missing _
* Fix nova test_notifier wrt new notifier API
* Remove counter occurences from documentation
* Updated from global requirements
* Fixes dict metadata query issue of HBase
* s/alarm/alarm_id/ in alarm notification
* Remove unused abstract class definitions
* Removed unused self.counters in storage test class
* Initial alarming documentation
* Include previous state in alarm notification
* Consume notification from the default queue
* Change meter.resource_metadata column type
* Remove MongoDB TTL support for MongoDB < 2.2
* Add first and last sample timestamp
* Use MongoDB aggregate to get resources list
* Fix resources/meters pagination test
* Handle more Nova and Neutron events
* Add support for API message localization
* Add the alarm id to the rest notifier body
* fix alarm notifier tests
* Sync gettextutils from oslo
* Fix generating coverage on MacOSX
* Use the new nova Instance class
* Return message_id in POSTed samples
* rpc: remove source argument from message conversion
* Remove source as a publisher argument
* Add repeat_actions to alarm
* Rename get_counters to get_samples
* Add pagination support for MongoDB
* Doc: measurements: add doc on Cinder/Swift config
* Update nova_client.py
* objectstore: trivial cleanup in _Base
* Add support for CA authentication in Keystone
* add unit attribute to statistics
* Fix notify method signature on LogAlarmNotifier
* Fix transformer's LOG TypeError
* Update openstack.common
* Fixes Hbase metadata query return wrong result
* Fix Hacking 0.6 warnings
* Make middleware.py Python 2.6 compatible
* Call alembic migrations after sqlalchemy-migrate
* Rename ceilometer.counter to ceilometer.sample
* Added separate MongoDB database for each test
* Relax OpenStack upper capping of client versions
* Refactored MongoDB connection pool to use weakrefs
* Centralized backends tests scenarios in one place
* Added tests to verify that local time is correctly handled
* Refactored impl_mongodb to use full connection url
* calling distinct on _id field against a collection is slow
* Use configured endpoint_type everywhere
* Allow use of local conductor
* Update nova configuration doc to use notify_on_state_change
* doc: how to inject user-defined data
* Add documentation on nova user defined metadata
* Refactored API V2 tests to use testscenarios
* Refactored API V1 tests to use testscenarios
* alarm: Per user setting to disable ssl verify
* alarm: Global setting to disable ssl verification
* Imported Translations from Transifex
* Implementation of the alarm RPCAlarmNotifier
* Always init cfg.CONF before running a test
* Sets storage_conn in CollectorService
* Remove replace/preserve logic from rate of change transformer
* storage: remove per-driver options
* hbase: do not register table_prefix as a global option
* mongodb: do not set replica_set as a global option
* Change nose to testr in the documentation
* Fixed timestamp creation in MongoDB mapreduce
* Ensure url is a string for requests.post
* Implement a https:// in REST alarm notification
* Implement dot in matching_metadata key for mongodb
* trailing slash in url causes 404 error
* Fix missing foreign keys
* Add cleanup migration for indexes
* Sync models with migrations
* Avoid dropping cpu_util for multiple instances
* doc: /statistics fields are not queryable (you cannot filter on them)
* fix resource_metadata failure missing image data
* Standardize on X-Project-Id over X-Tenant-Id
* Default to ctx user/project ID in sample POST API
* Multiple dispatcher enablement
* storage: fix clear/upgrade order
* Lose weight for Ceilometer log in verbose mode
* publisher.rpc: queing policies
* Remove useless mongodb connection pool comment
* Add index for db.meter by descending timestamp
* doc: add a bunch of functional examples for the API
* api: build the storage connection once and for all
* Fix the argument of UnknownArgument exception
* make publisher procedure call configurable
* Disable mongod prealloc, wait for it to start
* Added alembic migrations
* Allow to enable time to live on metering sample
* Implement a basic REST alarm notification
* Imported Translations from Transifex
* Ensure correct return code of run-tests.sh
* File based publisher
* Unset OS_xx variable before generate configuration
* Use run-tests.sh for tox coverage tests
* Emit cpu_util from transformer instead of pollster
* Allow simpler scale exprs in transformer.conversions
* Use a real MongoDB instance to run unit tests
* Allow to specify the endpoint type to use
* Rename README.md to README.rst
* Use correct hostname to get instances
* Provide CPU number as additional metadata
* Remove get_counter_names from the pollster plugins
* Sync SQLAlchemy models with migrations
* Transformer to measure rate of change
* Make sure plugins are named after their meters
* Break up the swift pollsters
* Split up the glance pollsters
* Make visual coding style consistent
* Separate power and energy pollsters
* Break up compute pollsters
* Implement a basic alarm notification service
* Optionally store Events in Collector
* Fix issue with pip installing oslo.config-1.2.0
* Transformer to convert between units
* publisher.rpc: make per counter topic optional
* ceilometer tests need to be enabled/cleaned
* Also accept timeout parameter in FakeMemCache
* Fix MongoDB backward compat wrt units
* Use oslo.sphinx and remove local copy of doc theme
* Reference setuptools and not distribute
* enable v2 api hbase tests
* Register all interesting events
* Unify Counter generation from notifications
* doc: enhance v2 examples
* Update glossary
* Imported Translations from Transifex
* Imported Translations from Transifex
* Filter query op:gt does not work as expected
* sqlalchemy: fix performance issue on get_meters()
* enable v2 api sqlalchemy tests
* Update compute vnic pollster to use cache
* Update compute CPU pollster to use cache
* Update compute disk I/O pollster to use cache
* update Quantum references to Neutron
* Update swift pollster to use cache
* Update kwapi pollster to use cache
* Update floating-ip pollster to use cache
* Update glance pollster to use cache
* Add pollster data cache
* Fix flake8 errors
* Update Oslo
* Enable Ceilometer to support mongodb replication set
* Fix return error when resource can't be found
* Simple service for singleton threshold eval
* Basic alarm threshold evaluation logic
* add metadata to nova_client results
* Bring in oslo-common rpc ack() changes
* Pin the keystone client version
* Fix auth logic for PUT /v2/alarms
* Imported Translations from Transifex
* Change period type in alarms API to int
* mongodb: fix limit value not being an integer
* Check that the config file sample is always up to date
* api: enable v2 tests on SQLAlchemy & HBase
* Remove useless periodic_interval option
* doc: be more explicit about network counters
* Capture instance metadata in reserved namespace
* Imported Translations from Transifex
* pep8: enable E125 checks
* pep8: enable F403 checks
* pep8: enable H302 checks
* pep8: enable H304 checks
* pep8: enable H401
* pep8: enable H402 checks
* Rename the MeterPublisher to RPCPublisher
* Replace publisher name by URL
* Enable pep8 H403 checks
* Activate H404 checks
* Ceilometer may generate wrong format swift url in some situations
* Code cleanup
* Update Oslo
* Use Flake8 gating for bin/ceilometer-*
* Update requirements to fix devstack installation
* Update to the latest stevedore
* Start gating on H703
* Remove disabled_notification_listeners option
* Remove disabled_compute_pollsters option
* Remove disabled_central_pollsters option
* Longer string columns for Trait and UniqueNames
* Fix nova notifier tests
* pipeline: switch publisher loading model to driver
* Enforce reverse time-order for sample return
* Remove explicit distribute depend
* Use Python 3.x compatible octal literals
* Improve Python 3.x compatibility
* Fix requirements
* Corrected path for test requirements in docs
* Fix some typo in documentation
* Add instance_scheduled in entry points
* fix session connection
* Remove useless imports, reenable F401 checks
* service: run common initialization stuff
* Use console scripts for ceilometer-api
* Use console scripts for ceilometer-dbsync
* Use console scripts for ceilometer-agent-compute
* Use console scripts for ceilometer-agent-central
* agent-central: use CONF.import_opt rather than import
* Move os_* options into a group
* Use console scripts for ceilometer-collector
* sqlalchemy: migration error when running db-sync
* session flushing error
* api: add limit parameters to meters
* python3: Introduce py33 to tox.ini
* Start to use Hacking
* Session does not use ceilometer.conf's database_connection
* Add support for limiting the number of samples returned
* Imported Translations from Transifex
* Add support policy to installation instructions
* sql: fix 003 downgrade
* service: remove useless PeriodicService class
* Fix nova notifier tests
* Explicitly set downloadcache in tox.ini
* Imported Translations from Transifex
* Switch to sphinxcontrib-pecanwsme for API docs
* Update oslo, use new configuration generator
* doc: fix hyphens instead of underscores for 'os*' conf options
* Allow specifying a listen IP
* Log configuration values on API startup
* Don't use pecan to configure logging
* Mark sensitive config options as secret
* Imported Translations from Transifex
* ImagePollster record duplicate counter during one poll
* Rename requires files to standard names
* Add an UDP publisher and receiver
* hbase metaquery support
* Imported Translations from Transifex
* Fix and update extract_opts group extraction
* Fix the sample name of 'resource_metadata'
* Added missing source variable in storage drivers
* Add Event methods to db api
* vnics: don't presume existence of filterref/filter
* force the test path to a str (sometimes is unicode)
* Make sure that v2 api tests have the policy file configured
* Imported Translations from Transifex
* setup.cfg misses swift filter
* Add a counter for instance scheduling
* Move recursive_keypairs into utils
* Replace nose with testr
* Use fixtures in the tests
* fix compute units in measurement doc
* Allow suppression of v1 API
* Restore default interval
* Change from unittest to testtools
* remove unused tests/skip module
* Imported Translations from Transifex
* Get all tests to use tests.base.TestCase
* Allow just a bit longer to wait for the server to startup
* Document keystone_authtoken section
* Restore test dependency on Ming
* Set the default pipline config file for tests
* Imported Translations from Transifex
* Fix cross-document references
* Fix config setting references in API tests
* Restrict pep8 & co to pep8 target
* Fix meter_publisher in setup.cfg
* Use flake8 instead of pep8
* Imported Translations from Transifex
* Use sqlalchemy session code from oslo
* Switch to pbr
* fix the broken ceilometer.conf.sample link
* Add a direct Ceilometer notifier
* Do the same auth checks in the v2 API as in the v1 API
* Add the sqlalchemy implementation of the alarms collection
* Allow posting samples via the rest API (v2)
* Updated the ceilometer.conf.sample
* Don't use trivial alarm_id's like "1" in the test cases
* Fix the nova notifier tests after a nova rename
* Document HBase configuration
* alarm: fix MongoDB alarm id
* Use jsonutils instead of json in test/api.py
* Connect the Alarm API to the db
* Add the mongo implementation of alarms collection
* Move meter signature computing into meter_publish
* Update WSME dependency
* Imported Translations from Transifex
* Add Alarm DB API and models
* Imported Translations from Transifex
* Remove "extras" again
* add links to return values from API methods
* Modify limitation on request version
* Doc improvements
* Rename EventFilter to SampleFilter
* Fixes AttributeError of FloatingIPPollster
* Add just the most minimal alarm API
* Update oslo before bringing in exceptions
* Enumerate the meter type in the API Meter class
* Remove "extras" as it is not used
* Adds examples of CLI and API queries to the V2 documentation
* Measurements documentation update
* update the ceilometer.conf.sample
* Set hbase table_prefix default to None
* glance/cinder/quantum counter units are not accurate/consistent
* Add some recommendations about database
* Pin SQLAlchemy to 0.7.x
* Ceilometer configuration.rst file not using right param names for logging
* Fix require_map_reduce mim import
* Extend swift middleware to collect number of requests
* instances: fix counter unit
* Remove Folsom support
* transformer, publisher: move down base plugin classes
* pipeline, publisher, transformer: reorganize code
* Fix tests after nova changes
* Update to the lastest loopingcall from oslo
* Imported Translations from Transifex
* update devstack instructions for cinder
* Update openstack.common
* Reformat openstack-common.conf
* storage: move nose out of global imports
* storage: get rid of get_event_interval
* Remove gettext.install from ceilometer/__init__.py
* Prepare for future i18n use of _() in nova notifier
* Update part of openstack.common
* Convert storage drivers to return models
* Adpated to nova's gettext changes
* add v2 query examples
* storage: remove get_volume_sum and get_volume_max
* api: run tests against HBase too
* api: run sum unit tests against SQL backend too
* Split and fix live db tests
* Remove impl_test
* api: run max_resource_volume test on SQL backend
* Refactor DB tests
* fix volume tests to utilize VOLUME_DELETE notification
* Open havana development, bump to 2013.2
* Change the column counter_volume to Float
* tests: disable Ming test if Ming unavailable
* Imported Translations from Transifex
* enable arguments in tox
* api: run max_volume tests on SQL backend too
* api: run list_sources tests on SQL and Mongo backend
* api: run list_resources test against SQL
* api: handle case where metadata is None
* Fix statistics period computing with start/end time
* Allow publishing arbitrary headers via the "storage.objects.*.bytes" counter
* Updated the description of get_counters routine
* enable xml error message response
* Swift pollster silently return no counter if keystone endpoint is not present
* Try to get rid of the "events" & "raw events" naming in the code
* Switch to python-keystoneclient 0.2.3
* include a copy of the ASL 2.0
* add keystone configuration instructions to manual install docs
* Update openstack.common
* remove unused dependencies
* Set the default_log_levels to include keystoneclient
* Switch to final 1.1.0 oslo.config release
* Add deprecation warnings for V1 API
* Raise stevedore requirement to 0.7
* Fixed the blocking unittest issues
* Fix a pep/hacking error in a swift import
* Add sample configuration files for mod_wsgi
* Add a tox target for building documentation
* Use a non-standard port for the test server
* Ensure the statistics are sorted
* Start both v1 and v2 api from one daemon
* Handle missing units values in mongodb data
* Imported Translations from Transifex
* Make HACKING compliant
* Update manual installation instructions
* Fix oslo.config and unittest
* Return something sane from the log impl
* Fix an invalid test in the storage test suite
* Add the etc directory to the sdist manifest
* api: run compute duration by resource on SQL backend
* api: run list_projects tests against SQL backend too
* api: run list users test against SQL backend too
* api: run list meters tests against SQL backend too
* Kwapi pollster silently return no probre if keystone endpoint is not present
* HBase storage driver, initial version
* Exclude tests directory from installation
* Ensure missing period is treated consistently
* Exclude tests when installing ceilometer
* Run some APIv1 tests on different backends
* Remove old configuration metering_storage_engine
* Set where=tests
* Decouple the nova notifier from ceilometer code
* send-counter: fix & test
* Remove nose wrapper script
* Fix count type in MongoDB
* Make sure that the period is returned as an int as the api expects an int
* Imported Translations from Transifex
* Remove compat cfg wrapper
* compute: fix unknown flavor handling
* Allow empty dict as metaquery param for sqlalchemy
* Add glossary definitions for additional terms
* Support different publisher interval
* Fix message envelope keys
* Revert recent rpc wire format changes
* Document the rules for units
* Fix a bug in compute manager test case
* plugin: don't use @staticmethod with abc
* Support list/tuple as meter message value
* Imported Translations from Transifex
* Update common to get new kombu serialization code
* Disable notifier tests
* pipeline: manager publish multiple counters
* Imported Translations from Transifex
* Use oslo-config-2013.1b3
* mongodb: make count an integer explicitely
* tests: allow to run API tests on live db
* Update to latest oslo-version
* Imported Translations from Transifex
* Add directive to MANIFEST.in to include all the html files
* Use join_consumer_pool() for notifications
* Update openstack.common
* Add period support in storage drivers and API
* Update openstack/common tree
* storage: fix mongo live tests
* swift: configure RPC service correctly
* Fix tox python version for Folsom
* api: use delta_seconds()
* transformer: add acculumator transformer
* Import service when cfg.CONF.os_* is used
* pipeline: flush after publishing call
* plugin: format docstring as rst
* Use Mongo finalize to compute avg and duration
* Code cleanup, remove useless import
* api: fix a test
* compute: fix notifications test
* Move counter_source definition
* Allow to publish several counters in a row
* Fixed resource api in v2-api
* Update meter publish with pipeline framework
* Use the same Keystone client instance for pollster
* pipeline: fix format error in logging
* More robust mocking of nova conductor
* Mock more conductor API methods to unblock tests
* Update pollsters to return counter list
* Update V2 API documentation
* Added hacking.py support to pep8 portion of tox
* setup: fix typo in package data
* Fix formatting issue with v1 API parameters
* Multiple publisher pipeline framework
* Remove setuptools_git from setup_requires
* Removed unused param for get_counters()
* Use WSME 0.5b1
* Factorize agent code
* Fixed the TemplateNotFound error in v1 api
* Ceilometer-api is crashing due to pecan module missing
* Clean class variable in compute manager test case
* Update nova notifier test after nova change
* Fix documentation formatting issues
* Simplify ceilometer-api and checks Keystone middleware parsing
* Fix nova conf compute_manager unavailable
* Rename run_tests.sh to wrap_nosetests.sh
* Update openstack.common
* Corrected get_raw_event() in sqlalchemy
* Higher level test for db backends
* Remove useless imports
* Flatten the v2 API
* Update v2 API for WSME code reorg
* Update WebOb version specification
* Remove the ImageSizePollster
* Add Kwapi pollster (energy monitoring)
* Fixes a minor documentation typo
* Peg the version of Ming used in tests
* Update pep8 to 1.3.3
* Remove leftover useless import
* Enhance policy test for init()
* Provide the meters unit's in /meters
* Fix keystoneclient auth_token middleware changes
* policy: fix policy_file finding
* Remove the _initialize_config_options
* Add pyflakes
* Make the v2 API date query parameters consistent
* Fix test blocking issue and pin docutils version
* Apply the official OpenStack stylesheets and templates to the Doc build
* Fixed erroneous source filter in SQLAlchemy
* Fix warnings in the documentation build
* Handle finish and revert resize notifications
* Add support for Folsom version of Swift
* Implement user-api
* Add support for Swift incoming/outgoing trafic metering
* Pass a dict configuration file to auth_keystone
* Import only once in nova_notifier
* Fix MySQL charset error
* Use default configuration file to make test data
* Fix Glance control exchange
* Move back api-v1 to the main api
* Fix WSME arguments handling change
* Remove useless gettext call in sql engine
* Ground work for transifex-ify ceilometer
* Add instance_type information to NetPollster
* Fix dbsync API change
* Fix image_id in instance resource metadata
* Instantiate inspector in compute manager
* remove direct nova db access from ceilometer
* Make debugging the wsme app a bit easier
* Implements database upgrade as storage engine independent
* Fix the v1 api importing of acl
* Add the ability to filter on metadata
* Virt inspector directly layered over hypervisor API
* Move meter.py into collector directory
* Change mysql schema from latin1 to utf8
* Change default os-username to 'ceilometer'
* Restore some metadata to the events and resources
* Update documentation URL
* Add sql db option to devstack for ceilometer
* Remove debug print in V2 API
* Start updating documentation for V2 API
* Implement V2 API with Pecan and WSME
* Move v1 API files into a subdirectory
* Add test storage driver
* Implement /meters to make discovery "nicer" from the client
* Fix sqlalchemy for show_data and v1 web api
* Implement object store metering
* Make Impl of mongodb and sqlalchemy consistent
* add migration migrate.cfg file to the python package
* Fixes to enable the jenkins doc job to work
* Lower the minimum required version of anyjson
* Fix blocking test for nova notifier
* network: remove left-over useless nova import
* tools: set novaclient minimum version
* libvirt: fix Folsom compatibility
* Lower pymongo dependency
* Remove rickshaw subproject
* Remove unused rpc import
* Adapted to nova's compute_driver moving
* doc: fix cpu counter unit
* tools: use tarballs rather than git for Folsom tests
* Used auth_token middleware from keystoneclient
* Remove cinderclient dependency
* Fix latest nova changes
* api: replace minified files by complete version
* Add Folsom tests to tox
* Handle nova.flags removal
* Provide default configuration file
* Fix mysql_engine option type
* Remove nova.flags usage
* api: add support for timestamp in _list_resources()
* api: add timestamp interval support in _list_events()
* tests: simplify api list_resources
* Update openstack.common(except policy)
* Adopted the oslo's rpc.Service change
* Use libvirt num_cpu for CPU utilization calculation
* Remove obsolete reference to instance.vcpus
* Change references of /etc/ceilometer-{agent,collector}.conf to /etc/ceilometer/ceilometer.conf
* Determine instance cores from public flavors API
* Determine flavor type from the public nova API
* Add comment about folsom compatibility change
* Add keystone requirement for doc build
* Avoid TypeError when loading libvirt.LibvirtDriver
* Don't re-import flags and do parse_args instead of flags.FLAGS()
* doc: rename stackforge to openstack
* Fix pymongo requirements
* Update .gitreview for openstack
* Update use of nova config to work with folsom
* compute: remove get_disks work-around
* Use openstack versioning
* Fix documentation build
* document utc naive timestamp
* Remove database access from agent pollsters
* Fix merge error in central/manager.py
* Fix nova config parsing
* pollster trap error due to zero floating ip
* Use the service.py in openstack-common
* Allow no configured sources, provide a default file
* Add service.py from openstack-common
* Update common (except policy)
* nova fake libvirt library breaking tests
* Move db access out into a seperate file
* Remove invalid fixme comments
* Add new cpu_util meter recording CPU utilization %
* Fix TypeError from old-style publish_counter calls
* Fix auth middleware configuration
* pin sqlalchemy to 0.7.x but not specifically 0.7.8
* add mongo index names
* set tox to ignore global packages
* Provide a way to disable some plugins
* Use stevedore to load all plugins
* implement get_volume_max for sqlalchemy
* Add basic text/html renderer
* network: floating IP account in Quantum
* add unit test for CPUPollster
* Clean up context usage
* Add dependencies on clients used by pollsters
* add ceilometer-send-counter
* Update openstack.common.cfg
* Fix tests broken by API change with Counter class
* api: add source detail retrieval
* Set source at publish time
* Instance pollster emits instance. meter
* timestamp columns in sqlalchemy not timezone aware
* Remove obsolete/incorrect install instructions
* network: emit router meter
* Fix sqlalchemy performance problem
* Added a working release-bugs.py script to tools/
* Change default API port
* sqlalchemy record_meter merge objs not string
* Use glance public API as opposed to registry API
* Add OpenStack trove classifier for PyPI
* bump version number to 0.2
* Nova libvirt release note
* Update metadata for PyPI registration
* tox: add missing venv
* Fixes a couple typos
* Counter renaming
* Set correct timestamp on floatingip counter
* Fix API change in make_test_data.py
* Fix Nova URL in doc
* Some more doc fixes
* Ignore instances in the ERROR state
* Use the right version number in documentation
* doc: fix network.*.* resource id
* image: handle glance delete notifications
* image: handle glance upload notifications
* image: add update event, fix ImageServe owner
* network: fix create/update counter type & doc
* Assorted doc fixes
* add max/sum project volume and fix tests
* Add general options
* compute.libvirt: split read/write counters
* API: add Keystone ACL and policy support
* Add documentation for configuration options
* network: do not emit counter on exists event, fix resource id
* Move net function in class method and fix instance id
* Prime counter table
* Fix the configuration for the nova notifier
* Initialize the control_exchange setting
* Set version 0.1
* Make the instance counters use the same type
* Restore manual install documentation
* add quantum release note
* Add release notes to docs
* Update readme and create release notes
* Remove duration field in Counter
* Add counter for number of packets per vif
* Move instance counter into its own pollster
* Add a request counter for instance I/O
* Rename instance disk I/O counter
* Rename instances network counters
* Use constant rather than string from counter type
* Update the architecture diagram
* Increase default polling interval
* Fix compute agent publishing call
* network: listen for Quantum exists event
* Correct requirements filename
* Fix notification subscription logic
* Fix quantum notification subscriptions
* Split meter publishing from the global config obj
* network: add counter for actions
* network: listen for Quantum notifications
* Rename absolute to gauge
* Fix typo in control exchanges help texts
* Rework RPC notification mechanism
* Update packaging files
* Update URL list
* Update openstack.common
* Add volume/sum API endpoint for resource meters
* Add resource volume/max api call
* Fix dependency on anyjson
* Listen for volume.delete.start instead of end
* implement sqlalchemy dbengine backend
* Add a notification handler for image downloads
* Allow glance pollster tests to run
* Create tox env definition for using a live db
* Picking up dependencies from pip-requires file
* Specify a new queue in manager
* Rework RPC connection
* Stop using nova's rpc module
* Add configuration script to turn on notifications
* Pep8 fixes, implement pep8 check on tests subdir
* Use standard CLI options & env vars for creds
* compute: remove get_metadata_from_event()
* Listen for volume notifications
* Add pollster for Glance
* Fix Nova notifier test case
* Fix nova flag parsing
* Add nova_notifier notification driver for nova
* Split instance polling code
* Use stevedore to load storage engine drivers
* Implement duration calculation API
* Create tool for generating test meter data
* Update openstack-common code to latest
* Add bin/ceilometer-api for convenience
* Add local copy of architecture diagram
* Add timestamp parameters to the API docs
* Check for doc build dependency before building
* Pollster for network internal traffic (n1,n2)
* Fix PEP8 issues
* Add archicture diagram to documentation
* added mongodb auth
* Change timestamp management for resources
* Log the instance causing the error when a pollster fails
* Document how to install with devstack
* Remove test skipping logic
* Remove dependency on nova test modules
* Add date range parameters to resource API
* Add setuptools-git support
* Add separate notification handler for instance flavor
* Change instance meter type
* Split the existing notification handlers up
* Remove redundancy in the API
* Separate the tox coverage test setup from py27
* Do not require user or project argument for event query
* Add pymongo dependency for readthedocs.org build
* Update openstack.common
* Add API documentation
* Be explicit about test dir
* Add list projects API
* Sort list of users and projects returned from queries
* Add project arg to event and resource queries
* Fix "meter" literal in event list API
* collector exception on record_metering_data
* Add API endpoint for listing raw event data
* Change compute pollster API to work on one instance at a time
* Create "central" agent
* Skeleton for API server
* fix use of source value in mongdb driver
* Add {root,ephemeral}_disk_size counters
* Implements vcpus counter
* Fix nova configuration loading
* Implements memory counter
* Fix and document counter types
* Check compute driver using new flag
* Add openstack.common.{context,notifier,log} and update .rpc
* Update review server link
* Add link to roadmap
* Add indexes to MongoDB driver
* extend developer documentation
* Reset the correct nova dependency URL
* Switch .gitreview to use OpenStack gerrit
* Add MongoDB engine
* Convert timestamps to datetime objects before storing
* Reduce complexity of storage engine API
* Remove usage of nova.log
* Documentation edits:
* fix typo in instance properties list
* Add Sphinx wrapper around existing docs
* Configure nova.flags as well as openstack.common.cfg
* First draft of plugin/agent documentation. Fixes bug 1018311
* Essex: update Nova to 2012.1.1, add python-novaclient
* Split service preparation, periodic interval configurable
* Use the same instance metadata everywhere
* Emit meter event for instance "exists"
* Start defining DB engine API
* Fallback on nova.rpc for Essex
* Add instance metadata from notification events
* Combined fix to get past broken state of repo
* Add more metadata to instance counter
* Register storage options on import
* Add Essex tests
* log more than ceilometer
* Remove event_type field from meter messages
* fix message signatures for nested dicts
* Remove nova.flags usage
* Copy openstack.common.cfg
* check message signatures in the collector
* Sketch out a plugin system for saving metering data
* refactor meter event publishing code
* Add and use ceilometer own log module
* add counter type field
* Use timestamp instead of datetime when creating Counter
* Use new flag API
* Fix a PEP8 error
* Make the stand-alone test script mimic tox
* Remove unneeded eventlet test requirement
* Add listeners for other instance-related events
* Add tox configuration
* Use openstack.common.cfg for ceilometer options
* Publish and receive metering messages
* Add floating IP pollster
* Fix tests based on DB by importing nova.tests
* make the pollsters in the agent plugins
* Build ceilometer-agent and ceilometer-collector
* Add plugin support to the notification portion of the collector daemon
* Add CPU time fetching
* Add an example function for converting a nova notification to a counter
* add a tool for recording notifications and replaying them
* Add an exception handler to deal with errors that occur when the info in nova is out of sync with reality (as on my currently broken system). Also adds a nova prefix to the logger for now so messages from this module make it into the log file
* Periodically fetch for disk io stats
* Use nova.service, add a manager class
* Change license to Apache 2.0
* Add setup.py
* Import ceilometer-nova-compute
* Ignore pyc files
* Add link to blueprint
* Add .gitreview file
* initial commit
aodh-2.0.0/PKG-INFO 0000664 0005670 0005671 00000002014 12701405544 014661 0 ustar jenkins jenkins 0000000 0000000 Metadata-Version: 1.1
Name: aodh
Version: 2.0.0
Summary: OpenStack Telemetry Alarming
Home-page: http://www.openstack.org/
Author: OpenStack
Author-email: openstack-dev@lists.openstack.org
License: UNKNOWN
Description: aodh
====
Release notes can be read online at:
http://docs.openstack.org/developer/aodh/releasenotes/index.html
Documentation for the project can be found at:
http://docs.openstack.org/developer/aodh/
The project home is at:
http://launchpad.net/aodh
Platform: UNKNOWN
Classifier: Environment :: OpenStack
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: System :: Monitoring
aodh-2.0.0/rally-jobs/ 0000775 0005670 0005671 00000000000 12701405544 015645 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/rally-jobs/ceilometer.yaml 0000664 0005670 0005671 00000011776 12701405355 020675 0 ustar jenkins jenkins 0000000 0000000 ---
CeilometerAlarms.create_alarm:
-
args:
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
max_failure_percent: 0
CeilometerAlarms.create_and_delete_alarm:
-
args:
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
max_failure_percent: 0
CeilometerAlarms.create_and_list_alarm:
-
args:
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
max_failure_percent: 0
CeilometerAlarms.create_and_update_alarm:
-
args:
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
max_failure_percent: 0
CeilometerAlarms.list_alarms:
-
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
max_failure_percent: 0
CeilometerMeters.list_meters:
-
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
max_failure_percent: 0
CeilometerResource.list_resources:
-
runner:
type: "constant"
times: 10
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
max_failure_percent: 0
CeilometerStats.create_meter_and_get_stats:
-
args:
user_id: "user-id"
resource_id: "resource-id"
counter_volume: 1.0
counter_unit: ""
counter_type: "cumulative"
runner:
type: "constant"
times: 20
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
max_failure_percent: 0
CeilometerQueries.create_and_query_alarms:
-
args:
filter: {"and": [{"!=": {"state": "dummy_state"}},{"=": {"type": "threshold"}}]}
orderby: !!null
limit: 10
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 20
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
max_failure_percent: 0
CeilometerQueries.create_and_query_alarm_history:
-
args:
orderby: !!null
limit: !!null
meter_name: "ram_util"
threshold: 10.0
type: "threshold"
statistic: "avg"
alarm_actions: ["http://localhost:8776/alarm"]
ok_actions: ["http://localhost:8776/ok"]
insufficient_data_actions: ["http://localhost:8776/notok"]
runner:
type: "constant"
times: 20
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
max_failure_percent: 0
CeilometerQueries.create_and_query_samples:
-
args:
filter: {"=": {"counter_unit": "instance"}}
orderby: !!null
limit: 10
counter_name: "cpu_util"
counter_type: "gauge"
counter_unit: "instance"
counter_volume: "1.0"
resource_id: "resource_id"
runner:
type: "constant"
times: 20
concurrency: 10
context:
users:
tenants: 1
users_per_tenant: 1
sla:
max_failure_percent: 0
aodh-2.0.0/rally-jobs/plugins/ 0000775 0005670 0005671 00000000000 12701405544 017326 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/rally-jobs/plugins/plugin_sample.py 0000664 0005670 0005671 00000001667 12701405355 022551 0 ustar jenkins jenkins 0000000 0000000 # Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
""" Sample of plugin for Aodh.
For more Aodh related benchmarks take a look here:
github.com/openstack/rally/blob/master/rally/benchmark/scenarios/aodh/
About plugins: https://rally.readthedocs.org/en/latest/plugins.html
Rally concepts https://wiki.openstack.org/wiki/Rally/Concepts
"""
from rally.benchmark.scenarios import base
class AodhPlugin(base.Scenario):
pass
aodh-2.0.0/rally-jobs/plugins/README.rst 0000664 0005670 0005671 00000000606 12701405355 021017 0 ustar jenkins jenkins 0000000 0000000 Rally plugins
=============
All *.py modules from this directory will be auto-loaded by Rally and all
plugins will be discoverable. There is no need of any extra configuration
and there is no difference between writing them here and in rally code base.
Note that it is better to push all interesting and useful benchmarks to Rally
code base, this simplifies administration for Operators.
aodh-2.0.0/rally-jobs/extra/ 0000775 0005670 0005671 00000000000 12701405544 016770 5 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/rally-jobs/extra/fake.img 0000664 0005670 0005671 00000000000 12701405355 020362 0 ustar jenkins jenkins 0000000 0000000 aodh-2.0.0/rally-jobs/extra/README.rst 0000664 0005670 0005671 00000000255 12701405355 020461 0 ustar jenkins jenkins 0000000 0000000 Extra files
===========
All files from this directory will be copy pasted to gates, so you are able to
use absolute path in rally tasks. Files will be in ~/.rally/extra/*
aodh-2.0.0/rally-jobs/README.rst 0000664 0005670 0005671 00000001554 12701405355 017341 0 ustar jenkins jenkins 0000000 0000000 Rally job related files
=======================
This directory contains rally tasks and plugins that are run by OpenStack CI.
Structure
---------
* plugins - directory where you can add rally plugins. Almost everything in
Rally is a plugin. Benchmark context, Benchmark scenario, SLA checks, Generic
cleanup resources, ....
* extra - all files from this directory will be copy pasted to gates, so you
are able to use absolute paths in rally tasks.
Files will be located in ~/.rally/extra/*
* aodh is a task that is run in gates against aodh
Useful links
------------
* More about Rally: https://rally.readthedocs.org/en/latest/
* How to add rally-gates: https://rally.readthedocs.org/en/latest/gates.html
* About plugins: https://rally.readthedocs.org/en/latest/plugins.html
* Plugin samples: https://github.com/openstack/rally/tree/master/samples/plugins
aodh-2.0.0/tox.ini 0000664 0005670 0005671 00000006605 12701405357 015113 0 ustar jenkins jenkins 0000000 0000000 [tox]
minversion = 1.6
skipsdist = True
envlist = py34,py27,pep8
[testenv]
deps = .[test]
install_command = pip install -U {opts} {packages}
usedevelop = True
setenv = VIRTUAL_ENV={envdir}
OS_TEST_PATH=aodh/tests/unit
passenv = OS_TEST_TIMEOUT OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE
commands =
python setup.py testr --slowest --testr-args="{posargs}"
oslo-config-generator --config-file=aodh-config-generator.conf
whitelist_externals = bash
# TODO(ityaptin): With separation tests to unit and functional folders we need
# set environment variable OS_TEST_PATH=./aodh/tests/functional
# in "py-" jobs
[testenv:py27-hbase]
deps = .[hbase,test]
setenv = OS_TEST_PATH=aodh/tests/functional/
AODH_TEST_STORAGE_URL=hbase://__test__
[testenv:py27-mongodb]
deps = .[mongodb,test]
setenv = OS_TEST_PATH=aodh/tests/functional/
commands =
overtest mongodb python setup.py testr --slowest --testr-args="{posargs}"
[testenv:py27-mysql]
deps = .[mysql,test]
setenv = OS_TEST_PATH=aodh/tests/functional/
commands =
overtest mysql python setup.py testr --slowest --testr-args="{posargs}"
[testenv:py27-pgsql]
deps = .[postgresql,test]
setenv = OS_TEST_PATH=aodh/tests/functional/
commands =
overtest postgresql python setup.py testr --slowest --testr-args="{posargs}"
[testenv:functional]
deps = .[mysql,postgresql,mongodb,test]
setenv = VIRTUAL_ENV={envdir}
OS_TEST_PATH=aodh/tests/functional/
GABBI_LIVE_FAIL_IF_NO_TEST=1
passenv = {[testenv]passenv} AODH_*
commands =
{toxinidir}/run-functional-tests.sh ./tools/pretty_tox.sh "{posargs}"
# NOTE(chdent): The gabbi tests are also run under the primary tox
# targets. This target simply provides a target to directly run just
# gabbi tests without needing to discovery across the entire body of
# tests.
[testenv:gabbi]
deps = .[mysql,test]
setenv = OS_TEST_PATH=aodh/tests/functional/gabbi
commands =
overtest mysql python setup.py testr --testr-args="{posargs}"
[testenv:cover]
commands = overtest mysql python setup.py testr --slowest --coverage --testr-args="{posargs}"
[testenv:pep8]
deps = hacking<0.11,>=0.10.0
commands =
flake8
# Check that .po and .pot files are valid:
bash -c "find aodh -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"
[testenv:releasenotes]
deps = .[doc]
commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:genconfig]
commands = oslo-config-generator --config-file=aodh-config-generator.conf
[testenv:docs]
deps = .[doc]
commands = python setup.py build_sphinx
setenv = PYTHONHASHSEED=0
[testenv:venv]
deps = .[doc]
commands = {posargs}
setenv = PYTHONHASHSEED=0
[testenv:debug]
commands = bash -x oslo_debug_helper {posargs}
[testenv:debug-mongodb]
deps = .[mongodb,test]
setenv = OS_TEST_PATH=aodh/tests/functional/
commands = overtest mongodb oslo_debug_helper {posargs}
[testenv:debug-mysql]
deps = .[mysql,test]
setenv = OS_TEST_PATH=aodh/tests/functional/
commands = overtest mysql oslo_debug_helper {posargs}
[testenv:debug-pgsql]
deps = .[postgresql,test]
setenv = OS_TEST_PATH=aodh/tests/functional/
commands = overtest postgresql oslo_debug_helper {posargs}
[flake8]
ignore =
exclude=.venv,.git,.tox,dist,doc,./aodh/openstack/common,*lib/python*,*egg,build
show-source = True
[hacking]
import_exceptions =
aodh.i18n
local-check-factory = aodh.hacking.checks.factory
aodh-2.0.0/pylintrc 0000664 0005670 0005671 00000003042 12701405355 015355 0 ustar jenkins jenkins 0000000 0000000 # The format of this file isn't really documented; just use --generate-rcfile
[MASTER]
# Add to the black list. It should be a base name, not a
# path.
ignore=openstack
[Messages Control]
# NOTE(justinsb): We might want to have a 2nd strict pylintrc in future
# C0111: Don't require docstrings on every method
# W0511: TODOs in code comments are fine.
# W0142: *args and **kwargs are fine.
# W0622: Redefining id is fine.
# W0703: Catch "Exception".
disable=C0111,W0511,W0142,W0622,W0703
[Basic]
# Variable names can be 1 to 31 characters long, with lowercase and underscores
variable-rgx=[a-z_][a-z0-9_]{0,30}$
# Argument names can be 2 to 31 characters long, with lowercase and underscores
argument-rgx=[a-z_][a-z0-9_]{1,30}$
# Type attributes names can be 2 to 31 characters long, with lowercase and underscores
attr-rgx=[a-z_][a-z0-9_]{1,30}$
# Method names should be at least 3 characters long and be lowercased with underscores
method-rgx=([a-z_][a-z0-9_]{1,30}|setUp|tearDown)$
# Module names matching sahara-* are ok (files in bin/)
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|(sahara-[a-z0-9_-]+))$
# Don't require docstrings on tests.
no-docstring-rgx=((__.*__)|([tT]est.*)|setUp|tearDown)$
[Design]
max-public-methods=100
min-public-methods=0
max-args=6
[Variables]
# List of additional names supposed to be defined in builtins. Remember that
# you should avoid to define new builtins when possible.
# _ is used by our localization
additional-builtins=_
[TYPECHECK]
generated-members=query,node_template,status_code,data
aodh-2.0.0/.testr.conf 0000664 0005670 0005671 00000000704 12701405355 015656 0 ustar jenkins jenkins 0000000 0000000 [DEFAULT]
test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-600} \
${PYTHON:-python} -m subunit.run discover ${OS_TEST_PATH:-./aodh/tests} -t . $LISTOPT $IDOPTION
test_id_option=--load-list $IDFILE
test_list_option=--list
# NOTE(chdent): Only used/matches on gabbi-related tests.
group_regex=(gabbi\.driver\.test_gabbi_[^_]+)_
aodh-2.0.0/AUTHORS 0000664 0005670 0005671 00000023254 12701405543 014644 0 ustar jenkins jenkins 0000000 0000000 Abhishek Chanda
Abhishek Lekshmanan
Abhishek Lekshmanan
Adelina Tuvenie
Ajaya Agrawal
Akhil Hingane
Ala Rezmerita
Alessandro Pilotti
Alexei Kornienko
Ana Malagon
Andreas Jaeger
Andreas Jaeger
Andrew Hutchings
Andrew Melton
Angus Lees
Angus Salkeld
Ann Kamyshnikova
Artur Svechnikov
Balazs Gibizer
Bartosz Górski
Ben Nemec
Ben Nemec
Boris Pavlovic
Brad Pokorny
Brant Knudson
Brian Cline
Brooklyn Chen
Can ZHANG
Cedric Soulas
Chad Lung
ChangBo Guo(gcb)
Chaozhe.Chen
ChenZheng
Chinmaya Bharadwaj
Chmouel Boudjnah
Chris Dent
Christian Berendt
Christian Martinez
Christian Schwede
Chuck Short
Clark Boylan
Claudiu Belu
Cyril Roelandt
Damian Van Vuuren
Dan Florea
Dan Prince
Darren Birkett
Davanum Srinivas
David Peraza
David Wahlstrom
Dazhao
Debo~ Dutta
Dina Belova
Dirk Mueller
Divya
Doug Hellmann
Edwin Zhai
Emilien Macchi
Endre Karlson
Eoghan Glynn
Eoghan Glynn
Eric Brown
Fabio Giannetti
Fei Long Wang
Feng Xi Yan
Fengqian Gao
Flavio Percoco
François Charlier
François Rossigneux
Frederic FAURE
Gangyi Luo
Gauvain Pocentek
Gerard Garcia
Gordon Chung
Graham Binns
Guangyu Suo
Hang Liu
Haomeng, Wang
Harri Hämäläinen
Hisashi Osanai
Igor Degtiarov
Ihar Hrachyshka
Ildiko Vancsa
Ilya Sviridov
Ilya Tyaptin
Ionuț Arțăriși
Jake Liu
James E. Blair
Jason Myers
Jason Zhang
Jay Lau
Jay Pipes
Jeremy Stanley
Jim Rollenhagen
Joanna H. Huang
Joe Gordon
Joe H. Rahme
John H. Tran
John Herndon
JordanP
Julien Danjou
Justin SB
KIYOHIRO ADACHI
Kamil Rykowski
Keith Byrne
Ken Pepple
Ken'ichi Ohmichi
Kennan
Kennan
Kishore Juigil
Koert van der Veer
Komei Shimamura
Ladislav Smola
Lan Qi song
Lena Novokshonova
Lianhao Lu
LinuxJedi
LiuNanke
LiuSheng
Luis A. Garcia
Maho Koshiya
Mark McClain
Mark McLoughlin
Martin Geisler
Martin Kletzander
Mathew Odden
Mathieu Gagné
Matt Riedemann
Mehdi Abaakouk
Mehdi Abaakouk
Michael Krotscheck
Michael Still
Michał Jastrzębski
Mike Spreitzer
Monsyne Dragon
Monty Taylor
Nadya Privalova
Nadya Shakhat
Nejc Saje
Nick Barcet
Nicolas Barcet (nijaba)
Noorul Islam K M
Octavian Ciuhandu
Paul Belanger
Peter Portante
Phil Neal
Piyush Masrani
Pradeep Kilambi
Pradeep Kilambi
Pradeep Kumar Singh
Pradyumna Sampath
Pádraig Brady
Qiaowei Ren
Rafael Rivero
Rich Bowen
Rikimaru Honjo
Rob Raymond
Robert Mizielski
Rohit Jaiswal
Romain Soufflet
Roman Bogorodskiy
Rosario Di Somma
Ruslan Aliev
Russell Bryant
Ryan Petrello
Ryota MIBU
Saba Ahmed
Sam Morrison
Samta
Samuel Merritt
Sandy Walsh
Sanja Nosan
Sascha Peilicke
Sean Dague
Sergey Lukjanov
Sergey Vilgelm
Shane Wang
Shengjie Min
Shilla Saebi
Shuangtai Tian
Shuquan Huang
Simona Iuliana Toader
Sofer Athlan-Guyot
Srinivas Sakhamuri
Stas Maksimov
Stephen Balukoff
Stephen Gran
Steve Lewis
Steve Martinelli
Steven Berler
Surya Prabhakar
Svetlana Shturm
Swami Reddy
Swann Croiset
Swapnil Kulkarni (coolsvap)
Sylvain Afchain
Tatsuro Makita
Terri Yu
Thierry Carrez
Thomas Bechtold
Thomas Herve
Thomas Herve
Thomas Maddox
Tong Li
Ubuntu
Victor Stinner
Victor Stinner
Vitalii Lebedynskyi
Vitaly Gridnev
Vladislav Kuzmin
Wu Wenxiang
Yaguang Tang
Yanyan Hu
Yassine Lamgarchal
Yathiraj Udupi
You Yamagata
Yunhong, Jiang
Zhi Kun Liu
Zhi Yan Liu
ZhiQiang Fan
Zhongyue Luo
annegentle
ccrouch
eNovance
emilienm
florent
fujioka yuuichi
gengjh
guillaume pernot
heha
joyce
keliang
kiwik-chenrui
leizhang
lijian
liuqing
liusheng
lizheming
lqslan
lrqrun
ls1175