8881ed4378
The amqp1 options allow_insecure_options, username and password are all deprecated, remove them. allow_insecure_options was deprecated during Ocata, and the other two were deprecated in 5.22.0, released during Pike. Change-Id: I321266c3dba83a38fe6ebd775db2e74c14cc96cd
271 lines
11 KiB
Python
271 lines
11 KiB
Python
# Copyright 2014, Red Hat, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from oslo_config import cfg
|
|
|
|
|
|
amqp1_opts = [
|
|
cfg.StrOpt('container_name',
|
|
deprecated_group='amqp1',
|
|
help='Name for the AMQP container. must be globally unique.'
|
|
' Defaults to a generated UUID'),
|
|
|
|
cfg.IntOpt('idle_timeout',
|
|
default=0, # disabled
|
|
deprecated_group='amqp1',
|
|
help='Timeout for inactive connections (in seconds)'),
|
|
|
|
cfg.BoolOpt('trace',
|
|
default=False,
|
|
deprecated_group='amqp1',
|
|
help='Debug: dump AMQP frames to stdout'),
|
|
|
|
cfg.BoolOpt('ssl',
|
|
default=False,
|
|
help=("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.")),
|
|
|
|
cfg.StrOpt('ssl_ca_file',
|
|
default='',
|
|
deprecated_group='amqp1',
|
|
help="CA certificate PEM file used to verify the server's"
|
|
' certificate'),
|
|
|
|
cfg.StrOpt('ssl_cert_file',
|
|
default='',
|
|
deprecated_group='amqp1',
|
|
help='Self-identifying certificate PEM file'
|
|
' for client authentication'),
|
|
|
|
cfg.StrOpt('ssl_key_file',
|
|
default='',
|
|
deprecated_group='amqp1',
|
|
help='Private key PEM file used to sign ssl_cert_file'
|
|
' certificate (optional)'),
|
|
|
|
cfg.StrOpt('ssl_key_password',
|
|
deprecated_group='amqp1',
|
|
secret=True,
|
|
help='Password for decrypting ssl_key_file (if encrypted)'),
|
|
|
|
cfg.BoolOpt('ssl_verify_vhost',
|
|
default=False,
|
|
help="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."),
|
|
|
|
cfg.StrOpt('sasl_mechanisms',
|
|
default='',
|
|
deprecated_group='amqp1',
|
|
help='Space separated list of acceptable SASL mechanisms'),
|
|
|
|
cfg.StrOpt('sasl_config_dir',
|
|
default='',
|
|
deprecated_group='amqp1',
|
|
help='Path to directory that contains the SASL configuration'),
|
|
|
|
cfg.StrOpt('sasl_config_name',
|
|
default='',
|
|
deprecated_group='amqp1',
|
|
help='Name of configuration file (without .conf suffix)'),
|
|
|
|
cfg.StrOpt('sasl_default_realm',
|
|
default='',
|
|
help='SASL realm to use if no realm present in username'),
|
|
|
|
# Network connection failure retry options
|
|
|
|
cfg.IntOpt('connection_retry_interval',
|
|
default=1,
|
|
min=1,
|
|
help='Seconds to pause before attempting to re-connect.'),
|
|
|
|
cfg.IntOpt('connection_retry_backoff',
|
|
default=2,
|
|
min=0,
|
|
help='Increase the connection_retry_interval by this many'
|
|
' seconds after each unsuccessful failover attempt.'),
|
|
|
|
cfg.IntOpt('connection_retry_interval_max',
|
|
default=30,
|
|
min=1,
|
|
help='Maximum limit for connection_retry_interval'
|
|
' + connection_retry_backoff'),
|
|
|
|
# Message send retry and timeout options
|
|
|
|
cfg.IntOpt('link_retry_delay',
|
|
default=10,
|
|
min=1,
|
|
help='Time to pause between re-connecting an AMQP 1.0 link that'
|
|
' failed due to a recoverable error.'),
|
|
|
|
cfg.IntOpt('default_reply_retry',
|
|
default=0,
|
|
min=-1,
|
|
help='The maximum number of attempts to re-send a reply message'
|
|
' which failed due to a recoverable error.'),
|
|
|
|
cfg.IntOpt('default_reply_timeout',
|
|
default=30,
|
|
min=5,
|
|
help='The deadline for an rpc reply message delivery.'),
|
|
|
|
cfg.IntOpt('default_send_timeout',
|
|
default=30,
|
|
min=5,
|
|
help='The deadline for an rpc cast or call message delivery.'
|
|
' Only used when caller does not provide a timeout expiry.'),
|
|
|
|
cfg.IntOpt('default_notify_timeout',
|
|
default=30,
|
|
min=5,
|
|
help='The deadline for a sent notification message delivery.'
|
|
' Only used when caller does not provide a timeout expiry.'),
|
|
|
|
# Sender link cache maintenance:
|
|
cfg.IntOpt('default_sender_link_timeout',
|
|
default=600,
|
|
min=1,
|
|
help='The duration to schedule a purge of idle sender links.'
|
|
' Detach link after expiry.'),
|
|
|
|
# Addressing:
|
|
|
|
cfg.StrOpt('addressing_mode',
|
|
default='dynamic',
|
|
help="Indicates the addressing mode used by the driver.\n"
|
|
"Permitted values:\n"
|
|
"'legacy' - use legacy non-routable addressing\n"
|
|
"'routable' - use routable addresses\n"
|
|
"'dynamic' - use legacy addresses if the message bus does not"
|
|
" support routing otherwise use routable addressing"),
|
|
|
|
cfg.BoolOpt('pseudo_vhost',
|
|
default=True,
|
|
help="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."),
|
|
|
|
# Legacy addressing customization:
|
|
|
|
cfg.StrOpt('server_request_prefix',
|
|
default='exclusive',
|
|
deprecated_group='amqp1',
|
|
help="address prefix used when sending to a specific server"),
|
|
|
|
cfg.StrOpt('broadcast_prefix',
|
|
default='broadcast',
|
|
deprecated_group='amqp1',
|
|
help="address prefix used when broadcasting to all servers"),
|
|
|
|
cfg.StrOpt('group_request_prefix',
|
|
default='unicast',
|
|
deprecated_group='amqp1',
|
|
help="address prefix when sending to any server in group"),
|
|
|
|
# Routable addressing customization:
|
|
#
|
|
# Addresses a composed of the following string values using a template in
|
|
# the form of:
|
|
# $(address_prefix)/$(*cast)/$(exchange)/$(topic)[/$(server-name)]
|
|
# where *cast is one of the multicast/unicast/anycast values used to
|
|
# identify the delivery pattern used for the addressed message
|
|
|
|
cfg.StrOpt('rpc_address_prefix',
|
|
default='openstack.org/om/rpc',
|
|
help="Address prefix for all generated RPC addresses"),
|
|
|
|
cfg.StrOpt('notify_address_prefix',
|
|
default='openstack.org/om/notify',
|
|
help="Address prefix for all generated Notification addresses"),
|
|
|
|
cfg.StrOpt('multicast_address',
|
|
default='multicast',
|
|
help="Appended to the address prefix when sending a fanout"
|
|
" message. Used by the message bus to identify fanout"
|
|
" messages."),
|
|
|
|
cfg.StrOpt('unicast_address',
|
|
default='unicast',
|
|
help="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."),
|
|
|
|
cfg.StrOpt('anycast_address',
|
|
default='anycast',
|
|
help="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."),
|
|
|
|
cfg.StrOpt('default_notification_exchange',
|
|
help="Exchange name used in notification addresses.\n"
|
|
"Exchange name resolution precedence:\n"
|
|
"Target.exchange if set\n"
|
|
"else default_notification_exchange if set\n"
|
|
"else control_exchange if set\n"
|
|
"else 'notify'"),
|
|
|
|
cfg.StrOpt('default_rpc_exchange',
|
|
help="Exchange name used in RPC addresses.\n"
|
|
"Exchange name resolution precedence:\n"
|
|
"Target.exchange if set\n"
|
|
"else default_rpc_exchange if set\n"
|
|
"else control_exchange if set\n"
|
|
"else 'rpc'"),
|
|
|
|
# Message Credit Levels
|
|
|
|
cfg.IntOpt('reply_link_credit',
|
|
default=200,
|
|
min=1,
|
|
help='Window size for incoming RPC Reply messages.'),
|
|
|
|
cfg.IntOpt('rpc_server_credit',
|
|
default=100,
|
|
min=1,
|
|
help='Window size for incoming RPC Request messages'),
|
|
|
|
cfg.IntOpt('notify_server_credit',
|
|
default=100,
|
|
min=1,
|
|
help='Window size for incoming Notification messages'),
|
|
|
|
# Settlement control
|
|
|
|
cfg.MultiStrOpt('pre_settled',
|
|
default=['rpc-cast', 'rpc-reply'],
|
|
help="Send messages of this type pre-settled.\n"
|
|
"Pre-settled messages will not receive acknowledgement\n"
|
|
"from the peer. Note well: pre-settled messages may be\n"
|
|
"silently discarded if the delivery fails.\n"
|
|
"Permitted values:\n"
|
|
"'rpc-call' - send RPC Calls pre-settled\n"
|
|
"'rpc-reply'- send RPC Replies pre-settled\n"
|
|
"'rpc-cast' - Send RPC Casts pre-settled\n"
|
|
"'notify' - Send Notifications pre-settled\n")
|
|
]
|