From 097fcf15533dd64d60877bceace54f7f280184d0 Mon Sep 17 00:00:00 2001 From: Dimitri Mazmanov Date: Fri, 26 Feb 2016 11:58:11 +0100 Subject: [PATCH] Kingbird config file should be generated from tox Added tox config generator for kingbird parameters from different packages. Removed a duplicate entry from requirements.txt Change-Id: Ib357fa374601e0e20c63886f48e5bd3ce556be62 --- config-generator.conf | 19 + etc/README.rst | 14 - etc/api.conf | 370 ------------------ etc/engine.conf | 339 ---------------- etc/kingbird/README-kingbird.conf.txt | 4 + etc/{ => kingbird}/policy.json | 4 +- kingbird/api/{apicfg.py => api_config.py} | 4 + kingbird/api/controllers/quota_manager.py | 27 +- kingbird/cmd/README.rst | 10 +- kingbird/cmd/api.py | 8 +- kingbird/cmd/engine.py | 14 +- kingbird/common/baserpc.py | 16 +- kingbird/db/base.py | 4 + .../{engine_cfg.py => engine_config.py} | 6 +- kingbird/tests/functional/api/testroot.py | 6 +- requirements.txt | 1 - setup.cfg | 6 +- tox.ini | 10 +- 18 files changed, 95 insertions(+), 767 deletions(-) create mode 100644 config-generator.conf delete mode 100755 etc/README.rst delete mode 100755 etc/api.conf delete mode 100755 etc/engine.conf create mode 100644 etc/kingbird/README-kingbird.conf.txt rename etc/{ => kingbird}/policy.json (59%) rename kingbird/api/{apicfg.py => api_config.py} (98%) rename kingbird/engine/{engine_cfg.py => engine_config.py} (96%) diff --git a/config-generator.conf b/config-generator.conf new file mode 100644 index 0000000..a1b91a8 --- /dev/null +++ b/config-generator.conf @@ -0,0 +1,19 @@ +[DEFAULT] +output_file = etc/kingbird/kingbird.conf.sample +wrap_width = 79 +namespace = kingbird.common.config +namespace = kingbird.common.manager +namespace = kingbird.db.base +namespace = kingbird.engine.engine_cfg +namespace = kingbird.engine.service +namespace = kingbird.api.apicfg +namespace = kingbird.api.controllers.quota_manager +namespace = keystonemiddleware.auth_token +namespace = oslo.messaging +namespace = oslo.middleware +namespace = oslo.db +namespace = oslo.log +namespace = oslo.policy +namespace = oslo.service.service +namespace = oslo.service.periodic_task +namespace = oslo.service.sslutils \ No newline at end of file diff --git a/etc/README.rst b/etc/README.rst deleted file mode 100755 index 08f6c03..0000000 --- a/etc/README.rst +++ /dev/null @@ -1,14 +0,0 @@ -=============================== -etc -=============================== - -configuration sample for the API, JobDaemon and JobWorker service - -api.conf: - configuration sample for API service - -jobdaemon.conf: - configuration sample for JobDaemon service - -jobworker.conf: - configuration sample for JobWorker service diff --git a/etc/api.conf b/etc/api.conf deleted file mode 100755 index 5cb3b9a..0000000 --- a/etc/api.conf +++ /dev/null @@ -1,370 +0,0 @@ -[DEFAULT] -# Print more verbose output (set logging level to INFO instead of default WARNING level). -# verbose = True - -# Print debugging output (set logging level to DEBUG instead of default WARNING level). -# debug = False - -# Where to store Kingbird state files. This directory must be writable by the -# user executing the agent. -# state_path = /var/lib/kingbird - -# log_format = %(asctime)s %(levelname)8s [%(name)s] %(message)s -# log_date_format = %Y-%m-%d %H:%M:%S - -# use_syslog -> syslog -# log_file and log_dir -> log_dir/log_file -# (not log_file) and log_dir -> log_dir/{binary_name}.log -# use_stderr -> stderr -# (not user_stderr) and (not log_file) -> stdout -# publish_errors -> notification system - -# use_syslog = False -# syslog_log_facility = LOG_USER - -# use_stderr = True -# log_file = -# log_dir = - -# publish_errors = False - -# Address to bind the API server to -# bind_host = 127.0.0.1 - -# Port the bind the API server to -# bind_port = 8118 - -# Paste configuration file -# api_paste_config = api-paste.ini - -# (StrOpt) Hostname to be used by the kingbird server, agents and services -# running on this machine. All the agents and services running on this machine -# must use the same host value. -# The default value is hostname of the machine. -# -# host = - -# admin_tenant_name = %SERVICE_TENANT_NAME% -# admin_user = %SERVICE_USER% -# admin_password = %SERVICE_PASSWORD% - -# Enable or disable bulk create/update/delete operations -# allow_bulk = True -# Enable or disable pagination -# allow_pagination = False -# Enable or disable sorting -# allow_sorting = False - -# Default maximum number of items returned in a single response, -# value == infinite and value < 0 means no max limit, and value must -# be greater than 0. If the number of items requested is greater than -# pagination_max_limit, server will just return pagination_max_limit -# of number of items. -# pagination_max_limit = -1 - -# =========== WSGI parameters related to the API server ============== -# Number of separate worker processes to spawn. The default, 0, runs the -# worker thread in the current process. Greater than 0 launches that number of -# child processes as workers. The parent process manages them. -# api_workers = 3 - -# Number of separate RPC worker processes to spawn. The default, 0, runs the -# worker thread in the current process. Greater than 0 launches that number of -# child processes as RPC workers. The parent process manages them. -# This feature is experimental until issues are addressed and testing has been -# enabled for various plugins for compatibility. -# rpc_workers = 0 - -# 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. (integer -# value) -# client_socket_timeout = 900 - -# wsgi keepalive option. Determines if connections are allowed to be held open -# by clients after a request is fulfilled. A value of False will ensure that -# the socket connection will be explicitly closed once a response has been -# sent to the client. -# wsgi_keep_alive = True - -# Sets the value of TCP_KEEPIDLE in seconds to use for each server socket when -# starting API server. Not supported on OS X. -# tcp_keepidle = 600 - -# Number of seconds to keep retrying to listen -# retry_until_window = 30 - -# Number of backlog requests to configure the socket with. -# backlog = 4096 - -# Max header line to accommodate large tokens -# max_header_line = 16384 - -# Enable SSL on the API server -# use_ssl = False - -# Certificate file to use when starting API server securely -# ssl_cert_file = /path/to/certfile - -# Private key file to use when starting API server securely -# ssl_key_file = /path/to/keyfile - -# CA certificate file to use when starting API server securely to -# verify connecting clients. This is an optional parameter only required if -# API clients need to authenticate to the API server using SSL certificates -# signed by a trusted CA -# ssl_ca_file = /path/to/cafile -# ======== end of WSGI parameters related to the API server ========== - -# The strategy to be used for auth. -# Supported values are 'keystone'(default), 'noauth'. -auth_strategy = noauth - -[keystone_authtoken] -# auth_uri = http://162.3.111.227:35357/v3 -# identity_uri = http://162.3.111.227:35357 -# admin_tenant_name = service -# admin_user = kingbird -# admin_password = 1234 -# auth_version = 3 - -[database] -# This line MUST be changed to actually run the plugin. -# Example: -# connection = mysql://root:pass@127.0.0.1:3306/neutron -# Replace 127.0.0.1 above with the IP address of the database used by the -# main neutron server. (Leave it as is if the database runs on this host.) -connection = sqlite:///kingbird.db -# NOTE: In deployment the [database] section and its connection attribute may -# be set in the corresponding core plugin '.ini' file. However, it is suggested -# to put the [database] section and its connection attribute in this -# configuration file. - -# Database engine for which script will be generated when using offline -# migration -# engine = - -# The SQLAlchemy connection string used to connect to the slave database -# slave_connection = - -# Database reconnection retry times - in event connectivity is lost -# set to -1 implies an infinite retry count -# max_retries = 10 - -# Database reconnection interval in seconds - if the initial connection to the -# database fails -# retry_interval = 10 - -# Minimum number of SQL connections to keep open in a pool -# min_pool_size = 1 - -# Maximum number of SQL connections to keep open in a pool -# max_pool_size = 10 - -# Timeout in seconds before idle sql connections are reaped -# idle_timeout = 3600 - -# If set, use this value for max_overflow with sqlalchemy -# max_overflow = 20 - -# Verbosity of SQL debugging information. 0=None, 100=Everything -# connection_debug = 0 - -# Add python stack traces to SQL as comment strings -# connection_trace = False - -# If set, use this value for pool_timeout with sqlalchemy -# pool_timeout = 10 - -[oslo_concurrency] - -# 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. -lock_path = $state_path/lock - -# Enables or disables inter-process locks. -# disable_process_locking = False - -[oslo_policy] - -# The JSON file that defines policies. -# policy_file = policy.json - -# Default rule. Enforced when a requested rule is not found. -# 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. -# policy_dirs = policy.d - -[oslo_messaging_amqp] - -# -# From oslo.messaging -# - -# Address prefix used when sending to a specific server (string value) -# server_request_prefix = exclusive - -# Address prefix used when broadcasting to all servers (string value) -# broadcast_prefix = broadcast - -# Address prefix when sending to any server in group (string value) -# group_request_prefix = unicast - -# Name for the AMQP container (string value) -# container_name = - -# Timeout for inactive connections (in seconds) (integer value) -# idle_timeout = 0 - -# Debug: dump AMQP frames to stdout (boolean value) -# trace = false - -# CA certificate PEM file for verifing server certificate (string value) -# ssl_ca_file = - -# Identifying certificate PEM file to present to clients (string value) -# ssl_cert_file = - -# Private key PEM file used to sign cert_file certificate (string value) -# ssl_key_file = - -# Password for decrypting ssl_key_file (if encrypted) (string value) -# ssl_key_password = - -# Accept clients using either SSL or plain TCP (boolean value) -# allow_insecure_clients = false - - -[oslo_messaging_qpid] - -# -# From oslo.messaging -# - -# Use durable queues in AMQP. (boolean value) -# amqp_durable_queues = false - -# Auto-delete queues in AMQP. (boolean value) -# amqp_auto_delete = false - -# Size of RPC connection pool. (integer value) -# rpc_conn_pool_size = 30 - -# Qpid broker hostname. (string value) -# qpid_hostname = localhost - -# Qpid broker port. (integer value) -# qpid_port = 5672 - -# Qpid HA cluster host:port pairs. (list value) -# qpid_hosts = $qpid_hostname:$qpid_port - -# Username for Qpid connection. (string value) -# qpid_username = - -# Password for Qpid connection. (string value) -# qpid_password = - -# Space separated list of SASL mechanisms to use for auth. (string value) -# qpid_sasl_mechanisms = - -# Seconds between connection keepalive heartbeats. (integer value) -# qpid_heartbeat = 60 - -# Transport to use, either 'tcp' or 'ssl'. (string value) -# qpid_protocol = tcp - -# Whether to disable the Nagle algorithm. (boolean value) -# qpid_tcp_nodelay = true - -# The number of prefetched messages held by receiver. (integer value) -# qpid_receiver_capacity = 1 - -# The qpid topology version to use. Version 1 is what was originally used by -# impl_qpid. Version 2 includes some backwards-incompatible changes that allow -# broker federation to work. Users should update to version 2 when they are -# able to take everything down, as it requires a clean break. (integer value) -# qpid_topology_version = 1 - - -[oslo_messaging_rabbit] - -# -# From oslo.messaging -# - -# Use durable queues in AMQP. (boolean value) -# amqp_durable_queues = false - -# Auto-delete queues in AMQP. (boolean value) -# amqp_auto_delete = false - -# Size of RPC connection pool. (integer value) -# rpc_conn_pool_size = 30 - -# 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) -# kombu_ssl_version = - -# SSL key file (valid only if SSL enabled). (string value) -# kombu_ssl_keyfile = - -# SSL cert file (valid only if SSL enabled). (string value) -# kombu_ssl_certfile = - -# SSL certification authority file (valid only if SSL enabled). (string value) -# kombu_ssl_ca_certs = - -# How long to wait before reconnecting in response to an AMQP consumer cancel -# notification. (floating point value) -# kombu_reconnect_delay = 1.0 - -# 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. (integer value) -# rabbit_port = 5672 - -# RabbitMQ HA cluster host:port pairs. (list value) -# rabbit_hosts = $rabbit_host:$rabbit_port - -# 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 login method. (string value) -# rabbit_login_method = AMQPLAIN - -# 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 number of RabbitMQ connection retries. Default is 0 (infinite retry -# count). (integer value) -# 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) -# rabbit_ha_queues = false - -# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake (boolean value) -# fake_rabbit = false diff --git a/etc/engine.conf b/etc/engine.conf deleted file mode 100755 index ad85046..0000000 --- a/etc/engine.conf +++ /dev/null @@ -1,339 +0,0 @@ -[DEFAULT] -# Print more verbose output (set logging level to INFO instead of default WARNING level). -# verbose = True - -# Print debugging output (set logging level to DEBUG instead of default WARNING level). -# debug = True - -# log_format = %(asctime)s %(levelname)8s [%(name)s] %(message)s -# log_date_format = %Y-%m-%d %H:%M:%S - -# use_syslog -> syslog -# log_file and log_dir -> log_dir/log_file -# (not log_file) and log_dir -> log_dir/{binary_name}.log -# use_stderr -> stderr -# (not user_stderr) and (not log_file) -> stdout -# publish_errors -> notification system - -# use_syslog = False -# syslog_log_facility = LOG_USER - -# use_stderr = True -# log_file = -# log_dir = - -# publish_errors = False - -# Address to bind the ENGINE server to -host = kingbird.engine_host - -# The messaging driver to use, defaults to rabbit. Other -# drivers include qpid and zmq. (string value) -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 - -[database] -# This line MUST be changed to actually run the plugin. -# Example: -# connection = mysql+pymysql://root:pass@127.0.0.1:3306/neutron -# Replace 127.0.0.1 above with the IP address of the database used by the -# main neutron server. (Leave it as is if the database runs on this host.) -connection = sqlite:///kingbird.db -# NOTE: In deployment the [database] section and its connection attribute may -# be set in the corresponding core plugin '.ini' file. However, it is suggested -# to put the [database] section and its connection attribute in this -# configuration file. - -# Database engine for which script will be generated when using offline -# migration -# engine = - -# The SQLAlchemy connection string used to connect to the slave database -# slave_connection = - -# Database reconnection retry times - in event connectivity is lost -# set to -1 implies an infinite retry count -# max_retries = 10 - -# Database reconnection interval in seconds - if the initial connection to the -# database fails -# retry_interval = 10 - -# Minimum number of SQL connections to keep open in a pool -# min_pool_size = 1 - -# Maximum number of SQL connections to keep open in a pool -# max_pool_size = 10 - -# Timeout in seconds before idle sql connections are reaped -# idle_timeout = 3600 - -# If set, use this value for max_overflow with sqlalchemy -# max_overflow = 20 - -# Verbosity of SQL debugging information. 0=None, 100=Everything -# connection_debug = 0 - -# Add python stack traces to SQL as comment strings -# connection_trace = False - -# If set, use this value for pool_timeout with sqlalchemy -# pool_timeout = 10 - -[client] - -# Keystone authentication URL -# auth_url = http://127.0.0.1:5000/v3 - -# Keystone service URL -# identity_url = http://127.0.0.1:35357/v3 - -# If set to True, endpoint will be automatically refreshed if timeout -# accessing endpoint. -# auto_refresh_endpoint = False - -# Name of top site which client needs to access -# top_site_name = - -# Username of admin account for synchronizing endpoint with Keystone -# admin_username = - -# Password of admin account for synchronizing endpoint with Keystone -# admin_password = - -# Tenant name of admin account for synchronizing endpoint with Keystone -# admin_tenant = - -# User domain name of admin account for synchronizing endpoint with Keystone -# admin_user_domain_name = default - -# Tenant domain name of admin account for synchronizing endpoint with Keystone -# admin_tenant_domain_name = default - - -[oslo_concurrency] - -# 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. -lock_path = $state_path/lock - -# Enables or disables inter-process locks. -# disable_process_locking = False - -[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 = - -# 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 for verifing 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 = - -# Accept clients using either SSL or plain TCP (boolean value) -# Deprecated group/name - [amqp1]/allow_insecure_clients -# allow_insecure_clients = false - - -[oslo_messaging_qpid] - -# -# 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 - -# Size of RPC connection pool. (integer value) -# Deprecated group/name - [DEFAULT]/rpc_conn_pool_size -# rpc_conn_pool_size = 30 - -# Qpid broker hostname. (string value) -# Deprecated group/name - [DEFAULT]/qpid_hostname -# qpid_hostname = localhost - -# Qpid broker port. (integer value) -# Deprecated group/name - [DEFAULT]/qpid_port -# qpid_port = 5672 - -# Qpid HA cluster host:port pairs. (list value) -# Deprecated group/name - [DEFAULT]/qpid_hosts -# qpid_hosts = $qpid_hostname:$qpid_port - -# Username for Qpid connection. (string value) -# Deprecated group/name - [DEFAULT]/qpid_username -# qpid_username = - -# Password for Qpid connection. (string value) -# Deprecated group/name - [DEFAULT]/qpid_password -# qpid_password = - -# Space separated list of SASL mechanisms to use for auth. (string value) -# Deprecated group/name - [DEFAULT]/qpid_sasl_mechanisms -# qpid_sasl_mechanisms = - -# Seconds between connection keepalive heartbeats. (integer value) -# Deprecated group/name - [DEFAULT]/qpid_heartbeat -# qpid_heartbeat = 60 - -# Transport to use, either 'tcp' or 'ssl'. (string value) -# Deprecated group/name - [DEFAULT]/qpid_protocol -# qpid_protocol = tcp - -# Whether to disable the Nagle algorithm. (boolean value) -# Deprecated group/name - [DEFAULT]/qpid_tcp_nodelay -# qpid_tcp_nodelay = true - -# The number of prefetched messages held by receiver. (integer value) -# Deprecated group/name - [DEFAULT]/qpid_receiver_capacity -# qpid_receiver_capacity = 1 - -# The qpid topology version to use. Version 1 is what was originally used by -# impl_qpid. Version 2 includes some backwards-incompatible changes that allow -# broker federation to work. Users should update to version 2 when they are -# able to take everything down, as it requires a clean break. (integer value) -# Deprecated group/name - [DEFAULT]/qpid_topology_version -# qpid_topology_version = 1 - - -[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 - -# Size of RPC connection pool. (integer value) -# Deprecated group/name - [DEFAULT]/rpc_conn_pool_size -# rpc_conn_pool_size = 30 - -# 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 - -# The RabbitMQ broker address where a single node is used. (string value) -# Deprecated group/name - [DEFAULT]/rabbit_host -rabbit_host = localhost - -# The RabbitMQ broker port where a single node is used. (integer value) -# Deprecated group/name - [DEFAULT]/rabbit_port -rabbit_port = 5672 - -# RabbitMQ HA cluster host:port pairs. (list value) -# Deprecated group/name - [DEFAULT]/rabbit_hosts -rabbit_hosts = $rabbit_host:$rabbit_port - -# 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 - -# The RabbitMQ password. (string value) -# Deprecated group/name - [DEFAULT]/rabbit_password -rabbit_password = guest - -# 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 = / - -# 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 - -# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake (boolean value) -# Deprecated group/name - [DEFAULT]/fake_rabbit -# fake_rabbit = false diff --git a/etc/kingbird/README-kingbird.conf.txt b/etc/kingbird/README-kingbird.conf.txt new file mode 100644 index 0000000..9b15ae2 --- /dev/null +++ b/etc/kingbird/README-kingbird.conf.txt @@ -0,0 +1,4 @@ +To generate the sample kingbird.conf file, run the following +command from the top level of the kingbird directory: + +tox -egenconfig \ No newline at end of file diff --git a/etc/policy.json b/etc/kingbird/policy.json similarity index 59% rename from etc/policy.json rename to etc/kingbird/policy.json index 9507586..8d8122c 100755 --- a/etc/policy.json +++ b/etc/kingbird/policy.json @@ -3,6 +3,6 @@ "admin_or_owner": "is_admin:True or project_id:%(project_id)s", "default": "rule:admin_or_owner", - "kingbird:create_quota": "rule:admin_or_owner", - "kingbird:update_quota": "rule:admin_or_owner" + "kingbird:create_quota": "rule:admin", + "kingbird:update_quota": "rule:admin" } diff --git a/kingbird/api/apicfg.py b/kingbird/api/api_config.py similarity index 98% rename from kingbird/api/apicfg.py rename to kingbird/api/api_config.py index bc97e0e..631a664 100755 --- a/kingbird/api/apicfg.py +++ b/kingbird/api/api_config.py @@ -102,3 +102,7 @@ def test_init(): cfg.CONF.register_opts(common_opts) logging.register_options(cfg.CONF) setup_logging() + + +def list_opts(): + yield None, common_opts diff --git a/kingbird/api/controllers/quota_manager.py b/kingbird/api/controllers/quota_manager.py index f726817..2604dde 100644 --- a/kingbird/api/controllers/quota_manager.py +++ b/kingbird/api/controllers/quota_manager.py @@ -29,23 +29,22 @@ from kingbird.common import topics CONF = cfg.CONF -rpcapi_cap_opt = cfg.StrOpt('kb-engine', - help='Set a version cap for messages sent to' - 'kb-engine services. If you plan to do a' - 'live upgrade from an old version to a' - 'newer version, you should set this option' - 'to the old version before beginning the' - 'live upgrade procedure. Only upgrading' - 'to the next version is supported, so you' - 'cannot skip a release for the live upgrade' - 'procedure.') -CONF.register_opt(rpcapi_cap_opt, 'upgrade_levels') +rpc_api_cap_opt = cfg.StrOpt('kb-engine', + help='Set a version cap for messages sent to' + 'kb-engine services. If you plan to do a' + 'live upgrade from an old version to a' + 'newer version, you should set this option' + 'to the old version before beginning the' + 'live upgrade procedure. Only upgrading' + 'to the next version is supported, so you' + 'cannot skip a release for the live upgrade' + 'procedure.') +CONF.register_opt(rpc_api_cap_opt, 'upgrade_levels') LOG = logging.getLogger(__name__) class QuotaManagerController(rest.RestController): - VERSION_ALIASES = { 'mitaka': '1.0', } @@ -118,3 +117,7 @@ class QuotaManagerController(rest.RestController): context = context return {'cast example': 'check the log produced by engine' + 'and no value returned here'} + + +def list_opts(): + yield None, rpc_api_cap_opt diff --git a/kingbird/cmd/README.rst b/kingbird/cmd/README.rst index 3a9b760..2a4f628 100755 --- a/kingbird/cmd/README.rst +++ b/kingbird/cmd/README.rst @@ -2,17 +2,17 @@ cmd =============================== -Scripts to start the API, JobDaemon and JobWorker service +Scripts to start the Kingbird API and Engine services api.py: start API service - python api.py --config-file=../etc/api.conf + python api.py --config-file=/etc/kingbird.conf engine.py: start Engine service - python engine.py --config-file=../etc/engine.conf + python engine.py --config-file=/etc/kingbird.conf manage.py: CLI interface for kingbird management - kingbird-manage --config-file ../../etc/api.conf db_sync - kingbird-manage --config-file ../../etc/api.conf db_version \ No newline at end of file + kingbird-manage --config-file /etc/kingbird.conf db_sync + kingbird-manage --config-file /etc/kingbird.conf db_version \ No newline at end of file diff --git a/kingbird/cmd/api.py b/kingbird/cmd/api.py index 76099a2..500be7f 100755 --- a/kingbird/cmd/api.py +++ b/kingbird/cmd/api.py @@ -25,7 +25,7 @@ from oslo_service import wsgi import logging as std_logging -from kingbird.api import apicfg +from kingbird.api import api_config from kingbird.api import app from kingbird.common import config @@ -34,12 +34,12 @@ from kingbird.common.i18n import _LW CONF = cfg.CONF config.register_options() -LOG = logging.getLogger(__name__) +LOG = logging.getLogger('kingbird.api') def main(): - apicfg.init(sys.argv[1:]) - apicfg.setup_logging() + api_config.init(sys.argv[1:]) + api_config.setup_logging() application = app.setup_app() host = CONF.bind_host diff --git a/kingbird/cmd/engine.py b/kingbird/cmd/engine.py index da0f685..816f57b 100755 --- a/kingbird/cmd/engine.py +++ b/kingbird/cmd/engine.py @@ -28,19 +28,19 @@ import logging as std_logging from kingbird.common import config -CONF = cfg.CONF -config.register_options() -LOG = logging.getLogger(__name__) - from kingbird.common.i18n import _LI from kingbird.common.i18n import _LW -from kingbird.engine import engine_cfg +from kingbird.engine import engine_config from kingbird.engine import service +CONF = cfg.CONF +config.register_options() +LOG = logging.getLogger('kingbird.engine') + def main(): - engine_cfg.init(sys.argv[1:]) - engine_cfg.setup_logging() + engine_config.init(sys.argv[1:]) + engine_config.setup_logging() host = CONF.host workers = CONF.workers diff --git a/kingbird/common/baserpc.py b/kingbird/common/baserpc.py index 7887680..a818a23 100755 --- a/kingbird/common/baserpc.py +++ b/kingbird/common/baserpc.py @@ -25,18 +25,16 @@ from oslo_serialization import jsonutils from kingbird.common import rpc - CONF = cfg.CONF -rpcapi_cap_opt = cfg.StrOpt('baseclientapi', - help='Set a version cap for messages sent to the' - 'base api in any service') -CONF.register_opt(rpcapi_cap_opt, 'upgrade_levels') +rpc_api_cap_opt = cfg.StrOpt('base_client_api', + help='Set a version cap for messages sent to the' + 'base api in any service') +CONF.register_opt(rpc_api_cap_opt, 'upgrade_levels') -_NAMESPACE = 'baseclientapi' +_NAMESPACE = 'base_client_api' class BaseClientAPI(object): - """Client side of the base rpc API. API version history: @@ -73,3 +71,7 @@ class BaseServerRPCAPI(object): def ping(self, context, arg): resp = {'service': self.service_name, 'arg': arg} return jsonutils.to_primitive(resp) + + +def list_opts(): + yield None, rpc_api_cap_opt diff --git a/kingbird/db/base.py b/kingbird/db/base.py index 178bce1..f5afb35 100755 --- a/kingbird/db/base.py +++ b/kingbird/db/base.py @@ -36,3 +36,7 @@ class Base(object): if not db_driver: db_driver = CONF.db_driver self.db = importutils.import_module(db_driver) + + +def list_opts(): + yield None, db_driver_opt diff --git a/kingbird/engine/engine_cfg.py b/kingbird/engine/engine_config.py similarity index 96% rename from kingbird/engine/engine_cfg.py rename to kingbird/engine/engine_config.py index d84ccfa..bdb67f5 100644 --- a/kingbird/engine/engine_cfg.py +++ b/kingbird/engine/engine_config.py @@ -30,7 +30,7 @@ from kingbird.common import version LOG = logging.getLogger(__name__) common_opts = [ - cfg.StrOpt('host', default='kingbird.serivcehost', + cfg.StrOpt('host', default='kingbird.host', help=_("The host name for RPC server")), cfg.IntOpt('workers', default=2, help=_("number of workers")), @@ -75,3 +75,7 @@ def reset_service(): # TODO(joehuang) enforce policy later # policy.refresh() + + +def list_opts(): + yield None, common_opts diff --git a/kingbird/tests/functional/api/testroot.py b/kingbird/tests/functional/api/testroot.py index 9f47c00..b2e10be 100755 --- a/kingbird/tests/functional/api/testroot.py +++ b/kingbird/tests/functional/api/testroot.py @@ -27,7 +27,7 @@ from oslo_config import fixture as fixture_config from oslo_serialization import jsonutils from oslo_utils import uuidutils -from kingbird.api import apicfg +from kingbird.api import api_config from kingbird.api.controllers import quota_manager from kingbird.common import rpc from kingbird.tests import base @@ -49,7 +49,7 @@ class KBFunctionalTest(base.KingbirdTestCase): self.addCleanup(set_config, {}, overwrite=True) - apicfg.test_init() + api_config.test_init() self.CONF = self.useFixture(fixture_config.Config()).conf @@ -240,7 +240,7 @@ class TestKeystoneAuth(KBFunctionalTest): self.addCleanup(set_config, {}, overwrite=True) - apicfg.test_init() + api_config.test_init() self.CONF = self.useFixture(fixture_config.Config()).conf diff --git a/requirements.txt b/requirements.txt index 18ea167..743d270 100644 --- a/requirements.txt +++ b/requirements.txt @@ -20,7 +20,6 @@ netaddr!=0.7.16,>=0.7.12 # BSD retrying!=1.3.0,>=1.2.3 # Apache-2.0 SQLAlchemy<1.1.0,>=1.0.10 # MIT WebOb>=1.2.3 # MIT -python-keystoneclient!=1.8.0,!=2.1.0,>=1.6.0 # Apache-2.0 alembic>=0.8.0 # MIT six>=1.9.0 # MIT stevedore>=1.5.0 # Apache-2.0 diff --git a/setup.cfg b/setup.cfg index 29987b4..846e992 100644 --- a/setup.cfg +++ b/setup.cfg @@ -31,7 +31,11 @@ console_scripts = oslo.config.opts = kingbird.common.config = kingbird.common.config:list_opts - + kingbird.common.engine.engine_config = kingbird.engine.engine_config:list_opts + kingbird.common.api.api_config = kingbird.api.api_config:list_opts + kingbird.db.base= kingbird.db.base:list_opts + kingbird.common.baserpc= kingbird.common.baserpc:list_opts + kingbird.api.controllers.quota_manage= kingbird.api.controllers.quota_manage:list_opts [build_sphinx] source-dir = doc/source diff --git a/tox.ini b/tox.ini index 71e74eb..7351581 100644 --- a/tox.ini +++ b/tox.ini @@ -9,7 +9,8 @@ usedevelop = True install_command = pip install -U --force-reinstall {opts} {packages} setenv = VIRTUAL_ENV={envdir} -deps = -r{toxinidir}/test-requirements.txt +deps = -r{toxinidir}/requirements.txt + -r{toxinidir}/test-requirements.txt commands = python setup.py testr --slowest --testr-args='{posargs}' whitelist_externals = rm @@ -35,3 +36,10 @@ show-source = True ignore = E123,E125 builtins = _ exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build + +[testenv:genconfig] +commands = + oslo-config-generator --config-file=config-generator.conf + +[hacking] +import_exceptions = kingbird.common.i18n