Fix and update extract_opts group extraction
Same as the one sent to nova: https://review.openstack.org/#/c/30251/ Change-Id: Iba3c31b320ed93deb295a22cd01518e05bfee8ce Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
be77d40c89
commit
a910848af7
@ -1,22 +1,24 @@
|
||||
##########################
|
||||
# ceilometer.conf sample #
|
||||
##########################
|
||||
|
||||
[DEFAULT]
|
||||
|
||||
######## defined in ceilometer.counter ########
|
||||
#
|
||||
# Options defined in ceilometer.counter
|
||||
#
|
||||
|
||||
# Source for counters emited on this instance (string value)
|
||||
#counter_source=openstack
|
||||
|
||||
|
||||
######## defined in ceilometer.pipeline ########
|
||||
#
|
||||
# Options defined in ceilometer.pipeline
|
||||
#
|
||||
|
||||
# Configuration file for pipeline definition (string value)
|
||||
#pipeline_cfg_file=pipeline.yaml
|
||||
|
||||
|
||||
######## defined in ceilometer.policy ########
|
||||
#
|
||||
# Options defined in ceilometer.policy
|
||||
#
|
||||
|
||||
# JSON file representing policy (string value)
|
||||
#policy_file=policy.json
|
||||
@ -25,7 +27,9 @@
|
||||
#policy_default_rule=default
|
||||
|
||||
|
||||
######## defined in ceilometer.service ########
|
||||
#
|
||||
# Options defined in ceilometer.service
|
||||
#
|
||||
|
||||
# Username to use for openstack service access (string value)
|
||||
#os_username=ceilometer
|
||||
@ -44,51 +48,70 @@
|
||||
#os_auth_url=http://localhost:5000/v2.0
|
||||
|
||||
|
||||
######## defined in ceilometer.api ########
|
||||
#
|
||||
# Options defined in ceilometer.api
|
||||
#
|
||||
|
||||
# The port for the ceilometer API server (integer value)
|
||||
#metering_api_port=8777
|
||||
|
||||
|
||||
######## defined in ceilometer.api.app ########
|
||||
#
|
||||
# Options defined in ceilometer.api.app
|
||||
#
|
||||
|
||||
# The strategy to use for auth: noauth or keystone. (string
|
||||
# value)
|
||||
#auth_strategy=keystone
|
||||
|
||||
# Deploy the deprecated v1 API. (boolean value)
|
||||
#enable_v1_api=true
|
||||
|
||||
######## defined in ceilometer.central.manager ########
|
||||
|
||||
#
|
||||
# Options defined in ceilometer.central.manager
|
||||
#
|
||||
|
||||
# list of central pollsters to disable (list value)
|
||||
#disabled_central_pollsters=
|
||||
|
||||
|
||||
######## defined in ceilometer.collector.service ########
|
||||
#
|
||||
# Options defined in ceilometer.collector.service
|
||||
#
|
||||
|
||||
# list of listener plugins to disable (list value)
|
||||
#disabled_notification_listeners=
|
||||
|
||||
|
||||
######## defined in ceilometer.compute ########
|
||||
#
|
||||
# Options defined in ceilometer.compute
|
||||
#
|
||||
|
||||
# list of compute agent pollsters to disable (list value)
|
||||
#disabled_compute_pollsters=
|
||||
|
||||
|
||||
######## defined in ceilometer.compute.notifications ########
|
||||
#
|
||||
# Options defined in ceilometer.compute.notifications
|
||||
#
|
||||
|
||||
# Exchange name for Nova notifications (string value)
|
||||
#nova_control_exchange=nova
|
||||
|
||||
|
||||
######## defined in ceilometer.compute.virt.inspector ########
|
||||
#
|
||||
# Options defined in ceilometer.compute.virt.inspector
|
||||
#
|
||||
|
||||
# Inspector to use for inspecting the hypervisor layer (string
|
||||
# value)
|
||||
#hypervisor_inspector=libvirt
|
||||
|
||||
|
||||
######## defined in ceilometer.compute.virt.libvirt.inspector ########
|
||||
#
|
||||
# Options defined in ceilometer.compute.virt.libvirt.inspector
|
||||
#
|
||||
|
||||
# Libvirt domain type (valid options are: kvm, lxc, qemu, uml,
|
||||
# xen) (string value)
|
||||
@ -99,32 +122,89 @@
|
||||
#libvirt_uri=
|
||||
|
||||
|
||||
######## defined in ceilometer.image.notifications ########
|
||||
#
|
||||
# Options defined in ceilometer.image.notifications
|
||||
#
|
||||
|
||||
# Exchange name for Glance notifications (string value)
|
||||
#glance_control_exchange=glance
|
||||
|
||||
|
||||
######## defined in ceilometer.network.notifications ########
|
||||
#
|
||||
# Options defined in ceilometer.network.notifications
|
||||
#
|
||||
|
||||
# Exchange name for Quantum notifications (string value)
|
||||
#quantum_control_exchange=quantum
|
||||
|
||||
|
||||
######## defined in ceilometer.objectstore.swift ########
|
||||
#
|
||||
# Options defined in ceilometer.objectstore.swift
|
||||
#
|
||||
|
||||
# Swift reseller prefix. Must be on par with reseller_prefix
|
||||
# in proxy-server.conf. (string value)
|
||||
#reseller_prefix=AUTH_
|
||||
|
||||
|
||||
######## defined in ceilometer.openstack.common.eventlet_backdoor ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.db.sqlalchemy.session
|
||||
#
|
||||
|
||||
# The SQLAlchemy connection string used to connect to the
|
||||
# database (string value)
|
||||
#sql_connection=sqlite:////ceilometer/openstack/common/db/$sqlite_db
|
||||
|
||||
# the filename to use with sqlite (string value)
|
||||
#sqlite_db=ceilometer.sqlite
|
||||
|
||||
# timeout before idle sql connections are reaped (integer
|
||||
# value)
|
||||
#sql_idle_timeout=3600
|
||||
|
||||
# If passed, use synchronous mode for sqlite (boolean value)
|
||||
#sqlite_synchronous=true
|
||||
|
||||
# Minimum number of SQL connections to keep open in a pool
|
||||
# (integer value)
|
||||
#sql_min_pool_size=1
|
||||
|
||||
# Maximum number of SQL connections to keep open in a pool
|
||||
# (integer value)
|
||||
#sql_max_pool_size=5
|
||||
|
||||
# maximum db connection retries during startup. (setting -1
|
||||
# implies an infinite retry count) (integer value)
|
||||
#sql_max_retries=10
|
||||
|
||||
# interval between retries of opening a sql connection
|
||||
# (integer value)
|
||||
#sql_retry_interval=10
|
||||
|
||||
# If set, use this value for max_overflow with sqlalchemy
|
||||
# (integer value)
|
||||
#sql_max_overflow=<None>
|
||||
|
||||
# Verbosity of SQL debugging information. 0=None,
|
||||
# 100=Everything (integer value)
|
||||
#sql_connection_debug=0
|
||||
|
||||
# Add python stack traces to SQL as comment strings (boolean
|
||||
# value)
|
||||
#sql_connection_trace=false
|
||||
|
||||
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.eventlet_backdoor
|
||||
#
|
||||
|
||||
# port for eventlet backdoor to listen (integer value)
|
||||
#backdoor_port=<None>
|
||||
|
||||
|
||||
######## defined in ceilometer.openstack.common.log ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.log
|
||||
#
|
||||
|
||||
# Print debugging output (set logging level to DEBUG instead
|
||||
# of default WARNING level). (boolean value)
|
||||
@ -201,7 +281,9 @@
|
||||
#syslog_log_facility=LOG_USER
|
||||
|
||||
|
||||
######## defined in ceilometer.openstack.common.notifier.api ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.notifier.api
|
||||
#
|
||||
|
||||
# Driver or drivers to handle sending notifications (multi
|
||||
# valued)
|
||||
@ -216,19 +298,25 @@
|
||||
#default_publisher_id=$host
|
||||
|
||||
|
||||
######## defined in ceilometer.openstack.common.notifier.list_notifier ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.notifier.list_notifier
|
||||
#
|
||||
|
||||
# List of drivers to send notifications (multi valued)
|
||||
#list_notifier_drivers=ceilometer.openstack.common.notifier.no_op_notifier
|
||||
|
||||
|
||||
######## defined in ceilometer.openstack.common.notifier.rpc_notifier ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.notifier.rpc_notifier
|
||||
#
|
||||
|
||||
# AMQP topic used for openstack notifications (list value)
|
||||
#notification_topics=notifications
|
||||
|
||||
|
||||
######## defined in ceilometer.openstack.common.rpc ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.rpc
|
||||
#
|
||||
|
||||
# The messaging module to use, defaults to kombu. (string
|
||||
# value)
|
||||
@ -260,14 +348,18 @@
|
||||
#control_exchange=openstack
|
||||
|
||||
|
||||
######## defined in ceilometer.openstack.common.rpc.amqp ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.rpc.amqp
|
||||
#
|
||||
|
||||
# Enable a fast single reply queue if using AMQP based RPC
|
||||
# like RabbitMQ or Qpid. (boolean value)
|
||||
#amqp_rpc_single_reply_queue=false
|
||||
|
||||
|
||||
######## defined in ceilometer.openstack.common.rpc.impl_kombu ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.rpc.impl_kombu
|
||||
#
|
||||
|
||||
# SSL version to use (valid only if SSL enabled) (string
|
||||
# value)
|
||||
@ -328,7 +420,9 @@
|
||||
#rabbit_ha_queues=false
|
||||
|
||||
|
||||
######## defined in ceilometer.openstack.common.rpc.impl_qpid ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.rpc.impl_qpid
|
||||
#
|
||||
|
||||
# Qpid broker hostname (string value)
|
||||
#qpid_hostname=localhost
|
||||
@ -360,7 +454,9 @@
|
||||
#qpid_tcp_nodelay=true
|
||||
|
||||
|
||||
######## defined in ceilometer.openstack.common.rpc.impl_zmq ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.rpc.impl_zmq
|
||||
#
|
||||
|
||||
# ZeroMQ bind address. Should be a wildcard (*), an ethernet
|
||||
# interface, or IP. The "host" option should point or resolve
|
||||
@ -389,7 +485,9 @@
|
||||
#rpc_zmq_host=nova
|
||||
|
||||
|
||||
######## defined in ceilometer.openstack.common.rpc.matchmaker ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.rpc.matchmaker
|
||||
#
|
||||
|
||||
# Matchmaker ring file (JSON) (string value)
|
||||
#matchmaker_ringfile=/etc/nova/matchmaker_ring.json
|
||||
@ -401,59 +499,35 @@
|
||||
#matchmaker_heartbeat_ttl=600
|
||||
|
||||
|
||||
######## defined in ceilometer.storage ########
|
||||
#
|
||||
# Options defined in ceilometer.storage
|
||||
#
|
||||
|
||||
# Database connection string (string value)
|
||||
#database_connection=mongodb://localhost:27017/ceilometer
|
||||
|
||||
|
||||
######## defined in ceilometer.storage.sqlalchemy.models ########
|
||||
#
|
||||
# Options defined in ceilometer.storage.sqlalchemy.models
|
||||
#
|
||||
|
||||
# MySQL engine (string value)
|
||||
#mysql_engine=InnoDB
|
||||
|
||||
|
||||
######## defined in ceilometer.openstack.common.db.sqlalchemy.session ########
|
||||
|
||||
# Verbosity of SQL debugging information. 0=None,
|
||||
# 100=Everything (integer value)
|
||||
#sql_connection_debug=0
|
||||
|
||||
# Add python stack traces to SQL as comment strings (boolean
|
||||
# value)
|
||||
#sql_connection_trace=false
|
||||
|
||||
# If passed, use synchronous mode for sqlite (boolean value)
|
||||
#sqlite_synchronous=true
|
||||
|
||||
# timeout before idle sql connections are reaped (integer
|
||||
# value)
|
||||
#sql_idle_timeout=3600
|
||||
|
||||
# maximum db connection retries during startup. (setting -1
|
||||
# implies an infinite retry count) (integer value)
|
||||
#sql_max_retries=10
|
||||
|
||||
# interval between retries of opening a sql connection
|
||||
# (integer value)
|
||||
#sql_retry_interval=10
|
||||
|
||||
|
||||
######## defined in ceilometer.volume.notifications ########
|
||||
#
|
||||
# Options defined in ceilometer.volume.notifications
|
||||
#
|
||||
|
||||
# Exchange name for Cinder notifications (string value)
|
||||
#cinder_control_exchange=cinder
|
||||
|
||||
|
||||
######## defined in ceilometer.api.app ########
|
||||
|
||||
# Deploy the deprecated v1 API. (boolean value)
|
||||
#enable_v1_api=true
|
||||
|
||||
|
||||
[rpc_notifier2]
|
||||
|
||||
######## defined in ceilometer.openstack.common.notifier.rpc_notifier2 ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.notifier.rpc_notifier2
|
||||
#
|
||||
|
||||
# AMQP topic(s) used for openstack notifications (list value)
|
||||
#topics=notifications
|
||||
@ -461,7 +535,9 @@
|
||||
|
||||
[matchmaker_redis]
|
||||
|
||||
######## defined in ceilometer.openstack.common.rpc.matchmaker_redis ########
|
||||
#
|
||||
# Options defined in ceilometer.openstack.common.rpc.matchmaker_redis
|
||||
#
|
||||
|
||||
# Host to locate redis (string value)
|
||||
#host=127.0.0.1
|
||||
@ -475,7 +551,9 @@
|
||||
|
||||
[publisher_meter]
|
||||
|
||||
######## defined in ceilometer.publisher.meter ########
|
||||
#
|
||||
# Options defined in ceilometer.publisher.meter
|
||||
#
|
||||
|
||||
# the topic ceilometer uses for metering messages (string
|
||||
# value)
|
||||
@ -485,4 +563,4 @@
|
||||
#metering_secret=change this or be hacked
|
||||
|
||||
|
||||
# Total option count: 106
|
||||
# Total option count: 111
|
||||
|
@ -1,3 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
||||
|
||||
# Copyright 2012 SINA Corporation
|
||||
@ -20,6 +21,7 @@
|
||||
|
||||
"""Extracts OpenStack config option info from module(s)."""
|
||||
|
||||
import gettext
|
||||
import imp
|
||||
import os
|
||||
import re
|
||||
@ -31,6 +33,7 @@ from oslo.config import cfg
|
||||
|
||||
from ceilometer.openstack.common import importutils
|
||||
|
||||
gettext.install('ceilometer', unicode=1)
|
||||
|
||||
STROPT = "StrOpt"
|
||||
BOOLOPT = "BoolOpt"
|
||||
@ -59,7 +62,6 @@ WORDWRAP_WIDTH = 60
|
||||
|
||||
|
||||
def main(srcfiles):
|
||||
print '\n'.join(['#' * 26, '# ceilometer.conf sample #', '#' * 26, ''])
|
||||
mods_by_pkg = dict()
|
||||
for filepath in srcfiles:
|
||||
pkg_name = filepath.split(os.sep)[1]
|
||||
@ -114,49 +116,26 @@ def _import_module(mod_str):
|
||||
return None
|
||||
|
||||
|
||||
def _guess_groups(opt, mod_obj):
|
||||
groups = []
|
||||
def _is_in_group (opt, group):
|
||||
"Check if opt is in group."
|
||||
for key, value in group._opts.items():
|
||||
if value['opt'] == opt:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def _guess_groups(opt, mod_obj):
|
||||
# is it in the DEFAULT group?
|
||||
if (opt.dest in cfg.CONF and
|
||||
not isinstance(cfg.CONF[opt.dest], cfg.CONF.GroupAttr)):
|
||||
groups.append('DEFAULT')
|
||||
if _is_in_group(opt, cfg.CONF):
|
||||
return 'DEFAULT'
|
||||
|
||||
# what other groups is it in?
|
||||
for key, value in cfg.CONF.items():
|
||||
if not isinstance(value, cfg.CONF.GroupAttr):
|
||||
continue
|
||||
if opt.dest not in value:
|
||||
continue
|
||||
groups.append(key)
|
||||
if isinstance(value, cfg.CONF.GroupAttr):
|
||||
if _is_in_group(opt, value._group):
|
||||
return value._group.name
|
||||
|
||||
if len(groups) == 1:
|
||||
return groups[0]
|
||||
|
||||
group = None
|
||||
for g in groups:
|
||||
if g in mod_obj.__name__:
|
||||
group = g
|
||||
break
|
||||
|
||||
if group is None and 'DEFAULT' in groups:
|
||||
sys.stderr.write("Guessing that " + opt.dest +
|
||||
" in " + mod_obj.__name__ +
|
||||
" is in DEFAULT group out of " +
|
||||
','.join(groups) + "\n")
|
||||
return 'DEFAULT'
|
||||
|
||||
if group is None:
|
||||
sys.stderr.write("Unable to guess what group " + opt.dest +
|
||||
" in " + mod_obj.__name__ +
|
||||
" is in out of " + ','.join(groups) + "\n")
|
||||
sys.exit(1)
|
||||
|
||||
sys.stderr.write("Guessing that " + opt.dest +
|
||||
" in " + mod_obj.__name__ +
|
||||
" is in the " + group +
|
||||
" group out of " + ','.join(groups) + "\n")
|
||||
return group
|
||||
raise RuntimeError("Unable to find group for option %s" % opt.name)
|
||||
|
||||
|
||||
def _list_opts(obj):
|
||||
@ -185,7 +164,9 @@ def print_group_opts(group, opts_by_module):
|
||||
global OPTION_COUNT
|
||||
for mod, opts in opts_by_module:
|
||||
OPTION_COUNT += len(opts)
|
||||
print '######## defined in %s ########' % mod
|
||||
print '#'
|
||||
print '# Options defined in %s' % mod
|
||||
print '#'
|
||||
print
|
||||
for opt in opts:
|
||||
_print_opt(opt)
|
||||
|
Loading…
Reference in New Issue
Block a user