The watcher.conf
file contains most of the options to configure the
Watcher services.
enable_authentication
¶boolean
true
This option enables or disables user authentication via keystone. Default value is True.
fatal_exception_format_errors
¶boolean
false
Make exception message format errors fatal.
pybasedir
¶string
/builddir/build/BUILD/python-watcher-4.0.0/watcher
Directory where the watcher python module is installed.
bindir
¶string
$pybasedir/bin
Directory where watcher binaries are installed.
state_path
¶string
$pybasedir
Top-level directory for maintaining watcher’s state.
periodic_interval
¶integer
60
This option can be changed without restarting.
Seconds between running periodic tasks.
host
¶host address
c1be.rdu2.centos.org
Name of this node. This can be an opaque identifier. It is not necessarily a hostname, FQDN, or IP address. However, the node name must be valid within an AMQP key.
service_down_time
¶integer
90
Maximum time since last check-in for up service.
run_external_periodic_tasks
¶boolean
true
Some periodic tasks can be run in a separate process. Should we run them here?
backdoor_port
¶string
<None>
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.
backdoor_socket
¶string
<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. Inside the path {pid} will be replaced with the PID of the current process.
log_options
¶boolean
true
Enables or disables logging values of all registered options when starting a service (at DEBUG level).
graceful_shutdown_timeout
¶integer
60
Specify a timeout after which a gracefully shutdown server will exit. Zero value means endless wait.
api_paste_config
¶string
api-paste.ini
File name for the paste.deploy config for api service
wsgi_log_format
¶string
%(client_ip)s "%(request_line)s" status: %(status_code)s len: %(body_length)s time: %(wall_seconds).7f
A python format string that is used as the template to generate log lines. The following values can beformatted into it: client_ip, date_time, request_line, status_code, body_length, wall_seconds.
tcp_keepidle
¶integer
600
Sets the value of TCP_KEEPIDLE in seconds for each server socket. Not supported on OS X.
wsgi_default_pool_size
¶integer
100
Size of the pool of greenthreads used by wsgi
max_header_line
¶integer
16384
Maximum line size of message headers to be accepted. max_header_line may need to be increased when using large tokens (typically those generated when keystone is configured to use PKI tokens with big service catalogs).
wsgi_keep_alive
¶boolean
true
If False, closes the client socket connection explicitly.
client_socket_timeout
¶integer
900
Timeout for client connections’ socket operations. If an incoming connection is idle for this number of seconds it will be closed. A value of ‘0’ means wait forever.
rpc_conn_pool_size
¶integer
30
Size of RPC connection pool.
Group |
Name |
---|---|
DEFAULT |
rpc_conn_pool_size |
conn_pool_min_size
¶integer
2
The pool size limit for connections expiration policy
conn_pool_ttl
¶integer
1200
The time-to-live in sec of idle connections in the pool
executor_thread_pool_size
¶integer
64
Size of executor thread pool when executor is threading or eventlet.
Group |
Name |
---|---|
DEFAULT |
rpc_thread_pool_size |
rpc_response_timeout
¶integer
60
Seconds to wait for a response from a call.
transport_url
¶string
rabbit://
The network address and optional user credentials for connecting to the messaging backend, in URL format. The expected format is:
driver://[user:pass@]host:port[,[userN:passN@]hostN:portN]/virtual_host?query
Example: rabbit://rabbitmq:password@127.0.0.1:5672//
For full details on the fields in the URL see the documentation of oslo_messaging.TransportURL at https://docs.openstack.org/oslo.messaging/latest/reference/transport.html
control_exchange
¶string
openstack
The default exchange under which topics are scoped. May be overridden by an exchange name specified in the transport_url option.
debug
¶boolean
false
This option can be changed without restarting.
If set to true, the logging level will be set to DEBUG instead of the default INFO level.
log_config_append
¶string
<None>
This option can be changed without restarting.
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, log-date-format).
Group |
Name |
---|---|
DEFAULT |
log-config |
DEFAULT |
log_config |
log_date_format
¶string
%Y-%m-%d %H:%M:%S
Defines the format string for %(asctime)s in log records. Default: the value above . This option is ignored if log_config_append is set.
log_file
¶string
<None>
(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.
Group |
Name |
---|---|
DEFAULT |
logfile |
log_dir
¶string
<None>
(Optional) The base directory used for relative log_file paths. This option is ignored if log_config_append is set.
Group |
Name |
---|---|
DEFAULT |
logdir |
watch_log_file
¶boolean
false
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.
use_syslog
¶boolean
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.
use_journal
¶boolean
false
Enable journald for logging. If running in a systemd environment you may wish to enable journal support. Doing so will use the journal native protocol which includes structured metadata in addition to log messages.This option is ignored if log_config_append is set.
syslog_log_facility
¶string
LOG_USER
Syslog facility to receive log lines. This option is ignored if log_config_append is set.
use_json
¶boolean
false
Use JSON formatting for logging. This option is ignored if log_config_append is set.
use_stderr
¶boolean
false
Log output to standard error. This option is ignored if log_config_append is set.
use_eventlog
¶boolean
false
Log output to Windows Event Log.
log_rotate_interval
¶integer
1
The amount of time before the log files are rotated. This option is ignored unless log_rotation_type is setto “interval”.
log_rotate_interval_type
¶string
days
Seconds, Minutes, Hours, Days, Weekday, Midnight
Rotation interval type. The time of the last file change (or the time when the service was started) is used when scheduling the next rotation.
max_logfile_count
¶integer
30
Maximum number of rotated log files.
max_logfile_size_mb
¶integer
200
Log file maximum size in MB. This option is ignored if “log_rotation_type” is not set to “size”.
log_rotation_type
¶string
none
interval, size, none
Log rotation type.
Possible values
Rotate logs at predefined time intervals.
Rotate logs once they reach a predefined size.
Do not rotate log files.
logging_context_format_string
¶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 with context. Used by oslo_log.formatters.ContextFormatter
logging_default_format_string
¶string
%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
Format string to use for log messages when context is undefined. Used by oslo_log.formatters.ContextFormatter
logging_debug_format_suffix
¶string
%(funcName)s %(pathname)s:%(lineno)d
Additional data to append to log message when logging level for the message is DEBUG. Used by oslo_log.formatters.ContextFormatter
logging_exception_prefix
¶string
%(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s
Prefix each line of exception output with this format. Used by oslo_log.formatters.ContextFormatter
logging_user_identity_format
¶string
%(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s
Defines the format string for %(user_identity)s that is used in logging_context_format_string. Used by oslo_log.formatters.ContextFormatter
default_log_levels
¶list
amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=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,oslo_policy=INFO,dogpile.core.dogpile=INFO
List of package logging levels in logger=LEVEL pairs. This option is ignored if log_config_append is set.
publish_errors
¶boolean
false
Enables or disables publication of error events.
instance_format
¶string
"[instance: %(uuid)s] "
The format for an instance that is passed with the log message.
instance_uuid_format
¶string
"[instance: %(uuid)s] "
The format for an instance UUID that is passed with the log message.
rate_limit_interval
¶integer
0
Interval, number of seconds, of log rate limiting.
rate_limit_burst
¶integer
0
Maximum number of logged messages per rate_limit_interval.
rate_limit_except_level
¶string
CRITICAL
Log level name used by rate limiting: CRITICAL, ERROR, INFO, WARNING, DEBUG or empty string. Logs with level greater or equal to rate_limit_except_level are not filtered. An empty string means that all levels are filtered.
fatal_deprecations
¶boolean
false
Enables or disables fatal status of deprecations.
port
¶port number
9322
0
65535
The port for the watcher API server
host
¶host address
127.0.0.1
The listen IP address for the watcher API server
max_limit
¶integer
1000
The maximum number of items returned in a single response from a collection resource
workers
¶integer
<None>
1
Number of workers for Watcher API service. The default is equal to the number of CPUs available if that can be determined, else a default worker count of 1 is returned.
enable_ssl_api
¶boolean
false
Enable the integrated stand-alone API to service requests via HTTPS instead of HTTP. If there is a front-end service performing HTTPS offloading from the service, this option should be False; note, you will want to change public API endpoint to represent SSL termination URL with ‘public_endpoint’ option.
enable_webhooks_auth
¶boolean
true
This option enables or disables webhook request authentication via keystone. Default value is True.
config_prefix
¶string
cache.oslo
Prefix for building the configuration dictionary for the cache region. This should not need to be changed unless there is another dogpile.cache region with the same configuration name.
expiration_time
¶integer
600
Default TTL, in seconds, for any cached item in the dogpile.cache region. This applies to any cached method that doesn’t have an explicit cache expiration time defined for it.
backend
¶string
dogpile.cache.null
oslo_cache.memcache_pool, oslo_cache.dict, oslo_cache.mongo, oslo_cache.etcd3gw, dogpile.cache.memcached, dogpile.cache.pylibmc, dogpile.cache.bmemcached, dogpile.cache.dbm, dogpile.cache.redis, dogpile.cache.memory, dogpile.cache.memory_pickle, dogpile.cache.null
Cache backend module. For eventlet-based or environments with hundreds of threaded servers, Memcache with pooling (oslo_cache.memcache_pool) is recommended. For environments with less than 100 threaded servers, Memcached (dogpile.cache.memcached) or Redis (dogpile.cache.redis) is recommended. Test environments with a single instance of the server can use the dogpile.cache.memory backend.
backend_argument
¶multi-valued
''
Arguments supplied to the backend module. Specify this option once per argument to be passed to the dogpile.cache backend. Example format: “<argname>:<value>”.
proxies
¶list
''
Proxy classes to import that will affect the way the dogpile.cache backend functions. See the dogpile.cache documentation on changing-backend-behavior.
enabled
¶boolean
false
Global toggle for caching.
debug_cache_backend
¶boolean
false
Extra debugging from the cache backend (cache keys, get/set/delete/etc calls). This is only really useful if you need to see the specific cache-backend get/set/delete calls with the keys/values. Typically this should be left set to false.
memcache_servers
¶list
localhost:11211
Memcache servers in the format of “host:port”. (dogpile.cache.memcached and oslo_cache.memcache_pool backends only).
memcache_dead_retry
¶integer
300
Number of seconds memcached server is considered dead before it is tried again. (dogpile.cache.memcache and oslo_cache.memcache_pool backends only).
memcache_socket_timeout
¶floating point
1.0
Timeout in seconds for every call to a server. (dogpile.cache.memcache and oslo_cache.memcache_pool backends only).
memcache_pool_maxsize
¶integer
10
Max total number of open connections to every memcached server. (oslo_cache.memcache_pool backend only).
memcache_pool_unused_timeout
¶integer
60
Number of seconds a connection to memcached is held unused in the pool before it is closed. (oslo_cache.memcache_pool backend only).
memcache_pool_connection_get_timeout
¶integer
10
Number of seconds that an operation will wait to get a memcache client connection.
api_version
¶string
2
Version of Ceilometer API to use in ceilometerclient.
Warning
This option is deprecated for removal since 1.13.0. Its value may be silently ignored in the future.
Ceilometer API is deprecated since Ocata release. Any related configuration options are deprecated too.
endpoint_type
¶string
internalURL
Type of endpoint to use in ceilometerclient. Supported values: internalURL, publicURL, adminURL. The default is internalURL.
Warning
This option is deprecated for removal since 1.13.0. Its value may be silently ignored in the future.
Ceilometer API is deprecated since Ocata release. Any related configuration options are deprecated too.
region_name
¶string
<None>
Region in Identity service catalog to use for communication with the OpenStack service.
Warning
This option is deprecated for removal since 1.13.0. Its value may be silently ignored in the future.
Ceilometer API is deprecated since Ocata release. Any related configuration options are deprecated too.
api_version
¶string
3
Version of Cinder API to use in cinderclient.
endpoint_type
¶string
publicURL
Type of endpoint to use in cinderclient. Supported values: internalURL, publicURL, adminURL. The default is publicURL.
region_name
¶string
<None>
Region in Identity service catalog to use for communication with the OpenStack service.
collector_plugins
¶list
compute
The cluster data model plugin names.
Supported in-tree collectors include:
compute
- data model collector for nova
storage
- data model collector for cinder
baremetal
- data model collector for ironic
Custom data model collector plugins can be defined with the
watcher_cluster_data_model_collectors
extension point.
api_call_retries
¶integer
10
Number of retries before giving up on external service calls.
api_query_timeout
¶integer
1
Time before retry after failed call to external service.
mysql_engine
¶string
InnoDB
MySQL engine to use.
sqlite_synchronous
¶boolean
true
If True, SQLite uses synchronous mode.
Group |
Name |
---|---|
DEFAULT |
sqlite_synchronous |
backend
¶string
sqlalchemy
The back end to use for the database.
Group |
Name |
---|---|
DEFAULT |
db_backend |
connection
¶string
<None>
The SQLAlchemy connection string to use to connect to the database.
Group |
Name |
---|---|
DEFAULT |
sql_connection |
DATABASE |
sql_connection |
sql |
connection |
slave_connection
¶string
<None>
The SQLAlchemy connection string to use to connect to the slave database.
mysql_sql_mode
¶string
TRADITIONAL
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=
mysql_enable_ndb
¶boolean
false
If True, transparently enables support for handling MySQL Cluster (NDB).
connection_recycle_time
¶integer
3600
Connections which have been present in the connection pool longer than this number of seconds will be replaced with a new one the next time they are checked out from the pool.
Group |
Name |
---|---|
DATABASE |
idle_timeout |
database |
idle_timeout |
DEFAULT |
sql_idle_timeout |
DATABASE |
sql_idle_timeout |
sql |
idle_timeout |
max_pool_size
¶integer
5
Maximum number of SQL connections to keep open in a pool. Setting a value of 0 indicates no limit.
Group |
Name |
---|---|
DEFAULT |
sql_max_pool_size |
DATABASE |
sql_max_pool_size |
max_retries
¶integer
10
Maximum number of database connection retries during startup. Set to -1 to specify an infinite retry count.
Group |
Name |
---|---|
DEFAULT |
sql_max_retries |
DATABASE |
sql_max_retries |
retry_interval
¶integer
10
Interval between retries of opening a SQL connection.
Group |
Name |
---|---|
DEFAULT |
sql_retry_interval |
DATABASE |
reconnect_interval |
max_overflow
¶integer
50
If set, use this value for max_overflow with SQLAlchemy.
Group |
Name |
---|---|
DEFAULT |
sql_max_overflow |
DATABASE |
sqlalchemy_max_overflow |
connection_debug
¶integer
0
0
100
Verbosity of SQL debugging information: 0=None, 100=Everything.
Group |
Name |
---|---|
DEFAULT |
sql_connection_debug |
connection_trace
¶boolean
false
Add Python stack traces to SQL as comment strings.
Group |
Name |
---|---|
DEFAULT |
sql_connection_trace |
pool_timeout
¶integer
<None>
If set, use this value for pool_timeout with SQLAlchemy.
Group |
Name |
---|---|
DATABASE |
sqlalchemy_pool_timeout |
use_db_reconnect
¶boolean
false
Enable the experimental use of database reconnect on connection lost.
db_retry_interval
¶integer
1
Seconds between retries of a database transaction.
db_inc_retry_interval
¶boolean
true
If True, increases the interval between retries of a database operation up to db_max_retry_interval.
db_max_retry_interval
¶integer
10
If db_inc_retry_interval is set, the maximum seconds between retries of a database operation.
db_max_retries
¶integer
20
Maximum retries in case of connection error or deadlock error before error is raised. Set to -1 to specify an infinite retry count.
connection_parameters
¶string
''
Optional URL parameters to append onto the connection URL at connect time; specify as param1=value1¶m2=value2&…
api_version
¶string
2
Version of Glance API to use in glanceclient.
endpoint_type
¶string
publicURL
Type of endpoint to use in glanceclient. Supported values: internalURL, publicURL, adminURL. The default is publicURL.
region_name
¶string
<None>
Region in Identity service catalog to use for communication with the OpenStack service.
api_version
¶string
1
Version of Gnocchi API to use in gnocchiclient.
endpoint_type
¶string
public
Type of endpoint to use in gnocchi client. Supported values: internal, public, admin. The default is public.
region_name
¶string
<None>
Region in Identity service catalog to use for communication with the OpenStack service.
See https://docs.openstack.org/watcher/latest/datasources/grafana.html for details on how these options are used.
token
¶string
<None>
Authentication token to gain access
base_url
¶string
<None>
First part of the url (including https:// or http://) up until project id part. Example: https://secure.org/api/datasource/proxy/
project_id_map
¶dict
host_airflow:None,host_cpu_usage:None,host_inlet_temp:None,host_outlet_temp:None,host_power:None,host_ram_usage:None,instance_cpu_usage:None,instance_l3_cache_usage:None,instance_ram_allocated:None,instance_ram_usage:None,instance_root_disk_size:None
Mapping of datasource metrics to grafana project ids. Dictionary values should be positive integers. Example: 7465
database_map
¶dict
host_airflow:None,host_cpu_usage:None,host_inlet_temp:None,host_outlet_temp:None,host_power:None,host_ram_usage:None,instance_cpu_usage:None,instance_l3_cache_usage:None,instance_ram_allocated:None,instance_ram_usage:None,instance_root_disk_size:None
Mapping of datasource metrics to grafana databases. Values should be strings. Example: influx_production
attribute_map
¶dict
host_airflow:None,host_cpu_usage:None,host_inlet_temp:None,host_outlet_temp:None,host_power:None,host_ram_usage:None,instance_cpu_usage:None,instance_l3_cache_usage:None,instance_ram_allocated:None,instance_ram_usage:None,instance_root_disk_size:None
Mapping of datasource metrics to resource attributes. For a complete list of available attributes see https://docs.openstack.org/watcher/latest/datasources/grafana.html#attribute Values should be strings. Example: hostname
translator_map
¶dict
host_airflow:None,host_cpu_usage:None,host_inlet_temp:None,host_outlet_temp:None,host_power:None,host_ram_usage:None,instance_cpu_usage:None,instance_l3_cache_usage:None,instance_ram_allocated:None,instance_ram_usage:None,instance_root_disk_size:None
Mapping of datasource metrics to grafana translators. Values should be strings. Example: influxdb
query_map
¶dict
host_airflow:None,host_cpu_usage:None,host_inlet_temp:None,host_outlet_temp:None,host_power:None,host_ram_usage:None,instance_cpu_usage:None,instance_l3_cache_usage:None,instance_ram_allocated:None,instance_ram_usage:None,instance_root_disk_size:None
Mapping of datasource metrics to grafana queries. Values should be strings for which the .format method will transform it. The transformation offers five parameters to the query labeled {0} to {4}. {0} will be replaced with the aggregate, {1} with the resource attribute, {2} with the period, {3} with the granularity and {4} with translator specifics for InfluxDB this will be the retention period. These queries will need to be constructed using tools such as Postman. Example: SELECT cpu FROM {4}.cpu_percent WHERE host == ‘{1}’ AND time > now()-{2}s
retention_periods
¶dict
five_years:31556952,one_month:2592000,one_week:604800
Keys are the names of retention periods in InfluxDB and the values should correspond with the maximum time they can retain in seconds. Example: {‘one_day’: 86400}
api_version
¶string
1
Version of Ironic API to use in ironicclient.
endpoint_type
¶string
publicURL
Type of endpoint to use in ironicclient. Supported values: internalURL, publicURL, adminURL. The default is publicURL.
region_name
¶string
<None>
Region in Identity service catalog to use for communication with the OpenStack service.
www_authenticate_uri
¶string
<None>
Complete “public” Identity API endpoint. This endpoint should not be an “admin” endpoint, as it should be accessible by all end users. Unauthenticated clients are redirected to this endpoint to authenticate. Although this endpoint should ideally be unversioned, client support in the wild varies. If you’re using a versioned v2 endpoint here, then this should not be the same endpoint the service user utilizes for validating tokens, because normal end users may not be able to reach that endpoint.
Group |
Name |
---|---|
keystone_authtoken |
auth_uri |
auth_uri
¶string
<None>
Complete “public” Identity API endpoint. This endpoint should not be an “admin” endpoint, as it should be accessible by all end users. Unauthenticated clients are redirected to this endpoint to authenticate. Although this endpoint should ideally be unversioned, client support in the wild varies. If you’re using a versioned v2 endpoint here, then this should not be the same endpoint the service user utilizes for validating tokens, because normal end users may not be able to reach that endpoint. This option is deprecated in favor of www_authenticate_uri and will be removed in the S release.
Warning
This option is deprecated for removal since Queens. Its value may be silently ignored in the future.
The auth_uri option is deprecated in favor of www_authenticate_uri and will be removed in the S release.
auth_version
¶string
<None>
API version of the Identity API endpoint.
interface
¶string
admin
Interface to use for the Identity API endpoint. Valid values are “public”, “internal” or “admin”(default).
delay_auth_decision
¶boolean
false
Do not handle authorization requests within the middleware, but delegate the authorization decision to downstream WSGI components.
http_connect_timeout
¶integer
<None>
Request timeout value for communicating with Identity API server.
http_request_max_retries
¶integer
3
How many times are we trying to reconnect when communicating with Identity API Server.
cache
¶string
<None>
Request environment key where the Swift cache object is stored. When auth_token middleware is deployed with a Swift cache, use this option to have the middleware share a caching backend with swift. Otherwise, use the memcached_servers
option instead.
certfile
¶string
<None>
Required if identity server requires client certificate
keyfile
¶string
<None>
Required if identity server requires client certificate
cafile
¶string
<None>
A PEM encoded Certificate Authority to use when verifying HTTPs connections. Defaults to system CAs.
insecure
¶boolean
false
Verify HTTPS connections.
region_name
¶string
<None>
The region in which the identity server can be found.
memcached_servers
¶list
<None>
Optionally specify a list of memcached server(s) to use for caching. If left undefined, tokens will instead be cached in-process.
Group |
Name |
---|---|
keystone_authtoken |
memcache_servers |
token_cache_time
¶integer
300
In order to prevent excessive effort spent validating tokens, the middleware caches previously-seen tokens for a configurable duration (in seconds). Set to -1 to disable caching completely.
memcache_security_strategy
¶string
None
None, MAC, ENCRYPT
(Optional) If defined, indicate whether token data should be authenticated or authenticated and encrypted. If MAC, token data is authenticated (with HMAC) in the cache. If ENCRYPT, token data is encrypted and authenticated in the cache. If the value is not one of these options or empty, auth_token will raise an exception on initialization.
memcache_secret_key
¶string
<None>
(Optional, mandatory if memcache_security_strategy is defined) This string is used for key derivation.
memcache_pool_dead_retry
¶integer
300
(Optional) Number of seconds memcached server is considered dead before it is tried again.
memcache_pool_maxsize
¶integer
10
(Optional) Maximum total number of open connections to every memcached server.
memcache_pool_socket_timeout
¶integer
3
(Optional) Socket timeout in seconds for communicating with a memcached server.
memcache_pool_unused_timeout
¶integer
60
(Optional) Number of seconds a connection to memcached is held unused in the pool before it is closed.
memcache_pool_conn_get_timeout
¶integer
10
(Optional) Number of seconds that an operation will wait to get a memcached client connection from the pool.
memcache_use_advanced_pool
¶boolean
false
(Optional) Use the advanced (eventlet safe) memcached client pool. The advanced pool will only work under python 2.x.
include_service_catalog
¶boolean
true
(Optional) Indicate whether to set the X-Service-Catalog header. If False, middleware will not ask for service catalog on token validation and will not set the X-Service-Catalog header.
enforce_token_bind
¶string
permissive
Used to control the use and type of token binding. Can be set to: “disabled” to not check token binding. “permissive” (default) to validate binding information if the bind type is of a form known to the server and ignore it if not. “strict” like “permissive” but if the bind type is unknown the token will be rejected. “required” any form of token binding is needed to be allowed. Finally the name of a binding method that must be present in tokens.
service_token_roles
¶list
service
A choice of roles that must be present in a service token. Service tokens are allowed to request that an expired token can be used and so this check should tightly control that only actual services should be sending this token. Roles here are applied as an ANY check so any role in this list must be present. For backwards compatibility reasons this currently only affects the allow_expired check.
service_token_roles_required
¶boolean
false
For backwards compatibility reasons we must let valid service tokens pass that don’t pass the service_token_roles check as valid. Setting this true will become the default in a future release and should be enabled if possible.
service_type
¶string
<None>
The name or type of the service as it appears in the service catalog. This is used to validate tokens that have restricted access rules.
auth_type
¶unknown type
<None>
Authentication type to load
Group |
Name |
---|---|
keystone_authtoken |
auth_plugin |
auth_section
¶unknown type
<None>
Config Section from which to load plugin specific options
interface
¶string
admin
internal, public, admin
Type of endpoint to use in keystoneclient.
region_name
¶string
<None>
Region in Identity service catalog to use for communication with the OpenStack service.
api_version
¶string
2_0
Version of Monasca API to use in monascaclient.
interface
¶string
internal
Type of interface used for monasca endpoint. Supported values: internal, public, admin. The default is internal.
region_name
¶string
<None>
Region in Identity service catalog to use for communication with the OpenStack service.
api_version
¶string
2.0
Version of Neutron API to use in neutronclient.
endpoint_type
¶string
publicURL
Type of endpoint to use in neutronclient. Supported values: internalURL, publicURL, adminURL. The default is publicURL.
region_name
¶string
<None>
Region in Identity service catalog to use for communication with the OpenStack service.
api_version
¶string
2.56
Version of Nova API to use in novaclient.
Minimum required version: 2.56
Certain Watcher features depend on a minimum version of the compute API being available which is enforced with this option. See https://docs.openstack.org/nova/latest/reference/api-microversion-history.html for the compute API microversion history.
endpoint_type
¶string
publicURL
Type of endpoint to use in novaclient. Supported values: internalURL, publicURL, adminURL. The default is publicURL.
region_name
¶string
<None>
Region in Identity service catalog to use for communication with the OpenStack service.
disable_process_locking
¶boolean
false
Enables or disables inter-process locks.
Group |
Name |
---|---|
DEFAULT |
disable_process_locking |
lock_path
¶string
<None>
Directory to use for lock files. For security, the specified directory should only be writable by the user running the processes that need locking. Defaults to environment variable OSLO_LOCK_PATH. If external locks are used, a lock path must be set.
Group |
Name |
---|---|
DEFAULT |
lock_path |
container_name
¶string
<None>
Name for the AMQP container. must be globally unique. Defaults to a generated UUID
Group |
Name |
---|---|
amqp1 |
container_name |
idle_timeout
¶integer
0
Timeout for inactive connections (in seconds)
Group |
Name |
---|---|
amqp1 |
idle_timeout |
trace
¶boolean
false
Debug: dump AMQP frames to stdout
Group |
Name |
---|---|
amqp1 |
trace |
ssl
¶boolean
false
Attempt to connect via SSL. If no other ssl-related parameters are given, it will use the system’s CA-bundle to verify the server’s certificate.
ssl_ca_file
¶string
''
CA certificate PEM file used to verify the server’s certificate
Group |
Name |
---|---|
amqp1 |
ssl_ca_file |
ssl_cert_file
¶string
''
Self-identifying certificate PEM file for client authentication
Group |
Name |
---|---|
amqp1 |
ssl_cert_file |
ssl_key_file
¶string
''
Private key PEM file used to sign ssl_cert_file certificate (optional)
Group |
Name |
---|---|
amqp1 |
ssl_key_file |
ssl_key_password
¶string
<None>
Password for decrypting ssl_key_file (if encrypted)
Group |
Name |
---|---|
amqp1 |
ssl_key_password |
ssl_verify_vhost
¶boolean
false
By default SSL checks that the name in the server’s certificate matches the hostname in the transport_url. In some configurations it may be preferable to use the virtual hostname instead, for example if the server uses the Server Name Indication TLS extension (rfc6066) to provide a certificate per virtual host. Set ssl_verify_vhost to True if the server’s SSL certificate uses the virtual host name instead of the DNS name.
sasl_mechanisms
¶string
''
Space separated list of acceptable SASL mechanisms
Group |
Name |
---|---|
amqp1 |
sasl_mechanisms |
sasl_config_dir
¶string
''
Path to directory that contains the SASL configuration
Group |
Name |
---|---|
amqp1 |
sasl_config_dir |
sasl_config_name
¶string
''
Name of configuration file (without .conf suffix)
Group |
Name |
---|---|
amqp1 |
sasl_config_name |
sasl_default_realm
¶string
''
SASL realm to use if no realm present in username
connection_retry_interval
¶integer
1
1
Seconds to pause before attempting to re-connect.
connection_retry_backoff
¶integer
2
0
Increase the connection_retry_interval by this many seconds after each unsuccessful failover attempt.
connection_retry_interval_max
¶integer
30
1
Maximum limit for connection_retry_interval + connection_retry_backoff
link_retry_delay
¶integer
10
1
Time to pause between re-connecting an AMQP 1.0 link that failed due to a recoverable error.
default_reply_retry
¶integer
0
-1
The maximum number of attempts to re-send a reply message which failed due to a recoverable error.
default_reply_timeout
¶integer
30
5
The deadline for an rpc reply message delivery.
default_send_timeout
¶integer
30
5
The deadline for an rpc cast or call message delivery. Only used when caller does not provide a timeout expiry.
default_notify_timeout
¶integer
30
5
The deadline for a sent notification message delivery. Only used when caller does not provide a timeout expiry.
default_sender_link_timeout
¶integer
600
1
The duration to schedule a purge of idle sender links. Detach link after expiry.
addressing_mode
¶string
dynamic
Indicates the addressing mode used by the driver. Permitted values: ‘legacy’ - use legacy non-routable addressing ‘routable’ - use routable addresses ‘dynamic’ - use legacy addresses if the message bus does not support routing otherwise use routable addressing
pseudo_vhost
¶boolean
true
Enable virtual host support for those message buses that do not natively support virtual hosting (such as qpidd). When set to true the virtual host name will be added to all message bus addresses, effectively creating a private ‘subnet’ per virtual host. Set to False if the message bus supports virtual hosting using the ‘hostname’ field in the AMQP 1.0 Open performative as the name of the virtual host.
server_request_prefix
¶string
exclusive
address prefix used when sending to a specific server
Group |
Name |
---|---|
amqp1 |
server_request_prefix |
broadcast_prefix
¶string
broadcast
address prefix used when broadcasting to all servers
Group |
Name |
---|---|
amqp1 |
broadcast_prefix |
group_request_prefix
¶string
unicast
address prefix when sending to any server in group
Group |
Name |
---|---|
amqp1 |
group_request_prefix |
rpc_address_prefix
¶string
openstack.org/om/rpc
Address prefix for all generated RPC addresses
notify_address_prefix
¶string
openstack.org/om/notify
Address prefix for all generated Notification addresses
multicast_address
¶string
multicast
Appended to the address prefix when sending a fanout message. Used by the message bus to identify fanout messages.
unicast_address
¶string
unicast
Appended to the address prefix when sending to a particular RPC/Notification server. Used by the message bus to identify messages sent to a single destination.
anycast_address
¶string
anycast
Appended to the address prefix when sending to a group of consumers. Used by the message bus to identify messages that should be delivered in a round-robin fashion across consumers.
default_notification_exchange
¶string
<None>
Exchange name used in notification addresses. Exchange name resolution precedence: Target.exchange if set else default_notification_exchange if set else control_exchange if set else ‘notify’
default_rpc_exchange
¶string
<None>
Exchange name used in RPC addresses. Exchange name resolution precedence: Target.exchange if set else default_rpc_exchange if set else control_exchange if set else ‘rpc’
reply_link_credit
¶integer
200
1
Window size for incoming RPC Reply messages.
rpc_server_credit
¶integer
100
1
Window size for incoming RPC Request messages
notify_server_credit
¶integer
100
1
Window size for incoming Notification messages
pre_settled
¶multi-valued
rpc-cast
rpc-reply
Send messages of this type pre-settled. Pre-settled messages will not receive acknowledgement from the peer. Note well: pre-settled messages may be silently discarded if the delivery fails. Permitted values: ‘rpc-call’ - send RPC Calls pre-settled ‘rpc-reply’- send RPC Replies pre-settled ‘rpc-cast’ - Send RPC Casts pre-settled ‘notify’ - Send Notifications pre-settled
kafka_max_fetch_bytes
¶integer
1048576
Max fetch bytes of Kafka consumer
kafka_consumer_timeout
¶floating point
1.0
Default timeout(s) for Kafka consumers
pool_size
¶integer
10
Pool Size for Kafka Consumers
Warning
This option is deprecated for removal. Its value may be silently ignored in the future.
Driver no longer uses connection pool.
conn_pool_min_size
¶integer
2
The pool size limit for connections expiration policy
Warning
This option is deprecated for removal. Its value may be silently ignored in the future.
Driver no longer uses connection pool.
conn_pool_ttl
¶integer
1200
The time-to-live in sec of idle connections in the pool
Warning
This option is deprecated for removal. Its value may be silently ignored in the future.
Driver no longer uses connection pool.
consumer_group
¶string
oslo_messaging_consumer
Group id for Kafka consumer. Consumers in one group will coordinate message consumption
producer_batch_timeout
¶floating point
0.0
Upper bound on the delay for KafkaProducer batching in seconds
producer_batch_size
¶integer
16384
Size of batch for the producer async send
compression_codec
¶string
none
none, gzip, snappy, lz4, zstd
The compression codec for all data generated by the producer. If not set, compression will not be used. Note that the allowed values of this depend on the kafka version
enable_auto_commit
¶boolean
false
Enable asynchronous consumer commits
max_poll_records
¶integer
500
The maximum number of records returned in a poll call
security_protocol
¶string
PLAINTEXT
PLAINTEXT, SASL_PLAINTEXT, SSL, SASL_SSL
Protocol used to communicate with brokers
sasl_mechanism
¶string
PLAIN
Mechanism when security protocol is SASL
ssl_cafile
¶string
''
CA certificate PEM file used to verify the server certificate
ssl_client_cert_file
¶string
''
Client certificate PEM file used for authentication.
ssl_client_key_file
¶string
''
Client key PEM file used for authentication.
ssl_client_key_password
¶string
''
Client key password file used for authentication.
driver
¶multi-valued
''
The Drivers(s) to handle sending notifications. Possible values are messaging, messagingv2, routing, log, test, noop
Group |
Name |
---|---|
DEFAULT |
notification_driver |
transport_url
¶string
<None>
A URL representing the messaging driver to use for notifications. If not set, we fall back to the same configuration used for RPC.
Group |
Name |
---|---|
DEFAULT |
notification_transport_url |
topics
¶list
notifications
AMQP topic used for OpenStack notifications.
Group |
Name |
---|---|
rpc_notifier2 |
topics |
DEFAULT |
notification_topics |
retry
¶integer
-1
The maximum number of attempts to re-send a notification message which failed to be delivered due to a recoverable error. 0 - No retry, -1 - indefinite
amqp_durable_queues
¶boolean
false
Use durable queues in AMQP.
amqp_auto_delete
¶boolean
false
Auto-delete queues in AMQP.
Group |
Name |
---|---|
DEFAULT |
amqp_auto_delete |
ssl
¶boolean
false
Connect over SSL.
Group |
Name |
---|---|
oslo_messaging_rabbit |
rabbit_use_ssl |
ssl_version
¶string
''
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.
Group |
Name |
---|---|
oslo_messaging_rabbit |
kombu_ssl_version |
ssl_key_file
¶string
''
SSL key file (valid only if SSL enabled).
Group |
Name |
---|---|
oslo_messaging_rabbit |
kombu_ssl_keyfile |
ssl_cert_file
¶string
''
SSL cert file (valid only if SSL enabled).
Group |
Name |
---|---|
oslo_messaging_rabbit |
kombu_ssl_certfile |
ssl_ca_file
¶string
''
SSL certification authority file (valid only if SSL enabled).
Group |
Name |
---|---|
oslo_messaging_rabbit |
kombu_ssl_ca_certs |
heartbeat_in_pthread
¶boolean
false
EXPERIMENTAL: Run the health check heartbeat thread through a native python thread. By default if this option isn’t provided the health check heartbeat will inherit the execution model from the parent process. By example if the parent process have monkey patched the stdlib by using eventlet/greenlet then the heartbeat will be run through a green thread.
kombu_reconnect_delay
¶floating point
1.0
How long to wait before reconnecting in response to an AMQP consumer cancel notification.
Group |
Name |
---|---|
DEFAULT |
kombu_reconnect_delay |
kombu_compression
¶string
<None>
EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression will not be used. This option may not be available in future versions.
kombu_missing_consumer_retry_timeout
¶integer
60
How long to wait a missing client before abandoning to send it its replies. This value should not be longer than rpc_response_timeout.
Group |
Name |
---|---|
oslo_messaging_rabbit |
kombu_reconnect_timeout |
kombu_failover_strategy
¶string
round-robin
round-robin, shuffle
Determines how the next RabbitMQ node is chosen in case the one we are currently connected to becomes unavailable. Takes effect only if more than one RabbitMQ node is provided in config.
rabbit_login_method
¶string
AMQPLAIN
PLAIN, AMQPLAIN, RABBIT-CR-DEMO
The RabbitMQ login method.
Group |
Name |
---|---|
DEFAULT |
rabbit_login_method |
rabbit_retry_interval
¶integer
1
How frequently to retry connecting with RabbitMQ.
rabbit_retry_backoff
¶integer
2
How long to backoff for between retries when connecting to RabbitMQ.
Group |
Name |
---|---|
DEFAULT |
rabbit_retry_backoff |
rabbit_interval_max
¶integer
30
Maximum interval of RabbitMQ connection retries. Default is 30 seconds.
rabbit_ha_queues
¶boolean
false
Try to use HA queues in RabbitMQ (x-ha-policy: all). If you change this option, you must wipe the RabbitMQ database. In RabbitMQ 3.0, queue mirroring is no longer controlled by the x-ha-policy argument when declaring a queue. If you just want to make sure that all queues (except those with auto-generated names) are mirrored across all nodes, run: “rabbitmqctl set_policy HA ‘^(?!amq.).*’ ‘{“ha-mode”: “all”}’ “
Group |
Name |
---|---|
DEFAULT |
rabbit_ha_queues |
rabbit_transient_queues_ttl
¶integer
1800
1
Positive integer representing duration in seconds for queue TTL (x-expires). Queues which are unused for the duration of the TTL are automatically deleted. The parameter affects only reply and fanout queues.
rabbit_qos_prefetch_count
¶integer
0
Specifies the number of messages to prefetch. Setting to zero allows unlimited messages.
heartbeat_timeout_threshold
¶integer
60
Number of seconds after which the Rabbit broker is considered down if heartbeat’s keep-alive fails (0 disables heartbeat).
heartbeat_rate
¶integer
2
How often times during the heartbeat_timeout_threshold we check the heartbeat.
direct_mandatory_flag
¶integer
True
Enable/Disable the RabbitMQ mandatory flag for direct send. The direct send is used as reply, so the MessageUndeliverable exception is raised in case the client queue does not exist.
enforce_scope
¶boolean
false
This option controls whether or not to enforce scope when evaluating policies. If True
, the scope of the token used in the request is compared to the scope_types
of the policy being enforced. If the scopes do not match, an InvalidScope
exception will be raised. If False
, a message will be logged informing operators that policies are being invoked with mismatching scope.
policy_file
¶string
policy.json
The relative or absolute path of a file that maps roles to permissions for a given service. Relative paths must be specified in relation to the configuration file setting this option.
Group |
Name |
---|---|
DEFAULT |
policy_file |
policy_default_rule
¶string
default
Default rule. Enforced when a requested rule is not found.
Group |
Name |
---|---|
DEFAULT |
policy_default_rule |
policy_dirs
¶multi-valued
policy.d
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.
Group |
Name |
---|---|
DEFAULT |
policy_dirs |
remote_content_type
¶string
application/x-www-form-urlencoded
application/x-www-form-urlencoded, application/json
Content Type to send and receive data for REST based policy check
remote_ssl_verify_server_crt
¶boolean
false
server identity verification for REST based policy check
remote_ssl_ca_crt_file
¶string
<None>
Absolute path to ca cert file for REST based policy check
remote_ssl_client_crt_file
¶string
<None>
Absolute path to client cert for REST based policy check
remote_ssl_client_key_file
¶string
<None>
Absolute path client key file REST based policy check
log_dir
¶string
<None>
Path to a log directory where to create a file
file_event_handler
¶string
<None>
The path to a file to watch for changes to trigger the reports, instead of signals. Setting this option disables the signal trigger for the reports. If application is running as a WSGI application it is recommended to use this instead of signals.
file_event_handler_interval
¶integer
1
How many seconds to wait between polls when file_event_handler is set
Configuration options for connecting to the placement API service
api_version
¶string
1.29
microversion of placement API when using placement service.
interface
¶string
public
internal, public, admin
Type of endpoint when using placement service.
region_name
¶string
<None>
Region in Identity service catalog to use for communication with the OpenStack service.
workers
¶integer
1
1
Number of workers for applier, default value is 1.
conductor_topic
¶string
watcher.applier.control
The topic name used for control events, this topic used for rpc call
publisher_id
¶string
watcher.applier.api
The identifier used by watcher module on the message broker
workflow_engine
¶string
taskflow
Select the engine to use to execute the workflow
cafile
¶string
<None>
PEM encoded Certificate Authority to use when verifying HTTPs connections.
certfile
¶string
<None>
PEM encoded client certificate cert file
keyfile
¶string
<None>
PEM encoded client certificate key file
insecure
¶boolean
false
Verify HTTPS connections.
timeout
¶integer
<None>
Timeout value for http requests
collect_timing
¶boolean
false
Collect per-API call timing information.
split_loggers
¶boolean
false
Log requests to multiple loggers.
auth_type
¶unknown type
<None>
Authentication type to load
Group |
Name |
---|---|
watcher_clients_auth |
auth_plugin |
auth_section
¶unknown type
<None>
Config Section from which to load plugin specific options
period
¶integer
3600
The time interval (in seconds) between each synchronization of the model
period
¶integer
3600
The time interval (in seconds) between each synchronization of the model
datasources
¶list
gnocchi,ceilometer,monasca,grafana
Datasources to use in order to query the needed metrics. If one of strategy metric is not available in the first datasource, the next datasource will be chosen. This is the default for all strategies unless a strategy has a specific override.
query_max_retries
¶integer
10
1
This option can be changed without restarting.
How many times Watcher is trying to query again
Group |
Name |
---|---|
gnocchi_client |
query_max_retries |
query_timeout
¶integer
1
0
This option can be changed without restarting.
How many seconds Watcher should wait to do query again
Group |
Name |
---|---|
gnocchi_client |
query_timeout |
conductor_topic
¶string
watcher.decision.control
The topic name used for control events, this topic used for RPC calls
notification_topics
¶list
nova.versioned_notifications,watcher.watcher_notifications
The exchange and topic names from which notification events will be listened to. The exchange should be specified to get an ability to use pools.
publisher_id
¶string
watcher.decision.api
The identifier used by the Watcher module on the message broker
max_audit_workers
¶integer
2
The maximum number of threads that can be used to execute audits in parallel.
max_general_workers
¶integer
4
The maximum number of threads that can be used to execute general tasks in parallel. The number of general workers will not increase depending on the number of audit workers!
action_plan_expiry
¶integer
24
This option can be changed without restarting.
An expiry timespan(hours). Watcher invalidates any action plan for which its creation time -whose number of hours has been offset by this value- is older that the current time.
check_periodic_interval
¶integer
1800
This option can be changed without restarting.
Interval (in seconds) for checking action plan expiry.
metric_map_path
¶string
/etc/watcher/metric_map.yaml
Path to metric map yaml formatted file. The file contains a map per datasource whose keys are the metric names as recognized by watcher and the value is the real name of the metric in the datasource. For example:
monasca:
instance_cpu_usage: VM_CPU
gnocchi:
instance_cpu_usage: cpu_vm_util
This file is optional.
continuous_audit_interval
¶integer
10
This option can be changed without restarting.
Interval (in seconds) for checking newly created continuous audits.
planner
¶string
weight
The selected planner used to schedule the actions
weights
¶dict
change_node_power_state:9,change_nova_service_state:50,migrate:30,nop:70,resize:20,sleep:40,turn_host_to_acpi_s3_state:10,volume_migrate:60
These weights are used to schedule the actions. Action Plan will be build in accordance with sets of actions ordered by descending weights.Two action types cannot have the same weight.
parallelization
¶dict
change_node_power_state:2,change_nova_service_state:1,migrate:2,nop:1,resize:2,sleep:1,turn_host_to_acpi_s3_state:2,volume_migrate:2
Number of actions to be run in parallel on a per action type basis.
weights
¶dict
change_nova_service_state:4,migrate:2,nop:5,resize:1,sleep:3,turn_host_to_acpi_s3_state:0
These weights are used to schedule the actions
datasources
¶list
<None>
Datasources to use in order to query the needed metrics. This option overrides the global preference. options: [‘gnocchi’, ‘ceilometer’, ‘monasca’, ‘grafana’]
check_optimize_metadata
¶boolean
false
Check optimize metadata field in instance before migration
datasources
¶list
<None>
Datasources to use in order to query the needed metrics. This option overrides the global preference. options: [‘gnocchi’, ‘ceilometer’, ‘monasca’, ‘grafana’]
datasources
¶list
<None>
Datasources to use in order to query the needed metrics. This option overrides the global preference. options: [‘gnocchi’, ‘ceilometer’, ‘monasca’, ‘grafana’]
datasources
¶list
<None>
Datasources to use in order to query the needed metrics. This option overrides the global preference. options: [‘gnocchi’, ‘ceilometer’, ‘monasca’, ‘grafana’]
datasources
¶list
<None>
Datasources to use in order to query the needed metrics. This option overrides the global preference. options: [‘gnocchi’, ‘ceilometer’, ‘monasca’, ‘grafana’]
ex_pools
¶list
local_vstorage
exclude pools
datasources
¶list
<None>
Datasources to use in order to query the needed metrics. This option overrides the global preference. options: [‘gnocchi’, ‘ceilometer’, ‘monasca’, ‘grafana’]
datasources
¶list
<None>
Datasources to use in order to query the needed metrics. This option overrides the global preference. options: [‘gnocchi’, ‘ceilometer’, ‘monasca’, ‘grafana’]
datasources
¶list
<None>
Datasources to use in order to query the needed metrics. This option overrides the global preference. options: [‘gnocchi’, ‘ceilometer’, ‘monasca’, ‘grafana’]
datasources
¶list
<None>
Datasources to use in order to query the needed metrics. This option overrides the global preference. options: [‘gnocchi’, ‘ceilometer’, ‘monasca’, ‘grafana’]
max_workers
¶integer
32
1
Number of workers for taskflow engine to execute actions.
action_execution_rule
¶dict
''
The execution rule for linked actions,the key is strategy name and value ALWAYS means all actions will be executed,value ANY means if previous action executes success, the next action will be ignored.None means ALWAYS.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.