diff --git a/etc/ironic/ironic.conf.sample b/etc/ironic/ironic.conf.sample index f0f7cd20d1..b9c6c269cb 100644 --- a/etc/ironic/ironic.conf.sample +++ b/etc/ironic/ironic.conf.sample @@ -125,7 +125,7 @@ # the node name must be valid within an AMQP key, and if using # ZeroMQ, a valid hostname, FQDN, or IP address. (string # value) -#host=ironic +#host=localhost # @@ -164,20 +164,20 @@ # Options defined in oslo.log # -# Print debugging output (set logging level to DEBUG instead -# of default INFO level). (boolean value) +# If set to true, the logging level will be set to DEBUG +# instead of the default INFO level. (boolean value) #debug=false -# If set to false, will disable INFO logging level, making -# WARNING the default. (boolean value) +# If set to false, the logging level will be set to WARNING +# instead of the default INFO level. (boolean value) #verbose=true # 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. Note that when logging -# configuration files are used then all logging configuration -# is set in the configuration file and other logging +# configuration files are used all logging configuration is +# defined in the configuration file and other logging # configuration options are ignored (for example, log_format). # (string value) # Deprecated group/name - [DEFAULT]/log_config @@ -191,29 +191,30 @@ # ignored if log_config_append is set. (string value) #log_format= -# Format string for %%(asctime)s in log records. Default: -# %(default)s . This option is ignored if log_config_append is -# set. (string value) +# Defines the format string for %%(asctime)s in log records. +# Default: %(default)s . This option is ignored if +# log_config_append is set. (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. This option is ignored if -# log_config_append is set. (string value) +# (Optional) Name of log file to send logging output to. If no +# default is set, logging will go to stderr as defined by +# use_stderr. This option is ignored if log_config_append is +# set. (string value) # Deprecated group/name - [DEFAULT]/logfile #log_file= -# (Optional) The base directory used for relative --log-file +# (Optional) The base directory used for relative log_file # paths. This option is ignored if log_config_append is set. # (string value) # Deprecated group/name - [DEFAULT]/logdir #log_dir= -# (Optional) Uses logging handler designed to watch file -# system. When log file is moved or removed this handler will -# open a new log file with specified path instantaneously. It -# makes sense only if log-file option is specified and Linux -# platform is used. This option is ignored if -# log_config_append is set. (boolean value) +# Uses logging handler designed to watch file system. When log +# file is moved or removed this handler will open a new log +# file with specified path instantaneously. It makes sense +# only if log_file option is specified and Linux platform is +# used. This option is ignored if log_config_append is set. +# (boolean value) #watch_log_file=false # Use syslog for logging. Existing syslog format is DEPRECATED @@ -221,11 +222,11 @@ # ignored if log_config_append is set. (boolean value) #use_syslog=false -# (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 Kilo, and will be removed in Mitaka, -# along with this option. This option is ignored if +# 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 Kilo, and will be removed in Mitaka, along +# with this option. This option is ignored if # log_config_append is set. (boolean value) #use_syslog_rfc_format=true @@ -241,20 +242,24 @@ # 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) +# Format string to use for log messages when context is +# undefined. (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) +# Additional data to append to log message when logging level +# for the message 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 ERROR %(name)s %(instance)s -# List of logger=LEVEL pairs. This option is ignored if -# log_config_append is set. (list value) +# Defines the format string for %(user_identity)s that is used +# in logging_context_format_string. (string value) +#logging_user_identity_format=%(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s + +# List of package logging levels in logger=LEVEL pairs. This +# option is ignored if log_config_append is set. (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,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN # Enables or disables publication of error events. (boolean @@ -269,10 +274,6 @@ # message. (string value) #instance_uuid_format="[instance: %(uuid)s] " -# Format string for user_identity field of the -# logging_context_format_string (string value) -#logging_user_identity_format=%(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s - # Enables or disables fatal status of deprecations. (boolean # value) #fatal_deprecations=false @@ -311,7 +312,7 @@ # Name of this node. Must be a valid hostname, FQDN, or IP # address. Must match "host" option, if running Nova. (string # value) -#rpc_zmq_host=ironic +#rpc_zmq_host=localhost # Seconds to wait before a cast expires (TTL). Only supported # by impl_zmq. (integer value) @@ -1394,13 +1395,12 @@ #revocation_cache_time=10 # (Optional) If defined, indicate whether token data should be -# authenticated or authenticated and encrypted. Acceptable -# values are MAC or ENCRYPT. If MAC, token data is -# authenticated (with HMAC) in the cache. If ENCRYPT, token -# data is encrypted and authenticated in the cache. If the -# value is not one of these options or empty, auth_token will -# raise an exception on initialization. (string value) -#memcache_security_strategy= +# authenticated or authenticated and encrypted. If MAC, token +# data is authenticated (with HMAC) in the cache. If ENCRYPT, +# token data is encrypted and authenticated in the cache. If +# the value is not one of these options or empty, auth_token +# will raise an exception on initialization. (string value) +#memcache_security_strategy=None # (Optional, mandatory if memcache_security_strategy is # defined) This string is used for key derivation. (string @@ -1467,44 +1467,6 @@ # (list value) #hash_algorithms=md5 -# Prefix to prepend at the beginning of the path. Deprecated, -# use identity_uri. (string value) -#auth_admin_prefix= - -# Host providing the admin Identity API endpoint. Deprecated, -# use identity_uri. (string value) -#auth_host=127.0.0.1 - -# Port of the admin Identity API endpoint. Deprecated, use -# identity_uri. (integer value) -#auth_port=35357 - -# Protocol of the admin Identity API endpoint (http or https). -# Deprecated, use identity_uri. (string value) -#auth_protocol=https - -# Complete admin Identity API endpoint. This should specify -# the unversioned root endpoint e.g. https://localhost:35357/ -# (string value) -#identity_uri= - -# This option is deprecated and may be removed in a future -# release. Single shared secret with the Keystone -# configuration used for bootstrapping a Keystone -# installation, or otherwise bypassing the normal -# authentication process. This option should not be used, use -# `admin_user` and `admin_password` instead. (string value) -#admin_token= - -# Service username. (string value) -#admin_user= - -# Service user password. (string value) -#admin_password= - -# Service tenant name. (string value) -#admin_tenant_name=admin - # Authentication type to load (type of value is unknown) # Deprecated group/name - [keystone_authtoken]/auth_plugin #auth_type= diff --git a/ironic/common/config_generator/generator.py b/ironic/common/config_generator/generator.py index c2d2703ecf..ab5bf40e79 100644 --- a/ironic/common/config_generator/generator.py +++ b/ironic/common/config_generator/generator.py @@ -30,6 +30,7 @@ import socket import sys import textwrap +import mock from oslo_config import cfg import oslo_i18n from oslo_utils import importutils @@ -73,6 +74,11 @@ def raise_extension_exception(extmanager, ep, err): raise +# Don't let the system hostname or FQDN affect config file values. Certain 3rd +# party libraries use either 'gethostbyname' or 'getfqdn' to set the default +# value. +@mock.patch.object(socket, 'gethostname', lambda: 'localhost') +@mock.patch.object(socket, 'getfqdn', lambda: 'localhost') def generate(argv): parser = argparse.ArgumentParser( description='generate sample configuration file', @@ -238,8 +244,6 @@ def _get_my_ip(): def _sanitize_default(name, value): """Set up a reasonably sensible default for pybasedir, my_ip and host.""" - hostname = socket.gethostname() - fqdn = socket.getfqdn() if value.startswith(sys.prefix): # NOTE(jd) Don't use os.path.join, because it is likely to think the # second part is an absolute pathname and therefore drop the first @@ -251,13 +255,6 @@ def _sanitize_default(name, value): return value.replace(BASEDIR, '') elif value == _get_my_ip(): return '10.0.0.1' - elif value in (hostname, fqdn): - if 'host' in name: - return 'ironic' - elif value.endswith(hostname): - return value.replace(hostname, 'ironic') - elif value.endswith(fqdn): - return value.replace(fqdn, 'ironic') elif value.strip() != value: return '"%s"' % value return value