From 923a7eeaa3c61759d79baab0626f5e5c5777f883 Mon Sep 17 00:00:00 2001 From: Julien Danjou Date: Mon, 1 Jul 2013 15:57:06 +0200 Subject: [PATCH] Check that the configuration file sample is up to date We added this check recently to Ceilometer, and it helps a lot to keep this file always up to date and not falling behind. Change-Id: I5ad2c6366032a39c2e55dd11a16b9f1780ab9ed0 --- etc/nova/nova.conf.sample | 225 +++++++++++++++++++++++++++------- test-requirements.txt | 3 + tools/conf/check_uptodate.sh | 9 ++ tools/conf/generate_sample.sh | 2 +- tox.ini | 1 + 5 files changed, 192 insertions(+), 48 deletions(-) create mode 100755 tools/conf/check_uptodate.sh diff --git a/etc/nova/nova.conf.sample b/etc/nova/nova.conf.sample index 633316bbab3c..9df46d1d55f0 100644 --- a/etc/nova/nova.conf.sample +++ b/etc/nova/nova.conf.sample @@ -93,7 +93,7 @@ #pybasedir=/usr/lib/python/site-packages # Directory where nova binaries are installed (string value) -#bindir=$pybasedir/bin +#bindir=/usr/local/bin # Top-level directory for maintaining nova's state (string # value) @@ -311,7 +311,8 @@ # Options defined in nova.api.auth # -# whether to rate limit the api (boolean value) +# whether to use per-user rate limiting for the api. (boolean +# value) #api_rate_limit=true # The strategy to use for auth: noauth or keystone. (string @@ -442,15 +443,6 @@ #fping_path=/usr/sbin/fping -# -# Options defined in nova.api.openstack.compute.contrib.hide_server_addresses -# - -# List of instance states that should hide network info (list -# value) -#osapi_hide_server_address_states=building - - # # Options defined in nova.api.openstack.compute.contrib.os_tenant_networks # @@ -475,6 +467,15 @@ #osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions +# +# Options defined in nova.api.openstack.compute.plugins.v3.hide_server_addresses +# + +# List of instance states that should hide network info (list +# value) +#osapi_hide_server_address_states=building + + # # Options defined in nova.api.openstack.compute.servers # @@ -493,6 +494,15 @@ #osapi_max_request_body_size=114688 +# +# Options defined in nova.cells.opts +# + +# The full class name of the compute API class to use +# (deprecated) (string value) +#compute_api_class=nova.compute.api.API + + # # Options defined in nova.cert.rpcapi # @@ -588,15 +598,6 @@ #spicehtml5proxy_port=6082 -# -# Options defined in nova.compute -# - -# The full class name of the compute API class to use -# (deprecated) (string value) -#compute_api_class=nova.compute.api.API - - # # Options defined in nova.compute.api # @@ -671,6 +672,10 @@ # rebooted (boolean value) #resume_guests_state_on_host_boot=false +# Number of times to retry network allocation on failures +# (integer value) +#network_allocate_retries=0 + # interval to pull bandwidth usage info (integer value) #bandwidth_poll_interval=600 @@ -698,6 +703,15 @@ # value) #volume_usage_poll_interval=0 +# Interval in seconds for polling shelved instances to offload +# (integer value) +#shelved_poll_interval=3600 + +# Time in seconds before a shelved instance is eligible for +# removing from a host. -1 never offload, 0 offload when +# shelved (integer value) +#shelved_offload_time=0 + # Action to take if a running deleted instance is # detected.Valid options are 'noop', 'log' and 'reap'. Set to # 'noop' to disable. (string value) @@ -932,6 +946,15 @@ #ipv6_backend=rfc2462 +# +# Options defined in nova.keymgr +# + +# The full class name of the key manager API class (string +# value) +#keymgr_api_class=nova.keymgr.key_mgr.KeyManager + + # # Options defined in nova.network # @@ -1297,7 +1320,7 @@ # The SQLAlchemy connection string used to connect to the # database (string value) -#sql_connection=sqlite:////common/db/$sqlite_db +#sql_connection=sqlite:////nova/openstack/common/db/$sqlite_db # the filename to use with sqlite (string value) #sqlite_db=nova.sqlite @@ -1413,9 +1436,9 @@ # (string value) #log_config= -# A logging.Formatter log message format string which may use -# any of the available logging.LogRecord attributes. This -# option is deprecated. Please use +# 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= @@ -1461,7 +1484,7 @@ # Default publisher_id for outgoing notifications (string # value) -#default_publisher_id=$host +#default_publisher_id= # @@ -1515,15 +1538,6 @@ #control_exchange=openstack -# -# Options defined in nova.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 - - # # Options defined in nova.openstack.common.rpc.impl_kombu # @@ -1656,9 +1670,6 @@ # Options defined in nova.openstack.common.rpc.matchmaker # -# Matchmaker ring file (JSON) (string value) -#matchmaker_ringfile=/etc/nova/matchmaker_ring.json - # Heartbeat frequency (integer value) #matchmaker_heartbeat_freq=300 @@ -1695,8 +1706,11 @@ # Options defined in nova.scheduler.filters.core_filter # -# Virtual CPU to Physical CPU allocation ratio (floating point -# value) +# Virtual CPU to physical CPU allocation ratio which affects +# all CPU filters. This configuration specifies a global ratio +# for CoreFilter. For AggregateCoreFilter, it will fall back +# to this configuration value if no per-aggregate setting +# found. (floating point value) #cpu_allocation_ratio=16.0 @@ -1741,8 +1755,11 @@ # Options defined in nova.scheduler.filters.ram_filter # -# virtual ram to physical ram allocation ratio (floating point -# value) +# Virtual ram to physical ram allocation ratio which affects +# all ram filters. This configuration specifies a global ratio +# for RamFilter. For AggregateRamFilter, it will fall back to +# this configuration value if no per-aggregate setting found. +# (floating point value) #ram_allocation_ratio=1.5 @@ -2654,6 +2671,14 @@ # Type of cell: api or compute (string value) #cell_type= +# Number of seconds after which a lack of capability and +# capacity updates signals the child cell is to be treated as +# a mute. (integer value) +#mute_child_interval=300 + +# Seconds between bandwidth updates for cells. (integer value) +#bandwidth_update_interval=600 + # # Options defined in nova.cells.rpc_driver @@ -2696,6 +2721,11 @@ # value) #db_check_interval=60 +# Configuration file from which to read cells configuration. +# If given, overrides reading cells from the database. (string +# value) +#cells_config= + # # Options defined in nova.cells.weights.mute_child @@ -2709,11 +2739,6 @@ # be positive.) (floating point value) #mute_weight_value=1000.0 -# Number of seconds after which a lack of capability and -# capacity updates signals the child cell is to be treated as -# a mute. (integer value) -#mute_child_interval=300 - # # Options defined in nova.cells.weights.ram_by_instance_type @@ -2843,6 +2868,10 @@ # value) #pxe_deploy_timeout=0 +# If set, pass the network configuration details to the +# initramfs via cmdline. (boolean value) +#pxe_network_config=false + # # Options defined in nova.virt.baremetal.tilera_pdu @@ -2958,6 +2987,108 @@ #attestation_auth_timeout=60 +[upgrade_levels] + +# +# Options defined in nova.baserpc +# + +# Set a version cap for messages sent to the base api in any +# service (string value) +#baseapi= + + +# +# Options defined in nova.cells.rpc_driver +# + +# Set a version cap for messages sent between cells services +# (string value) +#intercell= + + +# +# Options defined in nova.cells.rpcapi +# + +# Set a version cap for messages sent to local cells services +# (string value) +#cells= + + +# +# Options defined in nova.cert.rpcapi +# + +# Set a version cap for messages sent to cert services (string +# value) +#cert= + + +# +# Options defined in nova.compute.rpcapi +# + +# Set a version cap for messages sent to compute services +# (string value) +#compute= + + +# +# Options defined in nova.conductor.rpcapi +# + +# Set a version cap for messages sent to conductor services +# (string value) +#conductor= + + +# +# Options defined in nova.console.rpcapi +# + +# Set a version cap for messages sent to console services +# (string value) +#console= + + +# +# Options defined in nova.consoleauth.rpcapi +# + +# Set a version cap for messages sent to consoleauth services +# (string value) +#consoleauth= + + +# +# Options defined in nova.network.rpcapi +# + +# Set a version cap for messages sent to network services +# (string value) +#network= + + +# +# Options defined in nova.scheduler.rpcapi +# + +# Set a version cap for messages sent to scheduler services +# (string value) +#scheduler= + + +[matchmaker_ring] + +# +# Options defined in nova.openstack.common.rpc.matchmaker_ring +# + +# Matchmaker ring file (JSON) (string value) +#ringfile=/etc/oslo/matchmaker_ring.json + + [vmware] # @@ -2996,4 +3127,4 @@ #keymap=en-us -# Total option count: 608 +# Total option count: 624 diff --git a/test-requirements.txt b/test-requirements.txt index 10df08131ba5..d0abf529fc32 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -12,6 +12,9 @@ mox==0.5.3 MySQL-python psycopg2 pylint==0.25.2 +# Imported by ldapdns so required to generate +# the sample configuration file +python-ldap==2.3.13 python-subunit setuptools_git>=0.4 sphinx>=1.1.2 diff --git a/tools/conf/check_uptodate.sh b/tools/conf/check_uptodate.sh new file mode 100755 index 000000000000..f0501c3ae550 --- /dev/null +++ b/tools/conf/check_uptodate.sh @@ -0,0 +1,9 @@ +#!/bin/sh +TMPFILE=`mktemp` +trap "rm -f ${TMPFILE}" EXIT +tools/conf/generate_sample.sh "${TMPFILE}" +if ! diff "${TMPFILE}" etc/nova/nova.conf.sample +then + echo "E: nova.conf.sample is not up to date, please run tools/conf/generate_sample.sh" + exit 42 +fi diff --git a/tools/conf/generate_sample.sh b/tools/conf/generate_sample.sh index 44d4672b6e60..fad7210025e0 100755 --- a/tools/conf/generate_sample.sh +++ b/tools/conf/generate_sample.sh @@ -25,5 +25,5 @@ FILES=$(find nova -type f -name "*.py" ! -path "nova/tests/*" \ export EVENTLET_NO_GREENDNS=yes MODULEPATH=$(dirname "$0")/../../nova/openstack/common/config/generator.py -OUTPUTPATH=etc/nova/nova.conf.sample +OUTPUTPATH=${1:-etc/nova/nova.conf.sample} PYTHONPATH=./:${PYTHONPATH} python $MODULEPATH $FILES > $OUTPUTPATH diff --git a/tox.ini b/tox.ini index 916ea2f447cd..617fd12a019f 100644 --- a/tox.ini +++ b/tox.ini @@ -22,6 +22,7 @@ downloadcache = ~/cache/pip sitepackages = False commands = flake8 {posargs} + {toxinidir}/tools/conf/check_uptodate.sh [testenv:pylint] setenv = VIRTUAL_ENV={envdir}