Merge "Added Murano config checks"

This commit is contained in:
Jenkins 2014-08-04 21:01:14 +00:00 committed by Gerrit Code Review
commit 7e0b9ecb94
3 changed files with 575 additions and 188 deletions

View File

@ -1,185 +1,495 @@
[DEFAULT]
# Show more verbose log output (sets INFO log level output)
verbose = False
# Show debugging output in logs (sets DEBUG log level output)
debug = False
#
# Options defined in murano.api.middleware.context
#
# Address to bind the server to
bind_host = 0.0.0.0
# Role used to identify an authenticated user as
# administrator. (string value)
#admin_role=admin
# Port the bind the server to
bind_port = 8082
# Directory to store application package cache
# packages_cache =
#
# Options defined in murano.common.config
#
# Maximum application package size, Mb
package_size_limit = 5
# Address to bind the Murano API server to. (string value)
#bind_host=0.0.0.0
# If a `limit` query param is not provided in an api request, it will
# default to `limit_param_default`
limit_param_default = 20
# Port the bind the Murano API server to. (integer value)
#bind_port=8082
# Limit the api to return `api_limit_max` items in a call to a container. If
# a larger `limit` query param is provided, it will be reduced to this value.
api_limit_max = 100
# Metadata dir (string value)
#metadata_dir=./meta
# Set up logging. Make sure the user has permissions to write to this file! To use syslog just set use_syslog parameter value to 'True'.
log_file = /tmp/murano-api.log
#
# Options defined in murano.openstack.common.eventlet_backdoor
#
# 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>
#
# Options defined in murano.openstack.common.lockutils
#
# Enables or disables inter-process locks. (boolean value)
#disable_process_locking=false
# Directory to use for lock files. (string value)
#lock_path=<None>
#
# Options defined in murano.openstack.common.log
#
# Print debugging output (set logging level to DEBUG instead
# of default WARNING level). (boolean value)
#debug=false
# Print more verbose output (set logging level to INFO instead
# of default WARNING level). (boolean value)
#verbose=false
# Log output to standard error. (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 without context.
# (string value)
#logging_default_format_string=%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
# Data to append to log format when level 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 TRACE %(name)s %(instance)s
# List of logger=LEVEL pairs. (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
# Enables or disables publication of error events. (boolean
# value)
#publish_errors=false
# Enables or disables fatal status of deprecations. (boolean
# value)
#fatal_deprecations=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] "
# 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. (string value)
# Deprecated group/name - [DEFAULT]/log_config
#log_config_append=<None>
# DEPRECATED. A logging.Formatter log message format string
# which may use any of the available logging.LogRecord
# attributes. This option is deprecated. Please use
# logging_context_format_string and
# logging_default_format_string instead. (string value)
#log_format=<None>
# Format string for %%(asctime)s in log records. Default:
# %(default)s . (string value)
#log_date_format=%Y-%m-%d %H:%M:%S
# (Optional) Name of log file to output to. If no default is
# set, logging will go to stdout. (string value)
# Deprecated group/name - [DEFAULT]/logfile
#log_file=<None>
# (Optional) The base directory used for relative --log-file
# paths. (string value)
# Deprecated group/name - [DEFAULT]/logdir
#log_dir=<None>
# Use syslog for logging. Existing syslog format is DEPRECATED
# during I, and then will be changed in J to honor RFC5424
# during I, and will chang in J to honor RFC5424. (boolean
# value)
#use_syslog=false
use_syslog = False
# (Optional) Use syslog rfc5424 format for logging. If
# enabled, will add APP-NAME (RFC5424) before the MSG part of
# the syslog message. The old format without APP-NAME is
# deprecated in I, and will be removed in J.
# (Optional) Enables or disables syslog rfc5424 format for
# logging. If enabled, prefixes the MSG part of the syslog
# message with APP-NAME (RFC5424). The format without the APP-
# NAME is deprecated in I, and will be removed in J. (boolean
# value)
#use_syslog_rfc_format=false
#Syslog facility to receive log lines
syslog_log_facility = LOG_LOCAL0
# Role used to identify an authenticated user as administrator
#admin_role = admin
# 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)
#amqp_auto_delete=false
# Syslog facility to receive log lines. (string value)
#syslog_log_facility=LOG_USER
# SSL version to use (valid only if SSL enabled). valid values
# are TLSv1, SSLv23 and SSLv3. SSLv2 may be available on some
# distributions (string value)
#kombu_ssl_version=
#
# Options defined in murano.openstack.common.policy
#
# SSL key file (valid only if SSL enabled) (string value)
#kombu_ssl_keyfile=
# The JSON file that defines policies. (string value)
#policy_file=policy.json
# SSL cert file (valid only if SSL enabled) (string value)
#kombu_ssl_certfile=
# SSL certification authority file (valid only if SSL enabled)
# Default rule. Enforced when a requested rule is not found.
# (string value)
#kombu_ssl_ca_certs=
#policy_default_rule=default
# The RabbitMQ broker address where a single node is used
# (string value)
#rabbit_host=localhost
# The RabbitMQ broker port where a single node is used
#
# Options defined in murano.openstack.common.wsgi
#
# Number of backlog requests to configure the socket with
# (integer value)
#rabbit_port=5672
#backlog=4096
# RabbitMQ HA cluster host:port pairs (list value)
#rabbit_hosts=$rabbit_host:$rabbit_port
# Sets the value of TCP_KEEPIDLE in seconds for each server
# socket. Not supported on OS X. (integer value)
#tcp_keepidle=600
# connect over SSL for RabbitMQ (boolean value)
#rabbit_use_ssl=false
# the RabbitMQ userid (string value)
#rabbit_userid=guest
# the RabbitMQ password (string value)
#rabbit_password=guest
# the RabbitMQ virtual host (string value)
#rabbit_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)
#rabbit_retry_backoff=2
# maximum retries with trying to connect to RabbitMQ (the
# default of 0 implies an infinite retry count) (integer
# value)
#rabbit_max_retries=0
# use H/A queues in RabbitMQ (x-ha-policy: all).You need to
# wipe RabbitMQ database when changing this option. (boolean
# value)
#rabbit_ha_queues=false
# Use RPC for status reporting between engine and API
notification_driver=messagingv2
[database]
#A valid SQLAlchemy connection string for the metadata database
#connection = mysql://root:password@localhost:3306/murano
connection = sqlite:///murano.sqlite
[ssl]
#Parameters to configure SSL for trusted HTTPS connection
#
# Options defined in murano.openstack.common.db.options
#
# Certificate file to use when starting API server securely
#cert_file = /path/to/certfile
# The file name to use with SQLite (string value)
#sqlite_db=murano.sqlite
# Private key file to use when starting API server securely
#key_file = /path/to/keyfile
# If True, SQLite uses synchronous mode (boolean value)
#sqlite_synchronous=true
# CA certificate file to use to verify connecting clients
#ca_file = /path/to/cafile
# The backend to use for db (string value)
# Deprecated group/name - [DEFAULT]/db_backend
#backend=sqlalchemy
#For more information see Auth-Token Middleware with Username and Password
#http://docs.openstack.org/developer/keystone/configuringservices.html
[keystone_authtoken]
auth_host = 127.0.0.1
auth_port = 35357
auth_protocol = http
admin_tenant_name = admin
admin_user = admin
admin_password = swordfish
signing_dir = /tmp/keystone-signing-muranoapi
# The SQLAlchemy connection string used 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=<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 db connection retries during startup. (setting -1
# implies 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=<None>
# 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 db connection retries (integer value)
#db_retry_interval=1
# Whether to increase interval between db connection retries,
# up to db_max_retry_interval (boolean value)
#db_inc_retry_interval=true
# max seconds between db connection retries, if
# db_inc_retry_interval is enabled (integer value)
#db_max_retry_interval=10
# maximum db connection retries before error is raised.
# (setting -1 implies an infinite retry count) (integer value)
#db_max_retries=20
[heat]
#
# Options defined in murano.common.config
#
# This option explicitly allows Murano to perform "insecure"
# SSL connections and transfers with Heat API. (boolean value)
#insecure=false
# (SSL) Tells Murano to use the specified certificate file to
# verify the peer running Heat API. (string value)
#ca_file=<None>
# (SSL) Tells Murano to use the specified client certificate
# file when communicating with Heat. (string value)
#cert_file=<None>
# (SSL/SSH) Private key file name to communicate with Heat
# API. (string value)
#key_file=<None>
# Heat endpoint type. (string value)
#endpoint_type=publicURL
#This section controls statistics collection
[stats]
#Stats collection period in minutes
period = 5
[keystone]
# URL of OpenStack KeyStone service REST API.
# Typically only hostname (or IP) needs to be changed
auth_url = http://localhost:5000/v2.0
# Keystone SSL parameters
# Optional CA cert file to use in SSL connections
#ca_file =
# Optional PEM-formatted certificate chain file
#cert_file =
# Optional PEM-formatted file that contains the private key
#key_file =
# If set then the server's certificate will not be verified
insecure = False
#
# Options defined in murano.common.config
#
# URL to access OpenStack Identity service. (string value)
#auth_url=<None>
# This option explicitly allows Murano to perform "insecure"
# SSL connections and transfers with Keystone API running
# Kyestone API. (boolean value)
#insecure=false
# (SSL) Tells Murano to use the specified certificate file to
# verify the peer when communicating with Keystone. (string
# value)
#ca_file=<None>
# (SSL) Tells Murano to use the specified client certificate
# file when communicating with Keystone. (string value)
#cert_file=<None>
# (SSL/SSH) Private key file name to communicate with Keystone
# API (string value)
#key_file=<None>
[murano]
url = http://localhost:8082
# Optional CA cert file to use in SSL connections
#cacert =
# Optional PEM-formatted certificate chain file
#cert_file =
# Optional PEM-formatted file that contains the private key
#key_file =
# If set then the server's certificate will not be verified
insecure = False
#
# Options defined in murano.common.config
#
# Optional murano url in format like http://0.0.0.0:8082 used
# by Murano engine (string value)
#url=<None>
# This option explicitly allows Murano to perform "insecure"
# SSL connections and transfers used by Murano engine.
# (boolean value)
#insecure=false
# (SSL) Tells Murano to use the specified client certificate
# file when communicating with Murano API used by Murano
# engine. (string value)
#cacert=<None>
# (SSL) Tells Murano to use the specified client certificate
# file when communicating with Murano used by Murano engine.
# (string value)
#cert_file=<None>
# (SSL/SSH) Private key file name to communicate with Murano
# API used by Murano engine. (string value)
#key_file=<None>
# Murno endpoint type used by Murano engine. (string value)
#endpoint_type=publicURL
[networking]
# Maximum number of environments that use a single router per tenant
max_environments = 20
# Maximum number of VMs per environment
max_hosts = 250
#
# Options defined in murano.common.config
#
# Maximum number of environments that use a single router per
# tenant (integer value)
#max_environments=20
# Maximum number of VMs per environment (integer value)
#max_hosts=250
# Template IP address for generating environment subnet cidrs
env_ip_template = 10.0.0.0
# (string value)
#env_ip_template=10.0.0.0
# Default DNS nameserver to be assigned to created Networks
default_dns = 8.8.8.8
# (string value)
#default_dns=8.8.8.8
[neutron]
#
# Options defined in murano.common.config
#
# This option explicitly allows Murano to perform "insecure"
# SSL connections and transfers with Neutron API. (boolean
# value)
#insecure=false
# (SSL) Tells Murano to use the specified client certificate
# file when communicating with Neutron. (string value)
#ca_cert=<None>
# Neutron endpoint type. (string value)
#endpoint_type=publicURL
[packages_opts]
#
# Options defined in murano.common.config
#
# Location (directory) for Murano package cache. (string
# value)
#packages_cache=/tmp/murano-packages-cache
# Maximum application package size, Mb (integer value)
#package_size_limit=5
# Default value for package pagination in API. (integer value)
#limit_param_default=20
# Maximum number of packages to be returned in a single
# pagination request (integer value)
#api_limit_max=100
[paste_deploy]
#
# Options defined in murano.common.config
#
# Paste flavor (string value)
#flavor=<None>
# Path to Paste config file (string value)
#config_file=<None>
[rabbitmq]
#
# Options defined in murano.common.config
#
# The RabbitMQ broker address which used for communication
# with Murano guest agents. (string value)
#host=localhost
# The RabbitMQ broker port. (integer value)
#port=5672
# The RabbitMQ login. (string value)
#login=guest
# The RabbitMQ password. (string value)
#password=guest
# The RabbitMQ virtual host. (string value)
#virtual_host=/
# Boolean flag to enable SSL communication through the
# RabbitMQ broker between murano-engine and guest agents.
# (boolean value)
#ssl=false
# SSL cert file (valid only if SSL enabled). (string value)
#ca_certs=
[ssl]
#
# Options defined in murano.openstack.common.sslutils
#
# CA certificate file to use to verify connecting clients.
# (string value)
#ca_file=<None>
# Certificate file to use when starting the server securely.
# (string value)
#cert_file=<None>
# Private key file to use when starting the server securely.
# (string value)
#key_file=<None>
[stats]
#
# Options defined in murano.common.config
#
# Statistics collection interval in minutes.Default value is 5
# minutes. (integer value)
#period=5

View File

@ -30,68 +30,136 @@ import murano
from murano.openstack.common.gettextutils import _ # noqa
paste_deploy_opts = [
cfg.StrOpt('flavor'),
cfg.StrOpt('config_file'),
cfg.StrOpt('flavor', help='Paste flavor'),
cfg.StrOpt('config_file', help='Path to Paste config file'),
]
bind_opts = [
cfg.StrOpt('bind-host', default='0.0.0.0'),
cfg.IntOpt('bind-port', default='8082'),
]
db_opts = [
cfg.BoolOpt('auto_create', default=False,
help=_('A boolean that determines if the database will be '
'automatically created.')),
cfg.StrOpt('bind-host', default='0.0.0.0',
help='Address to bind the Murano API server to.'),
cfg.IntOpt('bind-port', default=8082,
help='Port the bind the Murano API server to.'),
]
rabbit_opts = [
cfg.StrOpt('host', default='localhost'),
cfg.IntOpt('port', default=5672),
cfg.StrOpt('login', default='guest'),
cfg.StrOpt('password', default='guest'),
cfg.StrOpt('virtual_host', default='/'),
cfg.BoolOpt('ssl', default=False),
cfg.StrOpt('ca_certs', default='')
cfg.StrOpt('host', default='localhost',
help='The RabbitMQ broker address which used for communication '
'with Murano guest agents.'),
cfg.IntOpt('port', default=5672,
help='The RabbitMQ broker port.'),
cfg.StrOpt('login', default='guest',
help='The RabbitMQ login.'),
cfg.StrOpt('password', default='guest',
help='The RabbitMQ password.'),
cfg.StrOpt('virtual_host', default='/',
help='The RabbitMQ virtual host.'),
cfg.BoolOpt('ssl', default=False,
help='Boolean flag to enable SSL communication through the '
'RabbitMQ broker between murano-engine and guest agents.'),
cfg.StrOpt('ca_certs', default='',
help='SSL cert file (valid only if SSL enabled).')
]
heat_opts = [
cfg.BoolOpt('insecure', default=False),
cfg.StrOpt('ca_file'),
cfg.StrOpt('cert_file'),
cfg.StrOpt('key_file'),
cfg.StrOpt('endpoint_type', default='publicURL')
cfg.BoolOpt('insecure', default=False,
help='This option explicitly allows Murano to perform '
'"insecure" SSL connections and transfers with Heat API.'),
cfg.StrOpt('ca_file',
help='(SSL) Tells Murano to use the specified certificate file '
'to verify the peer running Heat API.'),
cfg.StrOpt('cert_file',
help='(SSL) Tells Murano to use the specified client '
'certificate file when communicating with Heat.'),
cfg.StrOpt('key_file', help='(SSL/SSH) Private key file name to '
'communicate with Heat API.'),
cfg.StrOpt('endpoint_type', default='publicURL',
help='Heat endpoint type.')
]
neutron_opts = [
cfg.BoolOpt('insecure', default=False),
cfg.StrOpt('ca_cert'),
cfg.StrOpt('endpoint_type', default='publicURL')
cfg.BoolOpt('insecure', default=False,
help='This option explicitly allows Murano to perform '
'"insecure" SSL connections and transfers with Neutron API.'),
cfg.StrOpt('ca_cert',
help='(SSL) Tells Murano to use the specified client '
'certificate file when communicating with Neutron.'),
cfg.StrOpt('endpoint_type', default='publicURL',
help='Neutron endpoint type.')
]
keystone_opts = [
cfg.StrOpt('auth_url'),
cfg.BoolOpt('insecure', default=False),
cfg.StrOpt('ca_file'),
cfg.StrOpt('cert_file'),
cfg.StrOpt('key_file')
cfg.StrOpt('auth_url', help='URL to access OpenStack Identity service.'),
cfg.BoolOpt('insecure', default=False,
help='This option explicitly allows Murano to perform '
'"insecure" SSL connections and transfers with '
'Keystone API running Kyestone API.'),
cfg.StrOpt('ca_file',
help='(SSL) Tells Murano to use the specified certificate file '
'to verify the peer when communicating with Keystone.'),
cfg.StrOpt('cert_file',
help='(SSL) Tells Murano to use the specified client '
'certificate file when communicating with Keystone.'),
cfg.StrOpt('key_file', help='(SSL/SSH) Private key file name to '
'communicate with Keystone API')
]
murano_opts = [
cfg.StrOpt('url', help=_('Optional murano url in format '
'like http://0.0.0.0:8082')),
cfg.BoolOpt('insecure', default=False),
cfg.StrOpt('cacert'),
cfg.StrOpt('cert_file'),
cfg.StrOpt('key_file'),
cfg.StrOpt('endpoint_type', default='publicURL')
cfg.StrOpt('url', help='Optional murano url in format '
'like http://0.0.0.0:8082 used by Murano engine'),
cfg.BoolOpt('insecure', default=False,
help='This option explicitly allows Murano to perform '
'"insecure" SSL connections and transfers used by '
'Murano engine.'),
cfg.StrOpt('cacert',
help='(SSL) Tells Murano to use the specified client '
'certificate file when communicating with Murano API '
'used by Murano engine.'),
cfg.StrOpt('cert_file',
help='(SSL) Tells Murano to use the specified client '
'certificate file when communicating with Murano '
'used by Murano engine.'),
cfg.StrOpt('key_file', help='(SSL/SSH) Private key file name '
'to communicate with Murano API used by '
'Murano engine.'),
cfg.StrOpt('endpoint_type', default='publicURL',
help='Murno endpoint type used by Murano engine.')
]
networking_opts = [
cfg.IntOpt('max_environments', default=20),
cfg.IntOpt('max_hosts', default=250),
cfg.StrOpt('env_ip_template', default='10.0.0.0'),
cfg.StrOpt('default_dns', default='8.8.8.8')
cfg.IntOpt('max_environments', default=20,
help='Maximum number of environments that use a single router '
'per tenant'),
cfg.IntOpt('max_hosts', default=250,
help='Maximum number of VMs per environment'),
cfg.StrOpt('env_ip_template', default='10.0.0.0',
help='Template IP address for generating environment '
'subnet cidrs'),
cfg.StrOpt('default_dns', default='8.8.8.8',
help='Default DNS nameserver to be assigned to '
'created Networks')
]
stats_opt = [
@ -100,21 +168,29 @@ stats_opt = [
'Default value is 5 minutes.'))
]
metadata_dir = cfg.StrOpt('metadata-dir', default='./meta')
metadata_dir = cfg.StrOpt('metadata-dir', default='./meta',
help='Metadata dir')
temp_pkg_cache = os.path.join(tempfile.gettempdir(), 'murano-packages-cache')
packages_opts = [
cfg.StrOpt('packages_cache', default=temp_pkg_cache),
cfg.IntOpt('package_size_limit', default=5),
cfg.IntOpt('limit_param_default', default=20),
cfg.IntOpt('api_limit_max', default=100)
cfg.StrOpt('packages_cache', default=temp_pkg_cache,
help='Location (directory) for Murano package cache.'),
cfg.IntOpt('package_size_limit', default=5,
help='Maximum application package size, Mb'),
cfg.IntOpt('limit_param_default', default=20,
help='Default value for package pagination in API.'),
cfg.IntOpt('api_limit_max', default=100,
help='Maximum number of packages to be returned in a single '
'pagination request')
]
CONF = cfg.CONF
CONF.register_opts(paste_deploy_opts, group='paste_deploy')
CONF.register_cli_opts(bind_opts)
CONF.register_opts(db_opts, group='database')
CONF.register_opts(rabbit_opts, group='rabbitmq')
CONF.register_opts(heat_opts, group='heat')
CONF.register_opts(neutron_opts, group='neutron')

View File

@ -17,6 +17,7 @@ whitelist_externals = bash
[testenv:pep8]
commands =
flake8 {posargs}
{toxinidir}/tools/config/check_uptodate.sh
[testenv:venv]
commands = {posargs}