Implement Aodh salt formula
This CR adds following things:
- Configs and sls scripts for Aodh packages installation
- aodh.conf template and parameters
- Heka config for aodh logs parsing
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index f329956..df43a5d 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,6 +1,6 @@
aodh formula
=========================================
-0.1 (2015-08-22)
+2016.4.1 (2016-11-22)
- Initial formula setup
diff --git a/FORMULA b/FORMULA
new file mode 100644
index 0000000..33a084c
--- /dev/null
+++ b/FORMULA
@@ -0,0 +1,8 @@
+name: aodh
+os: Debian, RedHat
+os_family: Debian, RedHat
+version: 201606
+release: 1
+summary: Formula for installing and configuring aodh
+description: Formula for installing and configuring aodh
+top_level_dir: ceilometer
diff --git a/VERSION b/VERSION
index 49d5957..1bad316 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.1
+2016.4.1
diff --git a/aodh/files/aodh.conf b/aodh/files/aodh.conf
deleted file mode 100644
index 44e3449..0000000
--- a/aodh/files/aodh.conf
+++ /dev/null
@@ -1 +0,0 @@
-# Service config file
\ No newline at end of file
diff --git a/aodh/files/mitaka/aodh.conf.Debian b/aodh/files/mitaka/aodh.conf.Debian
new file mode 100644
index 0000000..6e3f8a9
--- /dev/null
+++ b/aodh/files/mitaka/aodh.conf.Debian
@@ -0,0 +1,875 @@
+{%- from "aodh/map.jinja" import server with context %}
+[DEFAULT]
+
+#
+# From aodh
+#
+
+# Record alarm change events. (boolean value)
+# Deprecated group/name - [alarm]/record_history
+#record_history = true
+
+# TTL of event alarm caches, in seconds. Set to 0 to disable caching.
+# (integer value)
+#event_alarm_cache_ttl = 60
+
+# URL to Gnocchi. default: autodetection (string value)
+# Deprecated group/name - [alarm]/gnocchi_url
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#gnocchi_url = <None>
+
+# The topic that aodh uses for event alarm evaluation. (string value)
+#event_alarm_topic = alarm.all
+
+# The protocol used to communicate between evaluator and notifier
+# services. (string value)
+# Allowed values: queue, rpc
+#ipc_protocol = queue
+
+# SSL Client certificate for REST notifier. (string value)
+# Deprecated group/name - [alarm]/rest_notifier_certificate_file
+#rest_notifier_certificate_file =
+
+# SSL Client private key for REST notifier. (string value)
+# Deprecated group/name - [alarm]/rest_notifier_certificate_key
+#rest_notifier_certificate_key =
+
+# Whether to verify the SSL Server certificate when calling alarm
+# action. (boolean value)
+# Deprecated group/name - [alarm]/rest_notifier_ssl_verify
+#rest_notifier_ssl_verify = true
+
+# Number of retries for REST notifier (integer value)
+# Deprecated group/name - [alarm]/rest_notifier_max_retries
+#rest_notifier_max_retries = 0
+
+# The topic that aodh uses for alarm notifier messages. (string value)
+#notifier_topic = alarming
+
+# The topic that aodh uses for alarm notifier messages. (string value)
+# Deprecated group/name - [alarm]/notifier_rpc_topic
+#notifier_rpc_topic = alarm_notifier
+
+# Name of this node, which must be valid in an AMQP key. Can be an
+# opaque identifier. For ZeroMQ only, must be a valid host name, FQDN,
+# or IP address. (string value)
+#host = 65baad0e1d8d
+
+# Timeout seconds for HTTP requests. Set it to None to disable
+# timeout. (integer value)
+#http_timeout = 600
+
+# Period of evaluation cycle, should be >= than configured pipeline
+# interval for collection of underlying meters. (integer value)
+# Deprecated group/name - [alarm]/threshold_evaluation_interval
+# Deprecated group/name - [alarm]/evaluation_interval
+#evaluation_interval = 60
+
+# Maximum number of alarms defined for a user. (integer value)
+# Deprecated group/name - [alarm]/user_alarm_quota
+#user_alarm_quota = <None>
+
+# Maximum number of alarms defined for a project. (integer value)
+# Deprecated group/name - [alarm]/project_alarm_quota
+#project_alarm_quota = <None>
+
+# Maximum count of actions for each state of an alarm, non-positive
+# number means no limit. (integer value)
+# Deprecated group/name - [alarm]/alarm_max_actions
+#alarm_max_actions = -1
+
+#
+# From oslo.log
+#
+
+# If set to true, the logging level will be set to DEBUG instead of
+# the default INFO level. (boolean value)
+#debug = false
+
+# If set to false, the logging level will be set to WARNING instead of
+# the default INFO level. (boolean value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#verbose = true
+
+# The name of a logging configuration file. This file is appended to
+# any existing logging configuration files. For details about logging
+# configuration files, see the Python logging module documentation.
+# Note that when logging configuration files are used then all logging
+# configuration is set in the configuration file and other logging
+# configuration options are ignored (for example,
+# logging_context_format_string). (string value)
+# Deprecated group/name - [DEFAULT]/log_config
+#log_config_append = <None>
+
+# Defines the format string for %%(asctime)s in log records. Default:
+# %(default)s . This option is ignored if log_config_append is set.
+# (string value)
+#log_date_format = %Y-%m-%d %H:%M:%S
+
+# (Optional) Name of log file to send logging output to. If no default
+# is set, logging will go to stderr as defined by use_stderr. This
+# option is ignored if log_config_append is set. (string value)
+# Deprecated group/name - [DEFAULT]/logfile
+#log_file = <None>
+
+# (Optional) The base directory used for relative log_file paths.
+# This option is ignored if log_config_append is set. (string value)
+# Deprecated group/name - [DEFAULT]/logdir
+#log_dir = <None>
+log_dir = /var/log/aodh
+
+# Uses logging handler designed to watch file system. When log file is
+# moved or removed this handler will open a new log file with
+# specified path instantaneously. It makes sense only if log_file
+# option is specified and Linux platform is used. This option is
+# ignored if log_config_append is set. (boolean value)
+#watch_log_file = false
+
+# Use syslog for logging. Existing syslog format is DEPRECATED and
+# will be changed later to honor RFC5424. This option is ignored if
+# log_config_append is set. (boolean value)
+#use_syslog = false
+
+# Syslog facility to receive log lines. This option is ignored if
+# log_config_append is set. (string value)
+#syslog_log_facility = LOG_USER
+
+# Log output to standard error. This option is ignored if
+# log_config_append is set. (boolean value)
+#use_stderr = true
+
+# Format string to use for log messages with context. (string value)
+#logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
+
+# Format string to use for log messages when context is undefined.
+# (string value)
+#logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
+
+# Additional data to append to log message when logging level for the
+# message is DEBUG. (string value)
+#logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d
+
+# Prefix each line of exception output with this format. (string
+# value)
+#logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s
+
+# Defines the format string for %(user_identity)s that is used in
+# logging_context_format_string. (string value)
+#logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s
+
+# List of package logging levels in logger=LEVEL pairs. This option is
+# ignored if log_config_append is set. (list value)
+#default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
+default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,iso8601=WARN,keystonemiddleware=WARN,oslo.messaging=INFO,oslo_messaging=INFO,qpid=WARN,requests.packages.urllib3.connectionpool=WARN,requests.packages.urllib3.util.retry=WARN,routes.middleware=WARN,sqlalchemy=WARN,stevedore=WARN,suds=INFO,taskflow=WARN,urllib3.connectionpool=WARN,urllib3.util.retry=WARN,websocket=WARN
+
+# Enables or disables publication of error events. (boolean value)
+#publish_errors = false
+
+# The format for an instance that is passed with the log message.
+# (string value)
+#instance_format = "[instance: %(uuid)s] "
+
+# The format for an instance UUID that is passed with the log message.
+# (string value)
+#instance_uuid_format = "[instance: %(uuid)s] "
+
+# Enables or disables fatal status of deprecations. (boolean value)
+#fatal_deprecations = false
+
+#
+# From oslo.messaging
+#
+
+# Size of RPC connection pool. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_conn_pool_size
+#rpc_conn_pool_size = 30
+
+# ZeroMQ bind address. Should be a wildcard (*), an ethernet
+# interface, or IP. The "host" option should point or resolve to this
+# address. (string value)
+#rpc_zmq_bind_address = *
+
+# MatchMaker driver. (string value)
+# Allowed values: redis, dummy
+#rpc_zmq_matchmaker = redis
+
+# Type of concurrency used. Either "native" or "eventlet" (string
+# value)
+#rpc_zmq_concurrency = eventlet
+
+# Number of ZeroMQ contexts, defaults to 1. (integer value)
+#rpc_zmq_contexts = 1
+
+# Maximum number of ingress messages to locally buffer per topic.
+# Default is unlimited. (integer value)
+#rpc_zmq_topic_backlog = <None>
+
+# Directory for holding IPC sockets. (string value)
+#rpc_zmq_ipc_dir = /var/run/openstack
+
+# Name of this node. Must be a valid hostname, FQDN, or IP address.
+# Must match "host" option, if running Nova. (string value)
+#rpc_zmq_host = localhost
+
+# Seconds to wait before a cast expires (TTL). The default value of -1
+# specifies an infinite linger period. The value of 0 specifies no
+# linger period. Pending messages shall be discarded immediately when
+# the socket is closed. Only supported by impl_zmq. (integer value)
+#rpc_cast_timeout = -1
+
+# The default number of seconds that poll should wait. Poll raises
+# timeout exception when timeout expired. (integer value)
+#rpc_poll_timeout = 1
+
+# Expiration timeout in seconds of a name service record about
+# existing target ( < 0 means no timeout). (integer value)
+#zmq_target_expire = 120
+
+# Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy.
+# (boolean value)
+#use_pub_sub = true
+
+# Minimal port number for random ports range. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#rpc_zmq_min_port = 49152
+
+# Maximal port number for random ports range. (integer value)
+# Minimum value: 1
+# Maximum value: 65536
+#rpc_zmq_max_port = 65536
+
+# Number of retries to find free port number before fail with
+# ZMQBindError. (integer value)
+#rpc_zmq_bind_port_retries = 100
+
+# Size of executor thread pool. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_thread_pool_size
+#executor_thread_pool_size = 64
+
+# Seconds to wait for a response from a call. (integer value)
+#rpc_response_timeout = 60
+
+# A URL representing the messaging driver to use and its full
+# configuration. If not set, we fall back to the rpc_backend option
+# and driver specific configuration. (string value)
+#transport_url = <None>
+
+# The messaging driver to use, defaults to rabbit. Other drivers
+# include amqp and zmq. (string value)
+#rpc_backend = rabbit
+rpc_backend = rabbit
+
+# The default exchange under which topics are scoped. May be
+# overridden by an exchange name specified in the transport_url
+# option. (string value)
+#control_exchange = openstack
+
+#
+# From oslo.service.service
+#
+
+# Enable eventlet backdoor. Acceptable values are 0, <port>, and
+# <start>:<end>, where 0 results in listening on a random tcp port
+# number; <port> results in listening on the specified port number
+# (and not enabling backdoor if that port is in use); and
+# <start>:<end> results in listening on the smallest unused port
+# number within the specified range of port numbers. The chosen port
+# is displayed in the service's log file. (string value)
+#backdoor_port = <None>
+
+# Enable eventlet backdoor, using the provided path as a unix socket
+# that can receive connections. This option is mutually exclusive with
+# 'backdoor_port' in that only one should be provided. If both are
+# provided then the existence of this option overrides the usage of
+# that option. (string value)
+#backdoor_socket = <None>
+
+# Enables or disables logging values of all registered options when
+# starting a service (at DEBUG level). (boolean value)
+#log_options = true
+
+# Specify a timeout after which a gracefully shutdown server will
+# exit. Zero value means endless wait. (integer value)
+#graceful_shutdown_timeout = 60
+amqp_durable_queues=False
+notification_topics=notifications
+
+
+[api]
+
+#
+# From aodh
+#
+
+# The port for the aodh API server. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+# Deprecated group/name - [DEFAULT]/port
+#port = 8042
+port={{ server.bind.port }}
+
+# The listen IP for the aodh API server. (string value)
+#host = 0.0.0.0
+host={{ server.bind.host }}
+
+# Configuration file for WSGI definition of API. (string value)
+# Deprecated group/name - [DEFAULT]/api_paste_config
+#paste_config = api_paste.ini
+
+# Number of workers for aodh API server. (integer value)
+# Minimum value: 1
+# Deprecated group/name - [DEFAULT]/api_workers
+#workers = 1
+
+# Toggle Pecan Debug Middleware. (boolean value)
+#pecan_debug = false
+pecan_debug = False
+
+
+[coordination]
+
+#
+# From aodh
+#
+
+# The backend URL to use for distributed coordination. If left empty,
+# per-deployment central agent and per-host compute agent won't do
+# workload partitioning and will only function correctly if a single
+# instance of that service is running. (string value)
+#backend_url = <None>
+
+# Number of seconds between heartbeats for distributed coordination.
+# (floating point value)
+#heartbeat = 1.0
+
+# Number of seconds between checks to see if group membership has
+# changed (floating point value)
+#check_watchers = 10.0
+
+
+[database]
+
+#
+# From aodh
+#
+
+# Number of seconds that alarm histories are kept in the database for
+# (<= 0 means forever). (integer value)
+#alarm_history_time_to_live = -1
+alarm_history_time_to_live = {{ server.ttl }}
+
+# The connection string used to connect to the alarm database - rather
+# use ${database.connection} (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#alarm_connection = <None>
+
+#
+# From oslo.db
+#
+
+# The file name to use with SQLite. (string value)
+# Deprecated group/name - [DEFAULT]/sqlite_db
+#sqlite_db = oslo.sqlite
+
+# If True, SQLite uses synchronous mode. (boolean value)
+# Deprecated group/name - [DEFAULT]/sqlite_synchronous
+#sqlite_synchronous = true
+
+# The back end to use for the database. (string value)
+# Deprecated group/name - [DEFAULT]/db_backend
+#backend = sqlalchemy
+
+# The SQLAlchemy connection string to use to connect to the database.
+# (string value)
+# Deprecated group/name - [DEFAULT]/sql_connection
+# Deprecated group/name - [DATABASE]/sql_connection
+# Deprecated group/name - [sql]/connection
+connection = {{ server.database.engine }}://{{ server.database.user }}:{{ server.database.password }}@{{ server.database.host }}/{{ server.database.name }}
+
+# The SQLAlchemy connection string to use to connect to the slave
+# database. (string value)
+#slave_connection = <None>
+
+# The SQL mode to be used for MySQL sessions. This option, including
+# the default, overrides any server-set SQL mode. To use whatever SQL
+# mode is set by the server configuration, set this to no value.
+# Example: mysql_sql_mode= (string value)
+#mysql_sql_mode = TRADITIONAL
+
+# Timeout before idle SQL connections are reaped. (integer value)
+# Deprecated group/name - [DEFAULT]/sql_idle_timeout
+# Deprecated group/name - [DATABASE]/sql_idle_timeout
+# Deprecated group/name - [sql]/idle_timeout
+#idle_timeout = 3600
+
+# Minimum number of SQL connections to keep open in a pool. (integer
+# value)
+# Deprecated group/name - [DEFAULT]/sql_min_pool_size
+# Deprecated group/name - [DATABASE]/sql_min_pool_size
+#min_pool_size = 1
+
+# Maximum number of SQL connections to keep open in a pool. (integer
+# value)
+# Deprecated group/name - [DEFAULT]/sql_max_pool_size
+# Deprecated group/name - [DATABASE]/sql_max_pool_size
+#max_pool_size = <None>
+
+# Maximum number of database connection retries during startup. Set to
+# -1 to specify an infinite retry count. (integer value)
+# Deprecated group/name - [DEFAULT]/sql_max_retries
+# Deprecated group/name - [DATABASE]/sql_max_retries
+#max_retries = 10
+
+# Interval between retries of opening a SQL connection. (integer
+# value)
+# Deprecated group/name - [DEFAULT]/sql_retry_interval
+# Deprecated group/name - [DATABASE]/reconnect_interval
+#retry_interval = 10
+
+# If set, use this value for max_overflow with SQLAlchemy. (integer
+# value)
+# Deprecated group/name - [DEFAULT]/sql_max_overflow
+# Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
+#max_overflow = 50
+
+# Verbosity of SQL debugging information: 0=None, 100=Everything.
+# (integer value)
+# Deprecated group/name - [DEFAULT]/sql_connection_debug
+#connection_debug = 0
+
+# Add Python stack traces to SQL as comment strings. (boolean value)
+# Deprecated group/name - [DEFAULT]/sql_connection_trace
+#connection_trace = false
+
+# If set, use this value for pool_timeout with SQLAlchemy. (integer
+# value)
+# Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
+#pool_timeout = <None>
+
+# Enable the experimental use of database reconnect on connection
+# lost. (boolean value)
+#use_db_reconnect = false
+
+# Seconds between retries of a database transaction. (integer value)
+#db_retry_interval = 1
+
+# If True, increases the interval between retries of a database
+# operation up to db_max_retry_interval. (boolean value)
+#db_inc_retry_interval = true
+
+# If db_inc_retry_interval is set, the maximum seconds between retries
+# of a database operation. (integer value)
+#db_max_retry_interval = 10
+
+# Maximum retries in case of connection error or deadlock error before
+# error is raised. Set to -1 to specify an infinite retry count.
+# (integer value)
+#db_max_retries = 20
+
+
+[keystone_authtoken]
+
+#
+# From keystonemiddleware.auth_token
+#
+
+
+# Service tenant name. (string value)
+#admin_tenant_name = admin
+auth_host={{ server.identity.host }}
+
+# Port of the admin Identity API endpoint (integer value)
+#auth_port=35357
+auth_port={{ server.identity.port }}
+
+# Protocol of the admin Identity API endpoint(http or https)
+# (string value)
+#auth_protocol=https
+auth_protocol=http
+
+# Complete public Identity API endpoint (string value)
+#auth_uri=<None>
+auth_uri=http://{{ server.identity.host }}:5000/
+
+# Complete admin Identity API endpoint. This should specify
+# the unversioned root endpoint e.g. https://localhost:35357/
+# (string value)
+#identity_uri=<None>
+identity_uri=http://{{ server.identity.host }}:35357
+
+# API version of the admin Identity API endpoint (string
+# value)
+#auth_version=<None>
+
+# Do not handle authorization requests within the middleware,
+# but delegate the authorization decision to downstream WSGI
+# components (boolean value)
+#delay_auth_decision=false
+
+# Request timeout value for communicating with Identity API
+# server. (boolean value)
+#http_connect_timeout=<None>
+
+# How many times are we trying to reconnect when communicating
+# with Identity API Server. (integer value)
+#http_request_max_retries=3
+
+# This option is deprecated and may be removed in a future
+# release. Single shared secret with the Keystone
+# configuration used for bootstrapping a Keystone
+# installation, or otherwise bypassing the normal
+# authentication process. This option should not be used, use
+# `admin_user` and `admin_password` instead. (string value)
+#admin_token=<None>
+
+# Keystone account username (string value)
+#admin_user=<None>
+admin_user={{ server.identity.user }}
+
+# Keystone account password (string value)
+#admin_password=<None>
+admin_password={{ server.identity.password }}
+
+# Keystone service account tenant name to validate user tokens
+# (string value)
+#admin_tenant_name=admin
+admin_tenant_name={{ server.identity.tenant }}
+
+[matchmaker_redis]
+
+#
+# From oslo.messaging
+#
+
+# Host to locate redis. (string value)
+#host = 127.0.0.1
+
+# Use this port to connect to redis host. (integer value)
+#port = 6379
+
+# Password for Redis server (optional). (string value)
+#password = <None>
+
+[matchmaker_redis]
+
+#
+# From oslo.messaging
+#
+
+# Host to locate redis. (string value)
+#host = 127.0.0.1
+
+# Use this port to connect to redis host. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#port = 6379
+
+# Password for Redis server (optional). (string value)
+#password =
+
+# List of Redis Sentinel hosts (fault tolerance mode) e.g.
+# [host:port, host1:port ... ] (list value)
+#sentinel_hosts =
+
+# Redis replica set name. (string value)
+#sentinel_group_name = oslo-messaging-zeromq
+
+# Time in ms to wait between connection attempts. (integer value)
+#wait_timeout = 500
+
+# Time in ms to wait before the transaction is killed. (integer value)
+#check_timeout = 20000
+
+# Timeout in ms on blocking socket operations (integer value)
+#socket_timeout = 1000
+
+
+[oslo_messaging_amqp]
+
+#
+# From oslo.messaging
+#
+
+# address prefix used when sending to a specific server (string value)
+# Deprecated group/name - [amqp1]/server_request_prefix
+#server_request_prefix = exclusive
+
+# address prefix used when broadcasting to all servers (string value)
+# Deprecated group/name - [amqp1]/broadcast_prefix
+#broadcast_prefix = broadcast
+
+# address prefix when sending to any server in group (string value)
+# Deprecated group/name - [amqp1]/group_request_prefix
+#group_request_prefix = unicast
+
+# Name for the AMQP container (string value)
+# Deprecated group/name - [amqp1]/container_name
+#container_name = <None>
+
+# Timeout for inactive connections (in seconds) (integer value)
+# Deprecated group/name - [amqp1]/idle_timeout
+#idle_timeout = 0
+
+# Debug: dump AMQP frames to stdout (boolean value)
+# Deprecated group/name - [amqp1]/trace
+#trace = false
+
+# CA certificate PEM file to verify server certificate (string value)
+# Deprecated group/name - [amqp1]/ssl_ca_file
+#ssl_ca_file =
+
+# Identifying certificate PEM file to present to clients (string
+# value)
+# Deprecated group/name - [amqp1]/ssl_cert_file
+#ssl_cert_file =
+
+# Private key PEM file used to sign cert_file certificate (string
+# value)
+# Deprecated group/name - [amqp1]/ssl_key_file
+#ssl_key_file =
+
+# Password for decrypting ssl_key_file (if encrypted) (string value)
+# Deprecated group/name - [amqp1]/ssl_key_password
+#ssl_key_password = <None>
+
+# Accept clients using either SSL or plain TCP (boolean value)
+# Deprecated group/name - [amqp1]/allow_insecure_clients
+#allow_insecure_clients = false
+
+# Space separated list of acceptable SASL mechanisms (string value)
+# Deprecated group/name - [amqp1]/sasl_mechanisms
+#sasl_mechanisms =
+
+# Path to directory that contains the SASL configuration (string
+# value)
+# Deprecated group/name - [amqp1]/sasl_config_dir
+#sasl_config_dir =
+
+# Name of configuration file (without .conf suffix) (string value)
+# Deprecated group/name - [amqp1]/sasl_config_name
+#sasl_config_name =
+
+# User name for message broker authentication (string value)
+# Deprecated group/name - [amqp1]/username
+#username =
+
+# Password for message broker authentication (string value)
+# Deprecated group/name - [amqp1]/password
+#password =
+
+
+[oslo_messaging_notifications]
+
+#
+# From oslo.messaging
+#
+
+# The Drivers(s) to handle sending notifications. Possible values are
+# messaging, messagingv2, routing, log, test, noop (multi valued)
+# Deprecated group/name - [DEFAULT]/notification_driver
+#driver =
+
+# A URL representing the messaging driver to use for notifications. If
+# not set, we fall back to the same configuration used for RPC.
+# (string value)
+# Deprecated group/name - [DEFAULT]/notification_transport_url
+#transport_url = <None>
+
+# AMQP topic used for OpenStack notifications. (list value)
+# Deprecated group/name - [rpc_notifier2]/topics
+# Deprecated group/name - [DEFAULT]/notification_topics
+#topics = notifications
+
+
+[oslo_messaging_rabbit]
+
+#
+# From oslo.messaging
+#
+
+# Use durable queues in AMQP. (boolean value)
+# Deprecated group/name - [DEFAULT]/rabbit_durable_queues
+#amqp_durable_queues = false
+
+# Auto-delete queues in AMQP. (boolean value)
+# Deprecated group/name - [DEFAULT]/amqp_auto_delete
+#amqp_auto_delete = false
+
+# SSL version to use (valid only if SSL enabled). Valid values are
+# TLSv1 and SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be
+# available on some distributions. (string value)
+# Deprecated group/name - [DEFAULT]/kombu_ssl_version
+#kombu_ssl_version =
+
+# SSL key file (valid only if SSL enabled). (string value)
+# Deprecated group/name - [DEFAULT]/kombu_ssl_keyfile
+#kombu_ssl_keyfile =
+
+# SSL cert file (valid only if SSL enabled). (string value)
+# Deprecated group/name - [DEFAULT]/kombu_ssl_certfile
+#kombu_ssl_certfile =
+
+# SSL certification authority file (valid only if SSL enabled).
+# (string value)
+# Deprecated group/name - [DEFAULT]/kombu_ssl_ca_certs
+#kombu_ssl_ca_certs =
+
+# How long to wait before reconnecting in response to an AMQP consumer
+# cancel notification. (floating point value)
+# Deprecated group/name - [DEFAULT]/kombu_reconnect_delay
+#kombu_reconnect_delay = 1.0
+
+# RabbitMQ HA cluster host:port pairs. (list value)
+# Deprecated group/name - [DEFAULT]/rabbit_hosts
+{%- if server.message_queue.members is defined %}
+rabbit_hosts = {% for member in server.message_queue.members -%}
+ {{ member.host }}:{{ member.get('port', 5672) }}
+ {%- if not loop.last -%},{%- endif -%}
+ {%- endfor -%}
+{%- else %}
+
+# The RabbitMQ broker address where a single node is used. (string
+# value)
+# Deprecated group/name - [DEFAULT]/rabbit_host
+#rabbit_host = localhost
+rabbit_host = {{ server.message_queue.host }}
+
+# The RabbitMQ broker port where a single node is used. (integer
+# value)
+# Deprecated group/name - [DEFAULT]/rabbit_port
+#rabbit_port = 5672
+rabbit_port = {{ server.message_queue.port }}
+
+{%- endif %}
+
+# Connect over SSL for RabbitMQ. (boolean value)
+# Deprecated group/name - [DEFAULT]/rabbit_use_ssl
+#rabbit_use_ssl = false
+
+# The RabbitMQ userid. (string value)
+# Deprecated group/name - [DEFAULT]/rabbit_userid
+#rabbit_userid = guest
+rabbit_userid = {{ server.message_queue.user }}
+
+# The RabbitMQ password. (string value)
+# Deprecated group/name - [DEFAULT]/rabbit_password
+#rabbit_password = guest
+rabbit_password = {{ server.message_queue.password }}
+
+# The RabbitMQ login method. (string value)
+# Deprecated group/name - [DEFAULT]/rabbit_login_method
+#rabbit_login_method = AMQPLAIN
+
+# The RabbitMQ virtual host. (string value)
+# Deprecated group/name - [DEFAULT]/rabbit_virtual_host
+#rabbit_virtual_host = /
+rabbit_virtual_host = {{ server.message_queue.virtual_host }}
+
+# How frequently to retry connecting with RabbitMQ. (integer value)
+#rabbit_retry_interval = 1
+
+# How long to backoff for between retries when connecting to RabbitMQ.
+# (integer value)
+# Deprecated group/name - [DEFAULT]/rabbit_retry_backoff
+#rabbit_retry_backoff = 2
+
+# Maximum number of RabbitMQ connection retries. Default is 0
+# (infinite retry count). (integer value)
+# Deprecated group/name - [DEFAULT]/rabbit_max_retries
+#rabbit_max_retries = 0
+
+# Use HA queues in RabbitMQ (x-ha-policy: all). If you change this
+# option, you must wipe the RabbitMQ database. (boolean value)
+# Deprecated group/name - [DEFAULT]/rabbit_ha_queues
+#rabbit_ha_queues = false
+
+# Number of seconds after which the Rabbit broker is considered down
+# if heartbeat's keep-alive fails (0 disable the heartbeat). (integer
+# value)
+#heartbeat_timeout_threshold = 60
+
+# How often times during the heartbeat_timeout_threshold we check the
+# heartbeat. (integer value)
+#heartbeat_rate = 2
+
+# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake
+# (boolean value)
+# Deprecated group/name - [DEFAULT]/fake_rabbit
+#fake_rabbit = false
+
+
+[oslo_policy]
+
+#
+# From oslo.policy
+#
+
+# The JSON file that defines policies. (string value)
+# Deprecated group/name - [DEFAULT]/policy_file
+#policy_file = policy.json
+policy_file = /etc/aodh/policy.json
+
+# Default rule. Enforced when a requested rule is not found. (string
+# value)
+# Deprecated group/name - [DEFAULT]/policy_default_rule
+#policy_default_rule = default
+
+# Directories where policy configuration files are stored. They can be
+# relative to any directory in the search path defined by the
+# config_dir option, or absolute paths. The file defined by
+# policy_file must exist for these directories to be searched.
+# Missing or empty directories are ignored. (multi valued)
+# Deprecated group/name - [DEFAULT]/policy_dirs
+#policy_dirs = policy.d
+
+[service_credentials]
+
+#
+# Options defined in aodh
+#
+
+
+# User name to use for OpenStack service access. (string
+# value)
+#os_username=ceilometer
+os_username={{ server.identity.user }}
+
+# Password to use for OpenStack service access. (string value)
+#os_password=admin
+os_password={{ server.identity.password }}
+
+# Tenant ID to use for OpenStack service access. (string
+# value)
+#os_tenant_id=
+
+# Tenant name to use for OpenStack service access. (string
+# value)
+#os_tenant_name=admin
+os_tenant_name={{ server.identity.tenant }}
+
+# Certificate chain for SSL validation. (string value)
+#os_cacert=<None>
+
+# Auth URL to use for OpenStack service access. (string value)
+#os_auth_url=http://localhost:5000/v2.0
+os_auth_url=http://{{ server.identity.host }}:5000/v2.0
+
+# Region name to use for OpenStack service endpoints. (string
+# value)
+#os_region_name=<None>
+os_region_name={{ server.get('region', 'RegionOne') }}
+
+# Type of endpoint in Identity service catalog to use for
+# communication with OpenStack services. (string value)
+#os_endpoint_type=publicURL
+
+# Disables X.509 certificate validation when an SSL connection
+# to Identity Service is established. (boolean value)
+#insecure=false
+
+[notification]
+store_events = {{ server.notifications.store_events }}
\ No newline at end of file
diff --git a/aodh/map.jinja b/aodh/map.jinja
index 7c3a062..263f203 100644
--- a/aodh/map.jinja
+++ b/aodh/map.jinja
@@ -1,29 +1,11 @@
-{%- set source_engine = salt['pillar.get']('aodh:server:source:engine') %}
-
-{%- load_yaml as base_defaults %}
-{%- if source_engine == 'git' %}
-Debian:
- pkgs:
- - python-psycopg2
- dir:
- base: /srv/aodh/venv
- home: /var/lib/aodh
- workspace: /srv/aodh/workspace
-RedHat:
- pkgs:
- - python-psycopg2
- dir:
- base: /srv/aodh/venv
- home: /var/lib/aodh
- workspace: /srv/aodh/workspace
-{%- else %}
-Debian:
- pkgs:
- - aodh
- dir:
- base: /usr/lib/aodh
-{%- endif %}
-{%- endload %}
-
-{%- set server = salt['grains.filter_by'](base_defaults, merge=salt['pillar.get']('aodh:server')) %}
\ No newline at end of file
+{% set server = salt['grains.filter_by']({
+ 'Debian': {
+ 'pkgs': ['aodh-api', 'aodh-evaluator', 'aodh-notifier', 'aodh-listener', 'python-aodhclient'],
+ 'services': ['aodh-api', 'aodh-evaluator', 'aodh-notifier', 'aodh-listener'],
+ },
+ 'RedHat': {
+ 'pkgs':['openstack-aodh-api', 'openstack-aodh-evaluator', 'openstack-aodh-notifier', 'openstack-aodh-listener', 'python-aodhclient'],
+ 'services': ['openstack-aodh-api', 'openstack-aodh-evaluator', 'openstack-aodh-notifier', 'openstack-aodh-listener'],
+ },
+}, merge=salt['pillar.get']('aodh:server')) %}
diff --git a/aodh/meta/sensu.yml b/aodh/meta/sensu.yml
deleted file mode 100644
index 1d9fe2b..0000000
--- a/aodh/meta/sensu.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-# Sample check
-check:
- local_aodh_proc:
- command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_procs -C aodh -u aodh -c 1:1"
- interval: 60
- occurrences: 1
- subscribers:
- - local-aodh-server
diff --git a/aodh/meta/sphinx.yml b/aodh/meta/sphinx.yml
index 0cf8f66..9fa6934 100644
--- a/aodh/meta/sphinx.yml
+++ b/aodh/meta/sphinx.yml
@@ -1,12 +1,39 @@
-{%- from "aodh/map.jinja" import server with context %}
-# Fill in documentation details
doc:
- name: aodh
- description: Some service info
+ name: Aodh
+ description: Alarms provide user-oriented Monitoring-as-a-Service for resources running on OpenStack. This type of monitoring ensures you can automatically scale in or out a group of instances through the Orchestration service, but you can also use alarms for general-purpose awareness of your cloud resources’ health.
role:
+ {%- if pillar.aodh.server is defined %}
+ {%- from "aodh/map.jinja" import server with context %}
server:
name: server
+ endpoint:
+ aodh_api:
+ name: aodh-api
+ type: aodh-api
+ address: http://{{ server.bind.host }}:{{ server.bind.port }}
+ protocol: http
param:
- some_param:
- name: "Some name"
- value: "some value"
+ bind:
+ value: {{ server.bind.host }}:{{ server.bind.port }}
+ ttl:
+ name: "Time to live for ceilometer metrics"
+ value: {{ server.ttl }}
+ version:
+ name: "Version"
+ value: {{ server.version }}
+ database_host:
+ name: "Database"
+ value: {{ server.database.user }}@{{ server.database.host }}:{{ server.database.port }}/{{ server.database.name }}
+ message_queue_ip:
+ name: "Message queue"
+ value: {{ server.message_queue.user }}@{{ server.message_queue.host }}:{{ server.message_queue.port }}{{ server.message_queue.virtual_host }}
+ identity_host:
+ name: "Identity service"
+ value: {{ server.identity.user }}@{{ server.identity.host }}:{{ server.identity.port }}
+ packages:
+ value: |
+ {%- for pkg in server.pkgs %}
+ {%- set pkg_version = "dpkg -l "+pkg+" | grep "+pkg+" | awk '{print $3}'" %}
+ * {{ pkg }}: {{ salt['cmd.run'](pkg_version) }}
+ {%- endfor %}
+ {%- endif %}
\ No newline at end of file
diff --git a/aodh/server.sls b/aodh/server.sls
index 5f60e8f..bdf9eda 100644
--- a/aodh/server.sls
+++ b/aodh/server.sls
@@ -1,4 +1,25 @@
{%- from "aodh/map.jinja" import server with context %}
{%- if server.enabled %}
+# Exclude unsupported openstack versions
+{%- if server.version >= "mitaka" %}
+server_packages:
+ pkg.installed:
+ - names: {{ server.pkgs }}
+
+/etc/aodh/aodh.conf:
+ file.managed:
+ - source: salt://aodh/files/{{ server.version }}/aodh.conf.{{ grains.os_family }}
+ - template: jinja
+ - require:
+ - pkg: server_packages
+
+aodh_server_services:
+ service.running:
+ - names: {{ server.services }}
+ - enable: true
+ - watch:
+ - file: /etc/aodh/aodh.conf
+
+{%- endif %}
{%- endif %}
diff --git a/bindep.txt b/bindep.txt
new file mode 100644
index 0000000..ba84cc5
--- /dev/null
+++ b/bindep.txt
@@ -0,0 +1 @@
+python-yaml
diff --git a/metadata.yml b/metadata.yml
index 0542811..bac9bbe 100644
--- a/metadata.yml
+++ b/metadata.yml
@@ -1,3 +1,3 @@
name: "aodh"
-version: "0.1"
+version: "2016.4.1"
source: "https://github.com/tcpcloud/salt-formula-aodh"
diff --git a/metadata/service/server/cluster.yml b/metadata/service/server/cluster.yml
index 10fc2b6..05ef9b1 100644
--- a/metadata/service/server/cluster.yml
+++ b/metadata/service/server/cluster.yml
@@ -6,5 +6,36 @@
aodh:
server:
enabled: true
+ version: ${_param:aodh_version}
+ cluster: true
+ ttl: 86400
+ debug: false
+ verbose: true
+ database:
+ engine: "mysql+pymysql"
+ host: ${_param:cluster_vip_address}
+ port: 3306
+ name: aodh
+ user: aodh
+ password: ${_param:mysql_aodh_password}
bind:
- address: 0.0.0.0
+ host: ${_param:cluster_local_address}
+ port: 8042
+ identity:
+ engine: keystone
+ host: ${_param:cluster_vip_address}
+ port: 35357
+ tenant: service
+ user: aodh
+ password: ${_param:keystone_aodh_password}
+ message_queue:
+ engine: rabbitmq
+ host: ${_param:cluster_vip_address}
+ port: 5672
+ user: openstack
+ password: ${_param:rabbitmq_openstack_password}
+ virtual_host: '/openstack'
+ # Workaround for https://bugs.launchpad.net/ceilometer/+bug/1337715
+ rpc_thread_pool_size: 5
+ notifications:
+ store_events: true
diff --git a/metadata/service/server/single.yml b/metadata/service/server/single.yml
index 10fc2b6..7b5e146 100644
--- a/metadata/service/server/single.yml
+++ b/metadata/service/server/single.yml
@@ -6,5 +6,33 @@
aodh:
server:
enabled: true
+ version: ${_param:aodh_version}
+ ttl: 86400
+ database:
+ engine: "mysql+pymysql"
+ host: ${_param:single_address}
+ port: 3306
+ name: aodh
+ user: aodh
+ password: ${_param:mysql_nova_password}
bind:
- address: 0.0.0.0
+ host: ${_param:single_address}
+ port: 8042
+ identity:
+ engine: keystone
+ host: ${_param:single_address}
+ port: 35357
+ tenant: service
+ user: aodh
+ password: ${_param:keystone_aodh_password}
+ message_queue:
+ engine: rabbit
+ host: ${_param:single_address}
+ port: 5672
+ user: openstack
+ password: ${_param:rabbitmq_openstack_password}
+ virtual_host: '/openstack'
+ # Workaround for https://bugs.launchpad.net/ceilometer/+bug/1337715
+ rpc_thread_pool_size: 5
+ notifications:
+ store_events: true
\ No newline at end of file
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
index 5b17c94..e1bd1a3 100644
--- a/metadata/service/support.yml
+++ b/metadata/service/support.yml
@@ -8,4 +8,4 @@
sensu:
enabled: false
sphinx:
- enabled: true
+ enabled: true
\ No newline at end of file
diff --git a/tests/pillar/compute_cluster.sls b/tests/pillar/compute_cluster.sls
deleted file mode 100644
index 6f03b6e..0000000
--- a/tests/pillar/compute_cluster.sls
+++ /dev/null
@@ -1,49 +0,0 @@
-nova:
- compute:
- version: liberty
- enabled: true
- virtualization: kvm
- heal_instance_info_cache_interval: 60
- vncproxy_url: openstack:6080
- bind:
- vnc_address: 127.0.0.1
- vnc_port: 6080
- vnc_name: 0.0.0.0
- database:
- engine: mysql
- host: 127.0.0.1
- port: 3306
- name: nova
- user: nova
- password: password
- identity:
- engine: keystone
- host: 127.0.0.1
- port: 35357
- user: nova
- password: password
- tenant: service
- message_queue:
- engine: rabbitmq
- host: 127.0.0.1
- port: 5672
- user: openstack
- password: password
- virtual_host: '/openstack'
- image:
- engine: glance
- host: 127.0.0.1
- port: 9292
- network:
- engine: neutron
- host: 127.0.0.1
- port: 9696
- cache:
- engine: memcached
- members:
- - host: 127.0.0.1
- port: 11211
- - host: 127.0.1.1
- port: 11211
- - host: 127.0.2.1
- port: 11211
diff --git a/tests/pillar/compute_single.sls b/tests/pillar/compute_single.sls
deleted file mode 100644
index 036a140..0000000
--- a/tests/pillar/compute_single.sls
+++ /dev/null
@@ -1,45 +0,0 @@
-nova:
- compute:
- version: liberty
- enabled: true
- virtualization: kvm
- heal_instance_info_cache_interval: 60
- vncproxy_url: openstack:6080
- bind:
- vnc_address: 127.0.0.1
- vnc_port: 6080
- vnc_name: 0.0.0.0
- database:
- engine: mysql
- host: 127.0.0.1
- port: 3306
- name: nova
- user: nova
- password: password
- identity:
- engine: keystone
- host: 127.0.0.1
- port: 35357
- user: nova
- password: password
- tenant: service
- message_queue:
- engine: rabbitmq
- host: 127.0.0.1
- port: 5672
- user: openstack
- password: password
- virtual_host: '/openstack'
- image:
- engine: glance
- host: 127.0.0.1
- port: 9292
- network:
- engine: neutron
- host: 127.0.0.1
- port: 9696
- cache:
- engine: memcached
- members:
- - host: 127.0.0.1
- port: 11211
diff --git a/tests/pillar/control_cluster.sls b/tests/pillar/control_cluster.sls
deleted file mode 100644
index 158f565..0000000
--- a/tests/pillar/control_cluster.sls
+++ /dev/null
@@ -1,48 +0,0 @@
-nova:
- controller:
- enabled: true
- networking: default
- version: liberty
- vncproxy_url: 127.0.0.1
- security_group: false
- dhcp_domain: novalocal
- scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter"
- cpu_allocation_ratio: 16.0
- ram_allocation_ratio: 1.5
- bind:
- private_address: 127.0.0.1
- public_address: 127.0.0.1
- public_name: 127.0.0.1
- novncproxy_port: 6080
- database:
- engine: mysql
- host: 127.0.0.1
- port: 3306
- name: nova
- user: nova
- password: password
- identity:
- engine: keystone
- host: 127.0.0.1
- port: 35357
- user: nova
- password: password
- tenant: service
- message_queue:
- engine: rabbitmq
- host: 127.0.0.1
- port: 5672
- user: openstack
- password: password
- virtual_host: '/openstack'
- ha_queues: true
- glance:
- host:
- port: 9292
- network:
- engine: neutron
- host: 127.0.0.1
- port: 9696
- mtu: 1500
- metadata:
- password: metadata
diff --git a/tests/pillar/control_single.sls b/tests/pillar/control_single.sls
deleted file mode 100644
index 68c77b2..0000000
--- a/tests/pillar/control_single.sls
+++ /dev/null
@@ -1,52 +0,0 @@
-nova:
- controller:
- enabled: true
- networking: contrail
- version: liberty
- security_group: false
- vncproxy_url: 127.0.0.1
- dhcp_domain: novalocal
- scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter"
- cpu_allocation_ratio: 16.0
- ram_allocation_ratio: 1.5
- bind:
- private_address: 127.0.0.1
- public_address: 127.0.0.1
- public_name: 127.0.0.1
- novncproxy_port: 6080
- database:
- engine: mysql
- host: localhost
- port: 3306
- name: nova
- user: nova
- password: password
- identity:
- engine: keystone
- host: 127.0.0.1
- port: 35357
- user: nova
- password: password
- tenant: service
- message_queue:
- engine: rabbitmq
- host: 127.0.0.1
- port: 5672
- user: openstack
- password: password
- virtual_host: '/openstack'
- glance:
- host: 127.0.0.1
- port: 9292
- network:
- engine: neutron
- host: 127.0.0.1
- port: 9696
- mtu: 1500
- metadata:
- password: password
- cache:
- engine: memcached
- members:
- - host: 127.0.0.1
- port: 11211
diff --git a/tests/pillar/server_cluster.sls b/tests/pillar/server_cluster.sls
new file mode 100644
index 0000000..52c527f
--- /dev/null
+++ b/tests/pillar/server_cluster.sls
@@ -0,0 +1,36 @@
+aodh:
+ server:
+ region: RegionOne
+ enabled: true
+ version: mitaka
+ cluster: true
+ ttl: 86400
+ bind:
+ host: 127.0.0.1
+ port: 8042
+ identity:
+ engine: keystone
+ host: 127.0.0.1
+ port: 35357
+ tenant: service
+ user: ceilometer
+ password: password
+ message_queue:
+ engine: rabbitmq
+ members:
+ - host: 127.0.0.1
+ - host: 127.0.0.1
+ - host: 127.0.0.1
+ user: openstack
+ password: password
+ virtual_host: '/openstack'
+ # Workaround for https://bugs.launchpad.net/ceilometer/+bug/1337715
+ rpc_thread_pool_size: 5
+ database:
+ engine: mysql
+ host: 127.0.0.1
+ port: 3306
+ name: aodh
+ user: aodh
+ password: test
+
diff --git a/tests/pillar/server_single.sls b/tests/pillar/server_single.sls
new file mode 100644
index 0000000..5e2cc95
--- /dev/null
+++ b/tests/pillar/server_single.sls
@@ -0,0 +1,31 @@
+aodh:
+ server:
+ region: RegionOne
+ enabled: true
+ version: mitaka
+ cluster: true
+ ttl: 86400
+ bind:
+ host: 127.0.0.1
+ port: 8042
+ identity:
+ engine: keystone
+ host: 127.0.0.1
+ port: 35357
+ tenant: service
+ user: ceilometer
+ password: password
+ message_queue:
+ engine: rabbitmq
+ host: 127.0.0.1
+ user: openstack
+ password: password
+ virtual_host: '/openstack'
+ database:
+ engine: mysql
+ host: 127.0.0.1
+ port: 3306
+ name: aodh
+ user: aodh
+ password: test
+
diff --git a/tests/pillar/single.yml b/tests/pillar/single.yml
deleted file mode 100644
index ab8eaaf..0000000
--- a/tests/pillar/single.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-aodh:
- server:
- enabled: true
- bind:
- address: 0.0.0.0