From d9546dce754c68084944ec01aaabd33790f8990a Mon Sep 17 00:00:00 2001 From: Erno Kuvaja Date: Thu, 12 Sep 2019 16:31:33 +0100 Subject: [PATCH] Images API version bump and config sync This change contains minor version bump to Images API to indicate latest changes to the API. Also has config file sync for for M3 release. These two are combined for saving some gating time due to busy infra at Train milestone 3 deadline. Change-Id: I13133c32734751d43cc3afed9b68d015cebd5b6b --- .../samples/image-versions-response.json | 10 + etc/glance-api.conf | 636 ++++-- etc/glance-cache.conf | 121 +- etc/glance-manage.conf | 10 - etc/glance-registry.conf | 92 +- etc/glance-scrubber.conf | 1903 ++++++++++++++++- glance/api/middleware/version_negotiation.py | 1 + glance/api/versions.py | 1 + glance/tests/functional/test_api.py | 5 + glance/tests/unit/test_versions.py | 13 +- 10 files changed, 2447 insertions(+), 345 deletions(-) diff --git a/api-ref/source/versions/samples/image-versions-response.json b/api-ref/source/versions/samples/image-versions-response.json index af8afa4f5c..a04c565ef0 100644 --- a/api-ref/source/versions/samples/image-versions-response.json +++ b/api-ref/source/versions/samples/image-versions-response.json @@ -1,5 +1,15 @@ { "versions": [ + { + "id": "v2.9", + "links": [ + { + "href": "http://glance.openstack.example.org/v2/", + "rel": "self" + } + ], + "status": "EXPERIMENTAL" + }, { "id": "v2.8", "links": [ diff --git a/etc/glance-api.conf b/etc/glance-api.conf index 0556b45fda..25a2111c20 100644 --- a/etc/glance-api.conf +++ b/etc/glance-api.conf @@ -132,7 +132,7 @@ # (boolean value) #allow_additional_image_properties = true -# " +# # Secure hashing algorithm used for computing the 'os_hash_value' property. # # This option configures the Glance "multihash", which consists of two @@ -579,7 +579,7 @@ # (string value) #digest_algorithm = sha256 -# +# DEPRECATED: # The URL provides location where the temporary data will be stored # # This option is for Glance internal use only. Glance will save the @@ -596,13 +596,30 @@ # NOTE: The staging path must be on shared filesystem available to all # Glance API nodes. # +# NOTE: If you are using the Glance multistore feature, you *must* +# use a filesystem store instead of this setting. See the +# ``[os_glance_staging_store]`` section of this configuration file +# for more information. +# # Possible values: # * String starting with 'file://' followed by absolute FS path # # Related options: # * [task]/work_dir +# * enabled_backends +# * [os_glance_staging_store]/filesystem_store_datadir # # (string value) +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# With the introduction of the Glance multistore feature, the way of +# configuring this option has changed. Please refer to +# [os_glance_staging_store]/filesystem_store_datadir for multistore +# configuration. +# +# This option is scheduled to be removed early in the 'U' development +# cycle. #node_staging_uri = file:///tmp/staging/ # @@ -2112,16 +2129,6 @@ # Deprecated group/name - [sql]/idle_timeout #connection_recycle_time = 3600 -# DEPRECATED: 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 -# This option is deprecated for removal. -# Its value may be silently ignored in the future. -# Reason: The option to set the minimum pool size is not supported by -# sqlalchemy. -#min_pool_size = 1 - # Maximum number of SQL connections to keep open in a pool. Setting a value of 0 # indicates no limit. (integer value) # Deprecated group/name - [DEFAULT]/sql_max_pool_size @@ -2461,12 +2468,19 @@ # # Ceph configuration file path. # -# This configuration option takes in the path to the Ceph configuration +# This configuration option specifies the path to the Ceph configuration # file to be used. If the value for this option is not set by the user -# or is set to None, librados will locate the default configuration file -# which is located at /etc/ceph/ceph.conf. If using Cephx -# authentication, this file should include a reference to the right -# keyring in a client. section +# or is set to the empty string, librados will read the standard ceph.conf +# file by searching the default Ceph configuration file locations in +# sequential order. See the Ceph documentation for details. +# +# NOTE: If using Cephx authentication, this file should include a reference +# to the right keyring in a client. section +# +# NOTE 2: If you leave this option empty (the default), the actual Ceph +# configuration file used may change depending on what version of librados +# is being used. If it is important for you to know exactly which configuration +# file is in effect, you may specify that file here using this option. # # Possible Values: # * A valid path to a configuration file @@ -2475,7 +2489,7 @@ # * rbd_store_user # # (string value) -#rbd_store_ceph_conf = /etc/ceph/ceph.conf +#rbd_store_ceph_conf = # # Timeout value for connecting to Ceph cluster. @@ -2503,7 +2517,7 @@ # From glance.multi_store # -# +# DEPRECATED: # Chunk size for images to be stored in Sheepdog data store. # # Provide an integer value representing the size in mebibyte @@ -2525,9 +2539,15 @@ # # (integer value) # Minimum value: 1 +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. #sheepdog_store_chunk_size = 64 -# +# DEPRECATED: # Port number on which the sheep daemon will listen. # # Provide an integer value representing a valid port number on @@ -2549,9 +2569,15 @@ # (port value) # Minimum value: 0 # Maximum value: 65535 +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. #sheepdog_store_port = 7000 -# +# DEPRECATED: # Address to bind the Sheepdog daemon to. # # Provide a string value representing the address to bind the @@ -2573,6 +2599,12 @@ # * sheepdog_store_port # # (host address value) +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. #sheepdog_store_address = 127.0.0.1 @@ -3337,10 +3369,18 @@ # # -# The default scheme to use for storing images. +# The store identifier for the default backend in which data will be +# stored. # -# Provide a string value representing the default scheme to use for -# storing images. If not set, Glance API service will fail to start. +# The value must be defined as one of the keys in the dict defined +# by the ``enabled_backends`` configuration option in the DEFAULT +# configuration group. +# +# If a value is not defined for this option: +# +# * the consuming service may refuse to start +# * store_add calls that do not specify a specific backend will +# raise a ``glance_store.exceptions.UnknownScheme`` exception # # Related Options: # * enabled_backends @@ -3348,55 +3388,6 @@ # (string value) #default_backend = -# DEPRECATED: -# Minimum interval in seconds to execute updating dynamic storage -# capabilities based on current backend status. -# -# Provide an integer value representing time in seconds to set the -# minimum interval before an update of dynamic storage capabilities -# for a storage backend can be attempted. Setting -# ``store_capabilities_update_min_interval`` does not mean updates -# occur periodically based on the set interval. Rather, the update -# is performed at the elapse of this interval set, if an operation -# of the store is triggered. -# -# By default, this option is set to zero and is disabled. Provide an -# integer value greater than zero to enable this option. -# -# NOTE 1: For more information on store capabilities and their updates, -# please visit: https://specs.openstack.org/openstack/glance- -# specs/specs/kilo/store-capabilities.html -# -# For more information on setting up a particular store in your -# deployment and help with the usage of this feature, please contact -# the storage driver maintainers listed here: -# https://docs.openstack.org/glance_store/latest/user/drivers.html -# -# NOTE 2: The dynamic store update capability described above is not -# implemented by any current store drivers. Thus, this option DOES -# NOT DO ANYTHING (and it never has). It is DEPRECATED and scheduled -# for removal early in the Stein development cycle. -# -# Possible values: -# * Zero -# * Positive integer -# -# Related Options: -# * None -# -# (integer value) -# Minimum value: 0 -# This option is deprecated for removal since Rocky. -# Its value may be silently ignored in the future. -# Reason: -# This option configures a stub method that has not been implemented -# for any existing store drivers. Hence it is non-operational, and -# giving it a value does absolutely nothing. -# -# This option is scheduled for removal early in the Stein development -# cycle. -#store_capabilities_update_min_interval = 0 - # # From glance.store # @@ -3429,7 +3420,7 @@ # ``enabled_backends`` which helps to configure multiple backend stores # of different schemes. # -# This option is scheduled for removal in the Train development +# This option is scheduled for removal in the U development # cycle. #stores = file,http @@ -3482,59 +3473,10 @@ # ``default_backend`` which acts similar to ``default_store`` config # option. # -# This option is scheduled for removal in the Train development +# This option is scheduled for removal in the U development # cycle. #default_store = file -# DEPRECATED: -# Minimum interval in seconds to execute updating dynamic storage -# capabilities based on current backend status. -# -# Provide an integer value representing time in seconds to set the -# minimum interval before an update of dynamic storage capabilities -# for a storage backend can be attempted. Setting -# ``store_capabilities_update_min_interval`` does not mean updates -# occur periodically based on the set interval. Rather, the update -# is performed at the elapse of this interval set, if an operation -# of the store is triggered. -# -# By default, this option is set to zero and is disabled. Provide an -# integer value greater than zero to enable this option. -# -# NOTE 1: For more information on store capabilities and their updates, -# please visit: https://specs.openstack.org/openstack/glance- -# specs/specs/kilo/store-capabilities.html -# -# For more information on setting up a particular store in your -# deployment and help with the usage of this feature, please contact -# the storage driver maintainers listed here: -# https://docs.openstack.org/glance_store/latest/user/drivers.html -# -# NOTE 2: The dynamic store update capability described above is not -# implemented by any current store drivers. Thus, this option DOES -# NOT DO ANYTHING (and it never has). It is DEPRECATED and scheduled -# for removal early in the Stein development cycle. -# -# Possible values: -# * Zero -# * Positive integer -# -# Related Options: -# * None -# -# (integer value) -# Minimum value: 0 -# This option is deprecated for removal since Rocky. -# Its value may be silently ignored in the future. -# Reason: -# This option configures a stub method that has not been implemented -# for any existing store drivers. Hence it is non-operational, and -# giving it a value does absolutely nothing. -# -# This option is scheduled for removal early in the Stein development -# cycle. -#store_capabilities_update_min_interval = 0 - # # Information to match when looking for cinder in the service catalog. # @@ -4042,12 +3984,19 @@ # # Ceph configuration file path. # -# This configuration option takes in the path to the Ceph configuration +# This configuration option specifies the path to the Ceph configuration # file to be used. If the value for this option is not set by the user -# or is set to None, librados will locate the default configuration file -# which is located at /etc/ceph/ceph.conf. If using Cephx -# authentication, this file should include a reference to the right -# keyring in a client. section +# or is set to the empty string, librados will read the standard ceph.conf +# file by searching the default Ceph configuration file locations in +# sequential order. See the Ceph documentation for details. +# +# NOTE: If using Cephx authentication, this file should include a reference +# to the right keyring in a client. section +# +# NOTE 2: If you leave this option empty (the default), the actual Ceph +# configuration file used may change depending on what version of librados +# is being used. If it is important for you to know exactly which configuration +# file is in effect, you may specify that file here using this option. # # Possible Values: # * A valid path to a configuration file @@ -4056,7 +4005,7 @@ # * rbd_store_user # # (string value) -#rbd_store_ceph_conf = /etc/ceph/ceph.conf +#rbd_store_ceph_conf = # # Timeout value for connecting to Ceph cluster. @@ -4077,7 +4026,7 @@ # (integer value) #rados_connect_timeout = 0 -# +# DEPRECATED: # Chunk size for images to be stored in Sheepdog data store. # # Provide an integer value representing the size in mebibyte @@ -4099,9 +4048,15 @@ # # (integer value) # Minimum value: 1 +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. #sheepdog_store_chunk_size = 64 -# +# DEPRECATED: # Port number on which the sheep daemon will listen. # # Provide an integer value representing a valid port number on @@ -4123,9 +4078,15 @@ # (port value) # Minimum value: 0 # Maximum value: 65535 +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. #sheepdog_store_port = 7000 -# +# DEPRECATED: # Address to bind the Sheepdog daemon to. # # Provide a string value representing the address to bind the @@ -4147,6 +4108,12 @@ # * sheepdog_store_port # # (host address value) +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. #sheepdog_store_address = 127.0.0.1 # @@ -4898,7 +4865,7 @@ # Supported values for the 'container_format' image attribute (list value) # Deprecated group/name - [DEFAULT]/container_formats -#container_formats = ami,ari,aki,bare,ovf,ova,docker +#container_formats = ami,ari,aki,bare,ovf,ova,docker,compressed # Supported values for the 'disk_format' image attribute (list value) # Deprecated group/name - [DEFAULT]/disk_formats @@ -4936,9 +4903,13 @@ # will be removed in the S release. #auth_uri = -# API version of the admin Identity API endpoint. (string value) +# API version of the Identity API endpoint. (string value) #auth_version = +# Interface to use for the Identity API endpoint. Valid values are "public", +# "internal" or "admin"(default). (string value) +#interface = admin + # Do not handle authorization requests within the middleware, but delegate the # authorization decision to downstream WSGI components. (boolean value) #delay_auth_decision = false @@ -4973,14 +4944,6 @@ # The region in which the identity server can be found. (string value) #region_name = -# DEPRECATED: Directory used to cache files related to PKI tokens. This option -# has been deprecated in the Ocata release and will be removed in the P release. -# (string value) -# This option is deprecated for removal since Ocata. -# Its value may be silently ignored in the future. -# Reason: PKI token format is no longer supported. -#signing_dir = - # Optionally specify a list of memcached server(s) to use for caching. If left # undefined, tokens will instead be cached in-process. (list value) # Deprecated group/name - [keystone_authtoken]/memcache_servers @@ -5044,19 +5007,6 @@ # value) #enforce_token_bind = permissive -# DEPRECATED: Hash algorithms to use for hashing PKI tokens. This may be a -# single algorithm or multiple. The algorithms are those supported by Python -# standard hashlib.new(). The hashes will be tried in the order given, so put -# the preferred one first for performance. The result of the first hash will be -# stored in the cache. This will typically be set to multiple values only while -# migrating from a less secure algorithm to a more secure one. Once all the old -# tokens are expired this option should be set to a single value for better -# performance. (list value) -# This option is deprecated for removal since Ocata. -# Its value may be silently ignored in the future. -# Reason: PKI token format is no longer supported. -#hash_algorithms = md5 - # A choice of roles that must be present in a service token. Service tokens are # allowed to request that an expired token can be used and so this check should # tightly control that only actual services should be sending this token. Roles @@ -5071,6 +5021,10 @@ # (boolean value) #service_token_roles_required = false +# The name or type of the service as it appears in the service catalog. This is +# used to validate tokens that have restricted access rules. (string value) +#service_type = + # Authentication type to load (string value) # Deprecated group/name - [keystone_authtoken]/auth_plugin #auth_type = @@ -5079,6 +5033,326 @@ #auth_section = +[os_glance_staging_store] +# +# This is the configuration block for a store reserved for Glance's +# internal use. +# +# When the Glance multistore feature is in use, as indicated by the +# configuration option ``[DEFAULT]/enabled_backends`` having been +# configured, you must configure a *filesystem store* as the "staging +# area" for the interoperable image import process. Please see the +# Glance Train release notes and the "Multi Store Support" chapter of +# the Glance Administration Guide for more information. +# +# NOTE: Configuring this store replaces the use of the old +# ``[DEFAULT]/node_staging_uri`` option. Keep in mind, however, that the +# reserved store you configure in this section of the configuration file +# is *ignored* unless the Glance multistore feature is configured. +# +# Related Options: +# +# * [DEFAULT]/enabled_backends - NOTE: ``enabled_backends`` must have +# a value (that's how the multistore feature is enabled), but the +# list of backends must NOT include this reserved store +# + +# +# From glance.reserved_stores +# + +# +# Absolute path to the work directory to use as the staging area +# for the interoperable image import process. +# +# NOTE: When providing a value for this option, please make sure +# that enough space is provided for concurrent user image import operations. +# A rough estimation can be done by multiplying the expected number of +# concurrent image imports with an average image size (e.g 500MB). (A +# worst case scenario for concurrent uploads would be ``[DEFAULT]/workers``, +# in which every available API thread is satisfying a PUT request to the +# staging area.) The size estimation should be done based on the average +# size image in your deployment. +# +# Possible values: +# +# * String value representing the absolute path to a directory +# to be used by a filesystem store +# * This value MUST be different from the value used for the +# ``[os_glance_tasks_store]/filesystem_store_datadir`` option +# +# Related Options: +# +# * [os_glance_tasks_store]/filesystem_store_datadir +# +# (string value) +# +# This option has a sample default set, which means that +# its actual default value may vary from the one documented +# below. +#filesystem_store_datadir = /var/lib/glance/staging/ + +# +# List of directories and their priorities to which the filesystem +# backend store writes images. +# +# The filesystem store can be configured to store images in multiple +# directories as opposed to using a single directory specified by the +# ``filesystem_store_datadir`` configuration option. When using +# multiple directories, each directory can be given an optional +# priority to specify the preference order in which they should +# be used. Priority is an integer that is concatenated to the +# directory path with a colon where a higher value indicates higher +# priority. When two directories have the same priority, the directory +# with most free space is used. When no priority is specified, it +# defaults to zero. +# +# More information on configuring filesystem store with multiple store +# directories can be found at +# https://docs.openstack.org/glance/latest/configuration/configuring.html +# +# NOTE: This directory is used only when filesystem store is used as a +# storage backend. Either ``filesystem_store_datadir`` or +# ``filesystem_store_datadirs`` option must be specified in +# ``glance-api.conf``. If both options are specified, a +# ``BadStoreConfiguration`` will be raised and the filesystem store +# may not be available for adding new images. +# +# Possible values: +# * List of strings of the following form: +# * ``:`` +# +# Related options: +# * ``filesystem_store_datadir`` +# * ``filesystem_store_file_perm`` +# +# (multi valued) +#filesystem_store_datadirs = + +# +# Filesystem store metadata file. +# +# The path to a file which contains the metadata to be returned with +# any location associated with the filesystem store. The file must +# contain a valid JSON object. The object should contain the keys +# ``id`` and ``mountpoint``. The value for both keys should be a +# string. +# +# Possible values: +# * A valid path to the store metadata file +# +# Related options: +# * None +# +# (string value) +#filesystem_store_metadata_file = + +# +# File access permissions for the image files. +# +# Set the intended file access permissions for image data. This provides +# a way to enable other services, e.g. Nova, to consume images directly +# from the filesystem store. The users running the services that are +# intended to be given access to could be made a member of the group +# that owns the files created. Assigning a value less then or equal to +# zero for this configuration option signifies that no changes be made +# to the default permissions. This value will be decoded as an octal +# digit. +# +# For more information, please refer the documentation at +# https://docs.openstack.org/glance/latest/configuration/configuring.html +# +# Possible values: +# * A valid file access permission +# * Zero +# * Any negative integer +# +# Related options: +# * None +# +# (integer value) +#filesystem_store_file_perm = 0 + +# +# Chunk size, in bytes. +# +# The chunk size used when reading or writing image files. Raising this value +# may improve the throughput but it may also slightly increase the memory usage +# when handling a large number of requests. +# +# Possible Values: +# * Any positive integer value +# +# Related options: +# * None +# +# (integer value) +# Minimum value: 1 +#filesystem_store_chunk_size = 65536 + + +[os_glance_tasks_store] +# +# This is the configuration block for a store reserved for Glance's +# internal use. +# +# When the Glance multistore feature is in use, as indicated by the +# configuration option ``[DEFAULT]/enabled_backends`` having been +# configured, you must configure a *filesystem store* for the use of +# the tasks engine. Please see the Glance Train release notes +# and the "Multi Store Support" chapter of the Glance Administration +# Guide for more information. +# +# NOTE: Configuring this store replaces the use of the old +# ``[tasks]/work_dir`` option. Keep in mind, however, that +# the reserved store you configure in this section of the configuration +# file is *ignored* unless the Glance multistore feature is configured. +# +# Related Options: +# +# * [DEFAULT]/enabled_backends - NOTE: ``enabled_backends`` must have +# a value (that's how the multistore feature is enabled), but the +# list of backends must NOT include this reserved store +# + +# +# From glance.reserved_stores +# + +# +# Absolute path to the work directory to use for asynchronous +# task operations. +# +# NOTE: When providing a value for this option, please make sure +# that enough space is provided for concurrent tasks to run +# efficiently without running out of space. +# +# A rough estimation can be done by multiplying the number of +# ``[taskflow_executor]/max_workers`` with an average image size +# (e.g 500MB). The image size estimation should be done based on +# the average size in your deployment. Note that depending on the +# tasks running you may need to multiply this number by some factor +# depending on what the task does. For example, you may want to double +# the available size if image conversion is enabled. All this being said, +# remember these are just estimations and you should do them based on +# the worst case scenario and be prepared to act in case they were wrong. +# +# Possible values: +# * String value representing the absolute path to a directory +# to be used by a filesystem store +# * This value MUST be different from the value used for the +# ``[os_glance_staging_store]/filesystem_store_datadir`` option +# +# Related Options: +# * [taskflow_executor]/max_workers +# * [os_glance_staging_store]/filesystem_store_datadir +# +# (string value) +# +# This option has a sample default set, which means that +# its actual default value may vary from the one documented +# below. +#filesystem_store_datadir = /var/lib/glance/tasks_work_dir/ + +# +# List of directories and their priorities to which the filesystem +# backend store writes images. +# +# The filesystem store can be configured to store images in multiple +# directories as opposed to using a single directory specified by the +# ``filesystem_store_datadir`` configuration option. When using +# multiple directories, each directory can be given an optional +# priority to specify the preference order in which they should +# be used. Priority is an integer that is concatenated to the +# directory path with a colon where a higher value indicates higher +# priority. When two directories have the same priority, the directory +# with most free space is used. When no priority is specified, it +# defaults to zero. +# +# More information on configuring filesystem store with multiple store +# directories can be found at +# https://docs.openstack.org/glance/latest/configuration/configuring.html +# +# NOTE: This directory is used only when filesystem store is used as a +# storage backend. Either ``filesystem_store_datadir`` or +# ``filesystem_store_datadirs`` option must be specified in +# ``glance-api.conf``. If both options are specified, a +# ``BadStoreConfiguration`` will be raised and the filesystem store +# may not be available for adding new images. +# +# Possible values: +# * List of strings of the following form: +# * ``:`` +# +# Related options: +# * ``filesystem_store_datadir`` +# * ``filesystem_store_file_perm`` +# +# (multi valued) +#filesystem_store_datadirs = + +# +# Filesystem store metadata file. +# +# The path to a file which contains the metadata to be returned with +# any location associated with the filesystem store. The file must +# contain a valid JSON object. The object should contain the keys +# ``id`` and ``mountpoint``. The value for both keys should be a +# string. +# +# Possible values: +# * A valid path to the store metadata file +# +# Related options: +# * None +# +# (string value) +#filesystem_store_metadata_file = + +# +# File access permissions for the image files. +# +# Set the intended file access permissions for image data. This provides +# a way to enable other services, e.g. Nova, to consume images directly +# from the filesystem store. The users running the services that are +# intended to be given access to could be made a member of the group +# that owns the files created. Assigning a value less then or equal to +# zero for this configuration option signifies that no changes be made +# to the default permissions. This value will be decoded as an octal +# digit. +# +# For more information, please refer the documentation at +# https://docs.openstack.org/glance/latest/configuration/configuring.html +# +# Possible values: +# * A valid file access permission +# * Zero +# * Any negative integer +# +# Related options: +# * None +# +# (integer value) +#filesystem_store_file_perm = 0 + +# +# Chunk size, in bytes. +# +# The chunk size used when reading or writing image files. Raising this value +# may improve the throughput but it may also slightly increase the memory usage +# when handling a large number of requests. +# +# Possible Values: +# * Any positive integer value +# +# Related options: +# * None +# +# (integer value) +# Minimum value: 1 +#filesystem_store_chunk_size = 65536 + + [oslo_concurrency] # @@ -5322,6 +5596,17 @@ # Size of batch for the producer async send (integer value) #producer_batch_size = 16384 +# The compression codec for all data generated by the producer. If not set, +# compression will not be used. Note that the allowed values of this depend on +# the kafka version (string value) +# Possible values: +# none - +# gzip - +# snappy - +# lz4 - +# zstd - +#compression_codec = none + # Enable asynchronous consumer commits (boolean value) #enable_auto_commit = false @@ -5404,6 +5689,13 @@ # Deprecated group/name - [oslo_messaging_rabbit]/kombu_ssl_ca_certs #ssl_ca_file = +# EXPERIMENTAL: Run the health check heartbeat threadthrough a native python +# thread. By default if thisoption isn't provided the health check heartbeat +# willinherit the execution model from the parent process. Byexample if the +# parent process have monkey patched thestdlib by using eventlet/greenlet then +# the heartbeatwill be run through a green thread. (boolean value) +#heartbeat_in_pthread = false + # How long to wait before reconnecting in response to an AMQP consumer cancel # notification. (floating point value) #kombu_reconnect_delay = 1.0 @@ -5462,14 +5754,18 @@ #rabbit_qos_prefetch_count = 0 # Number of seconds after which the Rabbit broker is considered down if -# heartbeat's keep-alive fails (0 disable the heartbeat). EXPERIMENTAL (integer -# value) +# heartbeat's keep-alive fails (0 disables heartbeat). (integer value) #heartbeat_timeout_threshold = 60 # How often times during the heartbeat_timeout_threshold we check the heartbeat. # (integer value) #heartbeat_rate = 2 +# Enable/Disable the RabbitMQ mandatory flag for direct send. The direct send is +# used as reply,so the MessageUndeliverable exception is raised in case the +# client queue does not exist. (integer value) +#direct_mandatory_flag = True + [oslo_middleware] @@ -5496,7 +5792,9 @@ # scope. (boolean value) #enforce_scope = false -# The file that defines policies. (string value) +# The relative or absolute path of a file that maps roles to permissions for a +# given service. Relative paths must be specified in relation to the +# configuration file setting this option. (string value) #policy_file = policy.json # Default rule. Enforced when a requested rule is not found. (string value) @@ -5779,7 +6077,7 @@ # (string value) #task_executor = taskflow -# +# DEPRECATED: # Absolute path to the work directory to use for asynchronous # task operations. # @@ -5800,14 +6098,30 @@ # are just estimations and you should do them based on the worst # case scenario and be prepared to act in case they were wrong. # +# NOTE: If you are using the Glance multistore feature, you *must* +# use a filesystem store instead of this setting. See the +# ``[os_glance_tasks_store]`` section of this configuration file +# for more information. +# # Possible values: # * String value representing the absolute path to the working # directory # # Related Options: -# * None +# * enabled_backends +# * [os_glance_tasks_store]/filesystem_store_datadir # # (string value) +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# With the introduction of the Glance multistore feature, the way of +# configuring this option has changed. Please refer to +# [os_glance_tasks_store]/filesystem_store_datadir for multistore +# configuration. +# +# This option is scheduled to be removed early in the 'U' development +# cycle. # # This option has a sample default set, which means that # its actual default value may vary from the one documented diff --git a/etc/glance-cache.conf b/etc/glance-cache.conf index 5eb8c550e5..9dce2796ec 100644 --- a/etc/glance-cache.conf +++ b/etc/glance-cache.conf @@ -28,7 +28,7 @@ # (boolean value) #allow_additional_image_properties = true -# " +# # Secure hashing algorithm used for computing the 'os_hash_value' property. # # This option configures the Glance "multihash", which consists of two @@ -475,7 +475,7 @@ # (string value) #digest_algorithm = sha256 -# +# DEPRECATED: # The URL provides location where the temporary data will be stored # # This option is for Glance internal use only. Glance will save the @@ -492,13 +492,30 @@ # NOTE: The staging path must be on shared filesystem available to all # Glance API nodes. # +# NOTE: If you are using the Glance multistore feature, you *must* +# use a filesystem store instead of this setting. See the +# ``[os_glance_staging_store]`` section of this configuration file +# for more information. +# # Possible values: # * String starting with 'file://' followed by absolute FS path # # Related options: # * [task]/work_dir +# * enabled_backends +# * [os_glance_staging_store]/filesystem_store_datadir # # (string value) +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# With the introduction of the Glance multistore feature, the way of +# configuring this option has changed. Please refer to +# [os_glance_staging_store]/filesystem_store_datadir for multistore +# configuration. +# +# This option is scheduled to be removed early in the 'U' development +# cycle. #node_staging_uri = file:///tmp/staging/ # @@ -1148,7 +1165,7 @@ # ``enabled_backends`` which helps to configure multiple backend stores # of different schemes. # -# This option is scheduled for removal in the Train development +# This option is scheduled for removal in the U development # cycle. #stores = file,http @@ -1201,59 +1218,10 @@ # ``default_backend`` which acts similar to ``default_store`` config # option. # -# This option is scheduled for removal in the Train development +# This option is scheduled for removal in the U development # cycle. #default_store = file -# DEPRECATED: -# Minimum interval in seconds to execute updating dynamic storage -# capabilities based on current backend status. -# -# Provide an integer value representing time in seconds to set the -# minimum interval before an update of dynamic storage capabilities -# for a storage backend can be attempted. Setting -# ``store_capabilities_update_min_interval`` does not mean updates -# occur periodically based on the set interval. Rather, the update -# is performed at the elapse of this interval set, if an operation -# of the store is triggered. -# -# By default, this option is set to zero and is disabled. Provide an -# integer value greater than zero to enable this option. -# -# NOTE 1: For more information on store capabilities and their updates, -# please visit: https://specs.openstack.org/openstack/glance- -# specs/specs/kilo/store-capabilities.html -# -# For more information on setting up a particular store in your -# deployment and help with the usage of this feature, please contact -# the storage driver maintainers listed here: -# https://docs.openstack.org/glance_store/latest/user/drivers.html -# -# NOTE 2: The dynamic store update capability described above is not -# implemented by any current store drivers. Thus, this option DOES -# NOT DO ANYTHING (and it never has). It is DEPRECATED and scheduled -# for removal early in the Stein development cycle. -# -# Possible values: -# * Zero -# * Positive integer -# -# Related Options: -# * None -# -# (integer value) -# Minimum value: 0 -# This option is deprecated for removal since Rocky. -# Its value may be silently ignored in the future. -# Reason: -# This option configures a stub method that has not been implemented -# for any existing store drivers. Hence it is non-operational, and -# giving it a value does absolutely nothing. -# -# This option is scheduled for removal early in the Stein development -# cycle. -#store_capabilities_update_min_interval = 0 - # # Information to match when looking for cinder in the service catalog. # @@ -1761,12 +1729,19 @@ # # Ceph configuration file path. # -# This configuration option takes in the path to the Ceph configuration +# This configuration option specifies the path to the Ceph configuration # file to be used. If the value for this option is not set by the user -# or is set to None, librados will locate the default configuration file -# which is located at /etc/ceph/ceph.conf. If using Cephx -# authentication, this file should include a reference to the right -# keyring in a client. section +# or is set to the empty string, librados will read the standard ceph.conf +# file by searching the default Ceph configuration file locations in +# sequential order. See the Ceph documentation for details. +# +# NOTE: If using Cephx authentication, this file should include a reference +# to the right keyring in a client. section +# +# NOTE 2: If you leave this option empty (the default), the actual Ceph +# configuration file used may change depending on what version of librados +# is being used. If it is important for you to know exactly which configuration +# file is in effect, you may specify that file here using this option. # # Possible Values: # * A valid path to a configuration file @@ -1775,7 +1750,7 @@ # * rbd_store_user # # (string value) -#rbd_store_ceph_conf = /etc/ceph/ceph.conf +#rbd_store_ceph_conf = # # Timeout value for connecting to Ceph cluster. @@ -1796,7 +1771,7 @@ # (integer value) #rados_connect_timeout = 0 -# +# DEPRECATED: # Chunk size for images to be stored in Sheepdog data store. # # Provide an integer value representing the size in mebibyte @@ -1818,9 +1793,15 @@ # # (integer value) # Minimum value: 1 +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. #sheepdog_store_chunk_size = 64 -# +# DEPRECATED: # Port number on which the sheep daemon will listen. # # Provide an integer value representing a valid port number on @@ -1842,9 +1823,15 @@ # (port value) # Minimum value: 0 # Maximum value: 65535 +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. #sheepdog_store_port = 7000 -# +# DEPRECATED: # Address to bind the Sheepdog daemon to. # # Provide a string value representing the address to bind the @@ -1866,6 +1853,12 @@ # * sheepdog_store_port # # (host address value) +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. #sheepdog_store_address = 127.0.0.1 # @@ -2623,7 +2616,9 @@ # scope. (boolean value) #enforce_scope = false -# The file that defines policies. (string value) +# The relative or absolute path of a file that maps roles to permissions for a +# given service. Relative paths must be specified in relation to the +# configuration file setting this option. (string value) #policy_file = policy.json # Default rule. Enforced when a requested rule is not found. (string value) diff --git a/etc/glance-manage.conf b/etc/glance-manage.conf index 79c5ac7a80..985fe95812 100644 --- a/etc/glance-manage.conf +++ b/etc/glance-manage.conf @@ -192,16 +192,6 @@ # Deprecated group/name - [sql]/idle_timeout #connection_recycle_time = 3600 -# DEPRECATED: 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 -# This option is deprecated for removal. -# Its value may be silently ignored in the future. -# Reason: The option to set the minimum pool size is not supported by -# sqlalchemy. -#min_pool_size = 1 - # Maximum number of SQL connections to keep open in a pool. Setting a value of 0 # indicates no limit. (integer value) # Deprecated group/name - [DEFAULT]/sql_max_pool_size diff --git a/etc/glance-registry.conf b/etc/glance-registry.conf index 63ec0dfe2b..9f87881598 100644 --- a/etc/glance-registry.conf +++ b/etc/glance-registry.conf @@ -111,7 +111,7 @@ # (boolean value) #allow_additional_image_properties = true -# " +# # Secure hashing algorithm used for computing the 'os_hash_value' property. # # This option configures the Glance "multihash", which consists of two @@ -558,7 +558,7 @@ # (string value) #digest_algorithm = sha256 -# +# DEPRECATED: # The URL provides location where the temporary data will be stored # # This option is for Glance internal use only. Glance will save the @@ -575,13 +575,30 @@ # NOTE: The staging path must be on shared filesystem available to all # Glance API nodes. # +# NOTE: If you are using the Glance multistore feature, you *must* +# use a filesystem store instead of this setting. See the +# ``[os_glance_staging_store]`` section of this configuration file +# for more information. +# # Possible values: # * String starting with 'file://' followed by absolute FS path # # Related options: # * [task]/work_dir +# * enabled_backends +# * [os_glance_staging_store]/filesystem_store_datadir # # (string value) +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# With the introduction of the Glance multistore feature, the way of +# configuring this option has changed. Please refer to +# [os_glance_staging_store]/filesystem_store_datadir for multistore +# configuration. +# +# This option is scheduled to be removed early in the 'U' development +# cycle. #node_staging_uri = file:///tmp/staging/ # @@ -1077,16 +1094,6 @@ # Deprecated group/name - [sql]/idle_timeout #connection_recycle_time = 3600 -# DEPRECATED: 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 -# This option is deprecated for removal. -# Its value may be silently ignored in the future. -# Reason: The option to set the minimum pool size is not supported by -# sqlalchemy. -#min_pool_size = 1 - # Maximum number of SQL connections to keep open in a pool. Setting a value of 0 # indicates no limit. (integer value) # Deprecated group/name - [DEFAULT]/sql_max_pool_size @@ -1188,9 +1195,13 @@ # will be removed in the S release. #auth_uri = -# API version of the admin Identity API endpoint. (string value) +# API version of the Identity API endpoint. (string value) #auth_version = +# Interface to use for the Identity API endpoint. Valid values are "public", +# "internal" or "admin"(default). (string value) +#interface = admin + # Do not handle authorization requests within the middleware, but delegate the # authorization decision to downstream WSGI components. (boolean value) #delay_auth_decision = false @@ -1225,14 +1236,6 @@ # The region in which the identity server can be found. (string value) #region_name = -# DEPRECATED: Directory used to cache files related to PKI tokens. This option -# has been deprecated in the Ocata release and will be removed in the P release. -# (string value) -# This option is deprecated for removal since Ocata. -# Its value may be silently ignored in the future. -# Reason: PKI token format is no longer supported. -#signing_dir = - # Optionally specify a list of memcached server(s) to use for caching. If left # undefined, tokens will instead be cached in-process. (list value) # Deprecated group/name - [keystone_authtoken]/memcache_servers @@ -1296,19 +1299,6 @@ # value) #enforce_token_bind = permissive -# DEPRECATED: Hash algorithms to use for hashing PKI tokens. This may be a -# single algorithm or multiple. The algorithms are those supported by Python -# standard hashlib.new(). The hashes will be tried in the order given, so put -# the preferred one first for performance. The result of the first hash will be -# stored in the cache. This will typically be set to multiple values only while -# migrating from a less secure algorithm to a more secure one. Once all the old -# tokens are expired this option should be set to a single value for better -# performance. (list value) -# This option is deprecated for removal since Ocata. -# Its value may be silently ignored in the future. -# Reason: PKI token format is no longer supported. -#hash_algorithms = md5 - # A choice of roles that must be present in a service token. Service tokens are # allowed to request that an expired token can be used and so this check should # tightly control that only actual services should be sending this token. Roles @@ -1323,6 +1313,10 @@ # (boolean value) #service_token_roles_required = false +# The name or type of the service as it appears in the service catalog. This is +# used to validate tokens that have restricted access rules. (string value) +#service_type = + # Authentication type to load (string value) # Deprecated group/name - [keystone_authtoken]/auth_plugin #auth_type = @@ -1558,6 +1552,17 @@ # Size of batch for the producer async send (integer value) #producer_batch_size = 16384 +# The compression codec for all data generated by the producer. If not set, +# compression will not be used. Note that the allowed values of this depend on +# the kafka version (string value) +# Possible values: +# none - +# gzip - +# snappy - +# lz4 - +# zstd - +#compression_codec = none + # Enable asynchronous consumer commits (boolean value) #enable_auto_commit = false @@ -1640,6 +1645,13 @@ # Deprecated group/name - [oslo_messaging_rabbit]/kombu_ssl_ca_certs #ssl_ca_file = +# EXPERIMENTAL: Run the health check heartbeat threadthrough a native python +# thread. By default if thisoption isn't provided the health check heartbeat +# willinherit the execution model from the parent process. Byexample if the +# parent process have monkey patched thestdlib by using eventlet/greenlet then +# the heartbeatwill be run through a green thread. (boolean value) +#heartbeat_in_pthread = false + # How long to wait before reconnecting in response to an AMQP consumer cancel # notification. (floating point value) #kombu_reconnect_delay = 1.0 @@ -1698,14 +1710,18 @@ #rabbit_qos_prefetch_count = 0 # Number of seconds after which the Rabbit broker is considered down if -# heartbeat's keep-alive fails (0 disable the heartbeat). EXPERIMENTAL (integer -# value) +# heartbeat's keep-alive fails (0 disables heartbeat). (integer value) #heartbeat_timeout_threshold = 60 # How often times during the heartbeat_timeout_threshold we check the heartbeat. # (integer value) #heartbeat_rate = 2 +# Enable/Disable the RabbitMQ mandatory flag for direct send. The direct send is +# used as reply,so the MessageUndeliverable exception is raised in case the +# client queue does not exist. (integer value) +#direct_mandatory_flag = True + [oslo_policy] @@ -1721,7 +1737,9 @@ # scope. (boolean value) #enforce_scope = false -# The file that defines policies. (string value) +# The relative or absolute path of a file that maps roles to permissions for a +# given service. Relative paths must be specified in relation to the +# configuration file setting this option. (string value) #policy_file = policy.json # Default rule. Enforced when a requested rule is not found. (string value) diff --git a/etc/glance-scrubber.conf b/etc/glance-scrubber.conf index 7b1c9fa55c..e92fe027c7 100644 --- a/etc/glance-scrubber.conf +++ b/etc/glance-scrubber.conf @@ -28,7 +28,7 @@ # (boolean value) #allow_additional_image_properties = true -# " +# # Secure hashing algorithm used for computing the 'os_hash_value' property. # # This option configures the Glance "multihash", which consists of two @@ -475,7 +475,7 @@ # (string value) #digest_algorithm = sha256 -# +# DEPRECATED: # The URL provides location where the temporary data will be stored # # This option is for Glance internal use only. Glance will save the @@ -492,13 +492,30 @@ # NOTE: The staging path must be on shared filesystem available to all # Glance API nodes. # +# NOTE: If you are using the Glance multistore feature, you *must* +# use a filesystem store instead of this setting. See the +# ``[os_glance_staging_store]`` section of this configuration file +# for more information. +# # Possible values: # * String starting with 'file://' followed by absolute FS path # # Related options: # * [task]/work_dir +# * enabled_backends +# * [os_glance_staging_store]/filesystem_store_datadir # # (string value) +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# With the introduction of the Glance multistore feature, the way of +# configuring this option has changed. Please refer to +# [os_glance_staging_store]/filesystem_store_datadir for multistore +# configuration. +# +# This option is scheduled to be removed early in the 'U' development +# cycle. #node_staging_uri = file:///tmp/staging/ # @@ -793,6 +810,271 @@ #fatal_deprecations = false +[cinder] + +# +# From glance.multi_store +# + +# +# Information to match when looking for cinder in the service catalog. +# +# When the ``cinder_endpoint_template`` is not set and any of +# ``cinder_store_auth_address``, ``cinder_store_user_name``, +# ``cinder_store_project_name``, ``cinder_store_password`` is not set, +# cinder store uses this information to lookup cinder endpoint from the service +# catalog in the current context. ``cinder_os_region_name``, if set, is taken +# into consideration to fetch the appropriate endpoint. +# +# The service catalog can be listed by the ``openstack catalog list`` command. +# +# Possible values: +# * A string of of the following form: +# ``::`` +# At least ``service_type`` and ``interface`` should be specified. +# ``service_name`` can be omitted. +# +# Related options: +# * cinder_os_region_name +# * cinder_endpoint_template +# * cinder_store_auth_address +# * cinder_store_user_name +# * cinder_store_project_name +# * cinder_store_password +# +# (string value) +#cinder_catalog_info = volumev2::publicURL + +# +# Override service catalog lookup with template for cinder endpoint. +# +# When this option is set, this value is used to generate cinder endpoint, +# instead of looking up from the service catalog. +# This value is ignored if ``cinder_store_auth_address``, +# ``cinder_store_user_name``, ``cinder_store_project_name``, and +# ``cinder_store_password`` are specified. +# +# If this configuration option is set, ``cinder_catalog_info`` will be ignored. +# +# Possible values: +# * URL template string for cinder endpoint, where ``%%(tenant)s`` is +# replaced with the current tenant (project) name. +# For example: ``http://cinder.openstack.example.org/v2/%%(tenant)s`` +# +# Related options: +# * cinder_store_auth_address +# * cinder_store_user_name +# * cinder_store_project_name +# * cinder_store_password +# * cinder_catalog_info +# +# (string value) +#cinder_endpoint_template = + +# +# Region name to lookup cinder service from the service catalog. +# +# This is used only when ``cinder_catalog_info`` is used for determining the +# endpoint. If set, the lookup for cinder endpoint by this node is filtered to +# the specified region. It is useful when multiple regions are listed in the +# catalog. If this is not set, the endpoint is looked up from every region. +# +# Possible values: +# * A string that is a valid region name. +# +# Related options: +# * cinder_catalog_info +# +# (string value) +# Deprecated group/name - [cinder]/os_region_name +#cinder_os_region_name = + +# +# Location of a CA certificates file used for cinder client requests. +# +# The specified CA certificates file, if set, is used to verify cinder +# connections via HTTPS endpoint. If the endpoint is HTTP, this value is +# ignored. +# ``cinder_api_insecure`` must be set to ``True`` to enable the verification. +# +# Possible values: +# * Path to a ca certificates file +# +# Related options: +# * cinder_api_insecure +# +# (string value) +#cinder_ca_certificates_file = + +# +# Number of cinderclient retries on failed http calls. +# +# When a call failed by any errors, cinderclient will retry the call up to the +# specified times after sleeping a few seconds. +# +# Possible values: +# * A positive integer +# +# Related options: +# * None +# +# (integer value) +# Minimum value: 0 +#cinder_http_retries = 3 + +# +# Time period, in seconds, to wait for a cinder volume transition to +# complete. +# +# When the cinder volume is created, deleted, or attached to the glance node to +# read/write the volume data, the volume's state is changed. For example, the +# newly created volume status changes from ``creating`` to ``available`` after +# the creation process is completed. This specifies the maximum time to wait for +# the status change. If a timeout occurs while waiting, or the status is changed +# to an unexpected value (e.g. `error``), the image creation fails. +# +# Possible values: +# * A positive integer +# +# Related options: +# * None +# +# (integer value) +# Minimum value: 0 +#cinder_state_transition_timeout = 300 + +# +# Allow to perform insecure SSL requests to cinder. +# +# If this option is set to True, HTTPS endpoint connection is verified using the +# CA certificates file specified by ``cinder_ca_certificates_file`` option. +# +# Possible values: +# * True +# * False +# +# Related options: +# * cinder_ca_certificates_file +# +# (boolean value) +#cinder_api_insecure = false + +# +# The address where the cinder authentication service is listening. +# +# When all of ``cinder_store_auth_address``, ``cinder_store_user_name``, +# ``cinder_store_project_name``, and ``cinder_store_password`` options are +# specified, the specified values are always used for the authentication. +# This is useful to hide the image volumes from users by storing them in a +# project/tenant specific to the image service. It also enables users to share +# the image volume among other projects under the control of glance's ACL. +# +# If either of these options are not set, the cinder endpoint is looked up +# from the service catalog, and current context's user and project are used. +# +# Possible values: +# * A valid authentication service address, for example: +# ``http://openstack.example.org/identity/v2.0`` +# +# Related options: +# * cinder_store_user_name +# * cinder_store_password +# * cinder_store_project_name +# +# (string value) +#cinder_store_auth_address = + +# +# User name to authenticate against cinder. +# +# This must be used with all the following related options. If any of these are +# not specified, the user of the current context is used. +# +# Possible values: +# * A valid user name +# +# Related options: +# * cinder_store_auth_address +# * cinder_store_password +# * cinder_store_project_name +# +# (string value) +#cinder_store_user_name = + +# +# Password for the user authenticating against cinder. +# +# This must be used with all the following related options. If any of these are +# not specified, the user of the current context is used. +# +# Possible values: +# * A valid password for the user specified by ``cinder_store_user_name`` +# +# Related options: +# * cinder_store_auth_address +# * cinder_store_user_name +# * cinder_store_project_name +# +# (string value) +#cinder_store_password = + +# +# Project name where the image volume is stored in cinder. +# +# If this configuration option is not set, the project in current context is +# used. +# +# This must be used with all the following related options. If any of these are +# not specified, the project of the current context is used. +# +# Possible values: +# * A valid project name +# +# Related options: +# * ``cinder_store_auth_address`` +# * ``cinder_store_user_name`` +# * ``cinder_store_password`` +# +# (string value) +#cinder_store_project_name = + +# +# Path to the rootwrap configuration file to use for running commands as root. +# +# The cinder store requires root privileges to operate the image volumes (for +# connecting to iSCSI/FC volumes and reading/writing the volume data, etc.). +# The configuration file should allow the required commands by cinder store and +# os-brick library. +# +# Possible values: +# * Path to the rootwrap config file +# +# Related options: +# * None +# +# (string value) +#rootwrap_config = /etc/glance/rootwrap.conf + +# +# Volume type that will be used for volume creation in cinder. +# +# Some cinder backends can have several volume types to optimize storage usage. +# Adding this option allows an operator to choose a specific volume type +# in cinder that can be optimized for images. +# +# If this is not set, then the default volume type specified in the cinder +# configuration will be used for volume creation. +# +# Possible values: +# * A valid volume type from cinder +# +# Related options: +# * None +# +# (string value) +#cinder_volume_type = + + [database] # @@ -837,16 +1119,6 @@ # Deprecated group/name - [sql]/idle_timeout #connection_recycle_time = 3600 -# DEPRECATED: 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 -# This option is deprecated for removal. -# Its value may be silently ignored in the future. -# Reason: The option to set the minimum pool size is not supported by -# sqlalchemy. -#min_pool_size = 1 - # Maximum number of SQL connections to keep open in a pool. Setting a value of 0 # indicates no limit. (integer value) # Deprecated group/name - [DEFAULT]/sql_max_pool_size @@ -917,8 +1189,1195 @@ #use_tpool = false +[file] + +# +# From glance.multi_store +# + +# +# Directory to which the filesystem backend store writes images. +# +# Upon start up, Glance creates the directory if it doesn't already +# exist and verifies write access to the user under which +# ``glance-api`` runs. If the write access isn't available, a +# ``BadStoreConfiguration`` exception is raised and the filesystem +# store may not be available for adding new images. +# +# NOTE: This directory is used only when filesystem store is used as a +# storage backend. Either ``filesystem_store_datadir`` or +# ``filesystem_store_datadirs`` option must be specified in +# ``glance-api.conf``. If both options are specified, a +# ``BadStoreConfiguration`` will be raised and the filesystem store +# may not be available for adding new images. +# +# Possible values: +# * A valid path to a directory +# +# Related options: +# * ``filesystem_store_datadirs`` +# * ``filesystem_store_file_perm`` +# +# (string value) +#filesystem_store_datadir = /var/lib/glance/images + +# +# List of directories and their priorities to which the filesystem +# backend store writes images. +# +# The filesystem store can be configured to store images in multiple +# directories as opposed to using a single directory specified by the +# ``filesystem_store_datadir`` configuration option. When using +# multiple directories, each directory can be given an optional +# priority to specify the preference order in which they should +# be used. Priority is an integer that is concatenated to the +# directory path with a colon where a higher value indicates higher +# priority. When two directories have the same priority, the directory +# with most free space is used. When no priority is specified, it +# defaults to zero. +# +# More information on configuring filesystem store with multiple store +# directories can be found at +# https://docs.openstack.org/glance/latest/configuration/configuring.html +# +# NOTE: This directory is used only when filesystem store is used as a +# storage backend. Either ``filesystem_store_datadir`` or +# ``filesystem_store_datadirs`` option must be specified in +# ``glance-api.conf``. If both options are specified, a +# ``BadStoreConfiguration`` will be raised and the filesystem store +# may not be available for adding new images. +# +# Possible values: +# * List of strings of the following form: +# * ``:`` +# +# Related options: +# * ``filesystem_store_datadir`` +# * ``filesystem_store_file_perm`` +# +# (multi valued) +#filesystem_store_datadirs = + +# +# Filesystem store metadata file. +# +# The path to a file which contains the metadata to be returned with +# any location associated with the filesystem store. The file must +# contain a valid JSON object. The object should contain the keys +# ``id`` and ``mountpoint``. The value for both keys should be a +# string. +# +# Possible values: +# * A valid path to the store metadata file +# +# Related options: +# * None +# +# (string value) +#filesystem_store_metadata_file = + +# +# File access permissions for the image files. +# +# Set the intended file access permissions for image data. This provides +# a way to enable other services, e.g. Nova, to consume images directly +# from the filesystem store. The users running the services that are +# intended to be given access to could be made a member of the group +# that owns the files created. Assigning a value less then or equal to +# zero for this configuration option signifies that no changes be made +# to the default permissions. This value will be decoded as an octal +# digit. +# +# For more information, please refer the documentation at +# https://docs.openstack.org/glance/latest/configuration/configuring.html +# +# Possible values: +# * A valid file access permission +# * Zero +# * Any negative integer +# +# Related options: +# * None +# +# (integer value) +#filesystem_store_file_perm = 0 + +# +# Chunk size, in bytes. +# +# The chunk size used when reading or writing image files. Raising this value +# may improve the throughput but it may also slightly increase the memory usage +# when handling a large number of requests. +# +# Possible Values: +# * Any positive integer value +# +# Related options: +# * None +# +# (integer value) +# Minimum value: 1 +#filesystem_store_chunk_size = 65536 + + +[glance.store.http.store] + +# +# From glance.multi_store +# + +# +# Path to the CA bundle file. +# +# This configuration option enables the operator to use a custom +# Certificate Authority file to verify the remote server certificate. If +# this option is set, the ``https_insecure`` option will be ignored and +# the CA file specified will be used to authenticate the server +# certificate and establish a secure connection to the server. +# +# Possible values: +# * A valid path to a CA file +# +# Related options: +# * https_insecure +# +# (string value) +#https_ca_certificates_file = + +# +# Set verification of the remote server certificate. +# +# This configuration option takes in a boolean value to determine +# whether or not to verify the remote server certificate. If set to +# True, the remote server certificate is not verified. If the option is +# set to False, then the default CA truststore is used for verification. +# +# This option is ignored if ``https_ca_certificates_file`` is set. +# The remote server certificate will then be verified using the file +# specified using the ``https_ca_certificates_file`` option. +# +# Possible values: +# * True +# * False +# +# Related options: +# * https_ca_certificates_file +# +# (boolean value) +#https_insecure = true + +# +# The http/https proxy information to be used to connect to the remote +# server. +# +# This configuration option specifies the http/https proxy information +# that should be used to connect to the remote server. The proxy +# information should be a key value pair of the scheme and proxy, for +# example, http:10.0.0.1:3128. You can also specify proxies for multiple +# schemes by separating the key value pairs with a comma, for example, +# http:10.0.0.1:3128, https:10.0.0.1:1080. +# +# Possible values: +# * A comma separated list of scheme:proxy pairs as described above +# +# Related options: +# * None +# +# (dict value) +#http_proxy_information = + + +[glance.store.rbd.store] + +# +# From glance.multi_store +# + +# +# Size, in megabytes, to chunk RADOS images into. +# +# Provide an integer value representing the size in megabytes to chunk +# Glance images into. The default chunk size is 8 megabytes. For optimal +# performance, the value should be a power of two. +# +# When Ceph's RBD object storage system is used as the storage backend +# for storing Glance images, the images are chunked into objects of the +# size set using this option. These chunked objects are then stored +# across the distributed block data store to use for Glance. +# +# Possible Values: +# * Any positive integer value +# +# Related options: +# * None +# +# (integer value) +# Minimum value: 1 +#rbd_store_chunk_size = 8 + +# +# RADOS pool in which images are stored. +# +# When RBD is used as the storage backend for storing Glance images, the +# images are stored by means of logical grouping of the objects (chunks +# of images) into a ``pool``. Each pool is defined with the number of +# placement groups it can contain. The default pool that is used is +# 'images'. +# +# More information on the RBD storage backend can be found here: +# http://ceph.com/planet/how-data-is-stored-in-ceph-cluster/ +# +# Possible Values: +# * A valid pool name +# +# Related options: +# * None +# +# (string value) +#rbd_store_pool = images + +# +# RADOS user to authenticate as. +# +# This configuration option takes in the RADOS user to authenticate as. +# This is only needed when RADOS authentication is enabled and is +# applicable only if the user is using Cephx authentication. If the +# value for this option is not set by the user or is set to None, a +# default value will be chosen, which will be based on the client. +# section in rbd_store_ceph_conf. +# +# Possible Values: +# * A valid RADOS user +# +# Related options: +# * rbd_store_ceph_conf +# +# (string value) +#rbd_store_user = + +# +# Ceph configuration file path. +# +# This configuration option specifies the path to the Ceph configuration +# file to be used. If the value for this option is not set by the user +# or is set to the empty string, librados will read the standard ceph.conf +# file by searching the default Ceph configuration file locations in +# sequential order. See the Ceph documentation for details. +# +# NOTE: If using Cephx authentication, this file should include a reference +# to the right keyring in a client. section +# +# NOTE 2: If you leave this option empty (the default), the actual Ceph +# configuration file used may change depending on what version of librados +# is being used. If it is important for you to know exactly which configuration +# file is in effect, you may specify that file here using this option. +# +# Possible Values: +# * A valid path to a configuration file +# +# Related options: +# * rbd_store_user +# +# (string value) +#rbd_store_ceph_conf = + +# +# Timeout value for connecting to Ceph cluster. +# +# This configuration option takes in the timeout value in seconds used +# when connecting to the Ceph cluster i.e. it sets the time to wait for +# glance-api before closing the connection. This prevents glance-api +# hangups during the connection to RBD. If the value for this option +# is set to less than or equal to 0, no timeout is set and the default +# librados value is used. +# +# Possible Values: +# * Any integer value +# +# Related options: +# * None +# +# (integer value) +#rados_connect_timeout = 0 + + +[glance.store.sheepdog.store] + +# +# From glance.multi_store +# + +# DEPRECATED: +# Chunk size for images to be stored in Sheepdog data store. +# +# Provide an integer value representing the size in mebibyte +# (1048576 bytes) to chunk Glance images into. The default +# chunk size is 64 mebibytes. +# +# When using Sheepdog distributed storage system, the images are +# chunked into objects of this size and then stored across the +# distributed data store to use for Glance. +# +# Chunk sizes, if a power of two, help avoid fragmentation and +# enable improved performance. +# +# Possible values: +# * Positive integer value representing size in mebibytes. +# +# Related Options: +# * None +# +# (integer value) +# Minimum value: 1 +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. +#sheepdog_store_chunk_size = 64 + +# DEPRECATED: +# Port number on which the sheep daemon will listen. +# +# Provide an integer value representing a valid port number on +# which you want the Sheepdog daemon to listen on. The default +# port is 7000. +# +# The Sheepdog daemon, also called 'sheep', manages the storage +# in the distributed cluster by writing objects across the storage +# network. It identifies and acts on the messages it receives on +# the port number set using ``sheepdog_store_port`` option to store +# chunks of Glance images. +# +# Possible values: +# * A valid port number (0 to 65535) +# +# Related Options: +# * sheepdog_store_address +# +# (port value) +# Minimum value: 0 +# Maximum value: 65535 +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. +#sheepdog_store_port = 7000 + +# DEPRECATED: +# Address to bind the Sheepdog daemon to. +# +# Provide a string value representing the address to bind the +# Sheepdog daemon to. The default address set for the 'sheep' +# is 127.0.0.1. +# +# The Sheepdog daemon, also called 'sheep', manages the storage +# in the distributed cluster by writing objects across the storage +# network. It identifies and acts on the messages directed to the +# address set using ``sheepdog_store_address`` option to store +# chunks of Glance images. +# +# Possible values: +# * A valid IPv4 address +# * A valid IPv6 address +# * A valid hostname +# +# Related Options: +# * sheepdog_store_port +# +# (host address value) +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. +#sheepdog_store_address = 127.0.0.1 + + +[glance.store.swift.store] + +# +# From glance.multi_store +# + +# +# Set verification of the server certificate. +# +# This boolean determines whether or not to verify the server +# certificate. If this option is set to True, swiftclient won't check +# for a valid SSL certificate when authenticating. If the option is set +# to False, then the default CA truststore is used for verification. +# +# Possible values: +# * True +# * False +# +# Related options: +# * swift_store_cacert +# +# (boolean value) +#swift_store_auth_insecure = false + +# +# Path to the CA bundle file. +# +# This configuration option enables the operator to specify the path to +# a custom Certificate Authority file for SSL verification when +# connecting to Swift. +# +# Possible values: +# * A valid path to a CA file +# +# Related options: +# * swift_store_auth_insecure +# +# (string value) +# +# This option has a sample default set, which means that +# its actual default value may vary from the one documented +# below. +#swift_store_cacert = /etc/ssl/certs/ca-certificates.crt + +# +# The region of Swift endpoint to use by Glance. +# +# Provide a string value representing a Swift region where Glance +# can connect to for image storage. By default, there is no region +# set. +# +# When Glance uses Swift as the storage backend to store images +# for a specific tenant that has multiple endpoints, setting of a +# Swift region with ``swift_store_region`` allows Glance to connect +# to Swift in the specified region as opposed to a single region +# connectivity. +# +# This option can be configured for both single-tenant and +# multi-tenant storage. +# +# NOTE: Setting the region with ``swift_store_region`` is +# tenant-specific and is necessary ``only if`` the tenant has +# multiple endpoints across different regions. +# +# Possible values: +# * A string value representing a valid Swift region. +# +# Related Options: +# * None +# +# (string value) +# +# This option has a sample default set, which means that +# its actual default value may vary from the one documented +# below. +#swift_store_region = RegionTwo + +# +# The URL endpoint to use for Swift backend storage. +# +# Provide a string value representing the URL endpoint to use for +# storing Glance images in Swift store. By default, an endpoint +# is not set and the storage URL returned by ``auth`` is used. +# Setting an endpoint with ``swift_store_endpoint`` overrides the +# storage URL and is used for Glance image storage. +# +# NOTE: The URL should include the path up to, but excluding the +# container. The location of an object is obtained by appending +# the container and object to the configured URL. +# +# Possible values: +# * String value representing a valid URL path up to a Swift container +# +# Related Options: +# * None +# +# (string value) +# +# This option has a sample default set, which means that +# its actual default value may vary from the one documented +# below. +#swift_store_endpoint = https://swift.openstack.example.org/v1/path_not_including_container_name + +# +# Endpoint Type of Swift service. +# +# This string value indicates the endpoint type to use to fetch the +# Swift endpoint. The endpoint type determines the actions the user will +# be allowed to perform, for instance, reading and writing to the Store. +# This setting is only used if swift_store_auth_version is greater than +# 1. +# +# Possible values: +# * publicURL +# * adminURL +# * internalURL +# +# Related options: +# * swift_store_endpoint +# +# (string value) +# Possible values: +# publicURL - +# adminURL - +# internalURL - +#swift_store_endpoint_type = publicURL + +# +# Type of Swift service to use. +# +# Provide a string value representing the service type to use for +# storing images while using Swift backend storage. The default +# service type is set to ``object-store``. +# +# NOTE: If ``swift_store_auth_version`` is set to 2, the value for +# this configuration option needs to be ``object-store``. If using +# a higher version of Keystone or a different auth scheme, this +# option may be modified. +# +# Possible values: +# * A string representing a valid service type for Swift storage. +# +# Related Options: +# * None +# +# (string value) +#swift_store_service_type = object-store + +# +# Name of single container to store images/name prefix for multiple containers +# +# When a single container is being used to store images, this configuration +# option indicates the container within the Glance account to be used for +# storing all images. When multiple containers are used to store images, this +# will be the name prefix for all containers. Usage of single/multiple +# containers can be controlled using the configuration option +# ``swift_store_multiple_containers_seed``. +# +# When using multiple containers, the containers will be named after the value +# set for this configuration option with the first N chars of the image UUID +# as the suffix delimited by an underscore (where N is specified by +# ``swift_store_multiple_containers_seed``). +# +# Example: if the seed is set to 3 and swift_store_container = ``glance``, then +# an image with UUID ``fdae39a1-bac5-4238-aba4-69bcc726e848`` would be placed in +# the container ``glance_fda``. All dashes in the UUID are included when +# creating the container name but do not count toward the character limit, so +# when N=10 the container name would be ``glance_fdae39a1-ba.`` +# +# Possible values: +# * If using single container, this configuration option can be any string +# that is a valid swift container name in Glance's Swift account +# * If using multiple containers, this configuration option can be any +# string as long as it satisfies the container naming rules enforced by +# Swift. The value of ``swift_store_multiple_containers_seed`` should be +# taken into account as well. +# +# Related options: +# * ``swift_store_multiple_containers_seed`` +# * ``swift_store_multi_tenant`` +# * ``swift_store_create_container_on_put`` +# +# (string value) +#swift_store_container = glance + +# +# The size threshold, in MB, after which Glance will start segmenting image +# data. +# +# Swift has an upper limit on the size of a single uploaded object. By default, +# this is 5GB. To upload objects bigger than this limit, objects are segmented +# into multiple smaller objects that are tied together with a manifest file. +# For more detail, refer to +# https://docs.openstack.org/swift/latest/overview_large_objects.html +# +# This configuration option specifies the size threshold over which the Swift +# driver will start segmenting image data into multiple smaller files. +# Currently, the Swift driver only supports creating Dynamic Large Objects. +# +# NOTE: This should be set by taking into account the large object limit +# enforced by the Swift cluster in consideration. +# +# Possible values: +# * A positive integer that is less than or equal to the large object limit +# enforced by the Swift cluster in consideration. +# +# Related options: +# * ``swift_store_large_object_chunk_size`` +# +# (integer value) +# Minimum value: 1 +#swift_store_large_object_size = 5120 + +# +# The maximum size, in MB, of the segments when image data is segmented. +# +# When image data is segmented to upload images that are larger than the limit +# enforced by the Swift cluster, image data is broken into segments that are no +# bigger than the size specified by this configuration option. +# Refer to ``swift_store_large_object_size`` for more detail. +# +# For example: if ``swift_store_large_object_size`` is 5GB and +# ``swift_store_large_object_chunk_size`` is 1GB, an image of size 6.2GB will be +# segmented into 7 segments where the first six segments will be 1GB in size and +# the seventh segment will be 0.2GB. +# +# Possible values: +# * A positive integer that is less than or equal to the large object limit +# enforced by Swift cluster in consideration. +# +# Related options: +# * ``swift_store_large_object_size`` +# +# (integer value) +# Minimum value: 1 +#swift_store_large_object_chunk_size = 200 + +# +# Create container, if it doesn't already exist, when uploading image. +# +# At the time of uploading an image, if the corresponding container doesn't +# exist, it will be created provided this configuration option is set to True. +# By default, it won't be created. This behavior is applicable for both single +# and multiple containers mode. +# +# Possible values: +# * True +# * False +# +# Related options: +# * None +# +# (boolean value) +#swift_store_create_container_on_put = false + +# +# Store images in tenant's Swift account. +# +# This enables multi-tenant storage mode which causes Glance images to be stored +# in tenant specific Swift accounts. If this is disabled, Glance stores all +# images in its own account. More details multi-tenant store can be found at +# https://wiki.openstack.org/wiki/GlanceSwiftTenantSpecificStorage +# +# NOTE: If using multi-tenant swift store, please make sure +# that you do not set a swift configuration file with the +# 'swift_store_config_file' option. +# +# Possible values: +# * True +# * False +# +# Related options: +# * swift_store_config_file +# +# (boolean value) +#swift_store_multi_tenant = false + +# +# Seed indicating the number of containers to use for storing images. +# +# When using a single-tenant store, images can be stored in one or more than one +# containers. When set to 0, all images will be stored in one single container. +# When set to an integer value between 1 and 32, multiple containers will be +# used to store images. This configuration option will determine how many +# containers are created. The total number of containers that will be used is +# equal to 16^N, so if this config option is set to 2, then 16^2=256 containers +# will be used to store images. +# +# Please refer to ``swift_store_container`` for more detail on the naming +# convention. More detail about using multiple containers can be found at +# https://specs.openstack.org/openstack/glance-specs/specs/kilo/swift-store- +# multiple-containers.html +# +# NOTE: This is used only when swift_store_multi_tenant is disabled. +# +# Possible values: +# * A non-negative integer less than or equal to 32 +# +# Related options: +# * ``swift_store_container`` +# * ``swift_store_multi_tenant`` +# * ``swift_store_create_container_on_put`` +# +# (integer value) +# Minimum value: 0 +# Maximum value: 32 +#swift_store_multiple_containers_seed = 0 + +# +# List of tenants that will be granted admin access. +# +# This is a list of tenants that will be granted read/write access on +# all Swift containers created by Glance in multi-tenant mode. The +# default value is an empty list. +# +# Possible values: +# * A comma separated list of strings representing UUIDs of Keystone +# projects/tenants +# +# Related options: +# * None +# +# (list value) +#swift_store_admin_tenants = + +# +# SSL layer compression for HTTPS Swift requests. +# +# Provide a boolean value to determine whether or not to compress +# HTTPS Swift requests for images at the SSL layer. By default, +# compression is enabled. +# +# When using Swift as the backend store for Glance image storage, +# SSL layer compression of HTTPS Swift requests can be set using +# this option. If set to False, SSL layer compression of HTTPS +# Swift requests is disabled. Disabling this option may improve +# performance for images which are already in a compressed format, +# for example, qcow2. +# +# Possible values: +# * True +# * False +# +# Related Options: +# * None +# +# (boolean value) +#swift_store_ssl_compression = true + +# +# The number of times a Swift download will be retried before the +# request fails. +# +# Provide an integer value representing the number of times an image +# download must be retried before erroring out. The default value is +# zero (no retry on a failed image download). When set to a positive +# integer value, ``swift_store_retry_get_count`` ensures that the +# download is attempted this many more times upon a download failure +# before sending an error message. +# +# Possible values: +# * Zero +# * Positive integer value +# +# Related Options: +# * None +# +# (integer value) +# Minimum value: 0 +#swift_store_retry_get_count = 0 + +# +# Time in seconds defining the size of the window in which a new +# token may be requested before the current token is due to expire. +# +# Typically, the Swift storage driver fetches a new token upon the +# expiration of the current token to ensure continued access to +# Swift. However, some Swift transactions (like uploading image +# segments) may not recover well if the token expires on the fly. +# +# Hence, by fetching a new token before the current token expiration, +# we make sure that the token does not expire or is close to expiry +# before a transaction is attempted. By default, the Swift storage +# driver requests for a new token 60 seconds or less before the +# current token expiration. +# +# Possible values: +# * Zero +# * Positive integer value +# +# Related Options: +# * None +# +# (integer value) +# Minimum value: 0 +#swift_store_expire_soon_interval = 60 + +# +# Use trusts for multi-tenant Swift store. +# +# This option instructs the Swift store to create a trust for each +# add/get request when the multi-tenant store is in use. Using trusts +# allows the Swift store to avoid problems that can be caused by an +# authentication token expiring during the upload or download of data. +# +# By default, ``swift_store_use_trusts`` is set to ``True``(use of +# trusts is enabled). If set to ``False``, a user token is used for +# the Swift connection instead, eliminating the overhead of trust +# creation. +# +# NOTE: This option is considered only when +# ``swift_store_multi_tenant`` is set to ``True`` +# +# Possible values: +# * True +# * False +# +# Related options: +# * swift_store_multi_tenant +# +# (boolean value) +#swift_store_use_trusts = true + +# +# Buffer image segments before upload to Swift. +# +# Provide a boolean value to indicate whether or not Glance should +# buffer image data to disk while uploading to swift. This enables +# Glance to resume uploads on error. +# +# NOTES: +# When enabling this option, one should take great care as this +# increases disk usage on the API node. Be aware that depending +# upon how the file system is configured, the disk space used +# for buffering may decrease the actual disk space available for +# the glance image cache. Disk utilization will cap according to +# the following equation: +# (``swift_store_large_object_chunk_size`` * ``workers`` * 1000) +# +# Possible values: +# * True +# * False +# +# Related options: +# * swift_upload_buffer_dir +# +# (boolean value) +#swift_buffer_on_upload = false + +# +# Reference to default Swift account/backing store parameters. +# +# Provide a string value representing a reference to the default set +# of parameters required for using swift account/backing store for +# image storage. The default reference value for this configuration +# option is 'ref1'. This configuration option dereferences the +# parameters and facilitates image storage in Swift storage backend +# every time a new image is added. +# +# Possible values: +# * A valid string value +# +# Related options: +# * None +# +# (string value) +#default_swift_reference = ref1 + +# DEPRECATED: Version of the authentication service to use. Valid versions are 2 +# and 3 for keystone and 1 (deprecated) for swauth and rackspace. (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: +# The option 'auth_version' in the Swift back-end configuration file is +# used instead. +#swift_store_auth_version = 2 + +# DEPRECATED: The address where the Swift authentication service is listening. +# (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: +# The option 'auth_address' in the Swift back-end configuration file is +# used instead. +#swift_store_auth_address = + +# DEPRECATED: The user to authenticate against the Swift authentication service. +# (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: +# The option 'user' in the Swift back-end configuration file is set instead. +#swift_store_user = + +# DEPRECATED: Auth key for the user authenticating against the Swift +# authentication service. (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: +# The option 'key' in the Swift back-end configuration file is used +# to set the authentication key instead. +#swift_store_key = + +# +# Absolute path to the file containing the swift account(s) +# configurations. +# +# Include a string value representing the path to a configuration +# file that has references for each of the configured Swift +# account(s)/backing stores. By default, no file path is specified +# and customized Swift referencing is disabled. Configuring this +# option is highly recommended while using Swift storage backend for +# image storage as it avoids storage of credentials in the database. +# +# NOTE: Please do not configure this option if you have set +# ``swift_store_multi_tenant`` to ``True``. +# +# Possible values: +# * String value representing an absolute path on the glance-api +# node +# +# Related options: +# * swift_store_multi_tenant +# +# (string value) +#swift_store_config_file = + +# +# Directory to buffer image segments before upload to Swift. +# +# Provide a string value representing the absolute path to the +# directory on the glance node where image segments will be +# buffered briefly before they are uploaded to swift. +# +# NOTES: +# * This is required only when the configuration option +# ``swift_buffer_on_upload`` is set to True. +# * This directory should be provisioned keeping in mind the +# ``swift_store_large_object_chunk_size`` and the maximum +# number of images that could be uploaded simultaneously by +# a given glance node. +# +# Possible values: +# * String value representing an absolute directory path +# +# Related options: +# * swift_buffer_on_upload +# * swift_store_large_object_chunk_size +# +# (string value) +#swift_upload_buffer_dir = + + +[glance.store.vmware_datastore.store] + +# +# From glance.multi_store +# + +# +# Address of the ESX/ESXi or vCenter Server target system. +# +# This configuration option sets the address of the ESX/ESXi or vCenter +# Server target system. This option is required when using the VMware +# storage backend. The address can contain an IP address (127.0.0.1) or +# a DNS name (www.my-domain.com). +# +# Possible Values: +# * A valid IPv4 or IPv6 address +# * A valid DNS name +# +# Related options: +# * vmware_server_username +# * vmware_server_password +# +# (host address value) +# +# This option has a sample default set, which means that +# its actual default value may vary from the one documented +# below. +#vmware_server_host = 127.0.0.1 + +# +# Server username. +# +# This configuration option takes the username for authenticating with +# the VMware ESX/ESXi or vCenter Server. This option is required when +# using the VMware storage backend. +# +# Possible Values: +# * Any string that is the username for a user with appropriate +# privileges +# +# Related options: +# * vmware_server_host +# * vmware_server_password +# +# (string value) +# +# This option has a sample default set, which means that +# its actual default value may vary from the one documented +# below. +#vmware_server_username = root + +# +# Server password. +# +# This configuration option takes the password for authenticating with +# the VMware ESX/ESXi or vCenter Server. This option is required when +# using the VMware storage backend. +# +# Possible Values: +# * Any string that is a password corresponding to the username +# specified using the "vmware_server_username" option +# +# Related options: +# * vmware_server_host +# * vmware_server_username +# +# (string value) +# +# This option has a sample default set, which means that +# its actual default value may vary from the one documented +# below. +#vmware_server_password = vmware + +# +# The number of VMware API retries. +# +# This configuration option specifies the number of times the VMware +# ESX/VC server API must be retried upon connection related issues or +# server API call overload. It is not possible to specify 'retry +# forever'. +# +# Possible Values: +# * Any positive integer value +# +# Related options: +# * None +# +# (integer value) +# Minimum value: 1 +#vmware_api_retry_count = 10 + +# +# Interval in seconds used for polling remote tasks invoked on VMware +# ESX/VC server. +# +# This configuration option takes in the sleep time in seconds for polling an +# on-going async task as part of the VMWare ESX/VC server API call. +# +# Possible Values: +# * Any positive integer value +# +# Related options: +# * None +# +# (integer value) +# Minimum value: 1 +#vmware_task_poll_interval = 5 + +# +# The directory where the glance images will be stored in the datastore. +# +# This configuration option specifies the path to the directory where the +# glance images will be stored in the VMware datastore. If this option +# is not set, the default directory where the glance images are stored +# is openstack_glance. +# +# Possible Values: +# * Any string that is a valid path to a directory +# +# Related options: +# * None +# +# (string value) +#vmware_store_image_dir = /openstack_glance + +# +# Set verification of the ESX/vCenter server certificate. +# +# This configuration option takes a boolean value to determine +# whether or not to verify the ESX/vCenter server certificate. If this +# option is set to True, the ESX/vCenter server certificate is not +# verified. If this option is set to False, then the default CA +# truststore is used for verification. +# +# This option is ignored if the "vmware_ca_file" option is set. In that +# case, the ESX/vCenter server certificate will then be verified using +# the file specified using the "vmware_ca_file" option . +# +# Possible Values: +# * True +# * False +# +# Related options: +# * vmware_ca_file +# +# (boolean value) +# Deprecated group/name - [glance.store.vmware_datastore.store]/vmware_api_insecure +#vmware_insecure = false + +# +# Absolute path to the CA bundle file. +# +# This configuration option enables the operator to use a custom +# Cerificate Authority File to verify the ESX/vCenter certificate. +# +# If this option is set, the "vmware_insecure" option will be ignored +# and the CA file specified will be used to authenticate the ESX/vCenter +# server certificate and establish a secure connection to the server. +# +# Possible Values: +# * Any string that is a valid absolute path to a CA file +# +# Related options: +# * vmware_insecure +# +# (string value) +# +# This option has a sample default set, which means that +# its actual default value may vary from the one documented +# below. +#vmware_ca_file = /etc/ssl/certs/ca-certificates.crt + +# +# The datastores where the image can be stored. +# +# This configuration option specifies the datastores where the image can +# be stored in the VMWare store backend. This option may be specified +# multiple times for specifying multiple datastores. The datastore name +# should be specified after its datacenter path, separated by ":". An +# optional weight may be given after the datastore name, separated again +# by ":" to specify the priority. Thus, the required format becomes +# ::. +# +# When adding an image, the datastore with highest weight will be +# selected, unless there is not enough free space available in cases +# where the image size is already known. If no weight is given, it is +# assumed to be zero and the directory will be considered for selection +# last. If multiple datastores have the same weight, then the one with +# the most free space available is selected. +# +# Possible Values: +# * Any string of the format: +# :: +# +# Related options: +# * None +# +# (multi valued) +#vmware_datastores = + + [glance_store] +# +# From glance.multi_store +# + +# +# The store identifier for the default backend in which data will be +# stored. +# +# The value must be defined as one of the keys in the dict defined +# by the ``enabled_backends`` configuration option in the DEFAULT +# configuration group. +# +# If a value is not defined for this option: +# +# * the consuming service may refuse to start +# * store_add calls that do not specify a specific backend will +# raise a ``glance_store.exceptions.UnknownScheme`` exception +# +# Related Options: +# * enabled_backends +# +# (string value) +#default_backend = + # # From glance.store # @@ -951,7 +2410,7 @@ # ``enabled_backends`` which helps to configure multiple backend stores # of different schemes. # -# This option is scheduled for removal in the Train development +# This option is scheduled for removal in the U development # cycle. #stores = file,http @@ -1004,59 +2463,10 @@ # ``default_backend`` which acts similar to ``default_store`` config # option. # -# This option is scheduled for removal in the Train development +# This option is scheduled for removal in the U development # cycle. #default_store = file -# DEPRECATED: -# Minimum interval in seconds to execute updating dynamic storage -# capabilities based on current backend status. -# -# Provide an integer value representing time in seconds to set the -# minimum interval before an update of dynamic storage capabilities -# for a storage backend can be attempted. Setting -# ``store_capabilities_update_min_interval`` does not mean updates -# occur periodically based on the set interval. Rather, the update -# is performed at the elapse of this interval set, if an operation -# of the store is triggered. -# -# By default, this option is set to zero and is disabled. Provide an -# integer value greater than zero to enable this option. -# -# NOTE 1: For more information on store capabilities and their updates, -# please visit: https://specs.openstack.org/openstack/glance- -# specs/specs/kilo/store-capabilities.html -# -# For more information on setting up a particular store in your -# deployment and help with the usage of this feature, please contact -# the storage driver maintainers listed here: -# https://docs.openstack.org/glance_store/latest/user/drivers.html -# -# NOTE 2: The dynamic store update capability described above is not -# implemented by any current store drivers. Thus, this option DOES -# NOT DO ANYTHING (and it never has). It is DEPRECATED and scheduled -# for removal early in the Stein development cycle. -# -# Possible values: -# * Zero -# * Positive integer -# -# Related Options: -# * None -# -# (integer value) -# Minimum value: 0 -# This option is deprecated for removal since Rocky. -# Its value may be silently ignored in the future. -# Reason: -# This option configures a stub method that has not been implemented -# for any existing store drivers. Hence it is non-operational, and -# giving it a value does absolutely nothing. -# -# This option is scheduled for removal early in the Stein development -# cycle. -#store_capabilities_update_min_interval = 0 - # # Information to match when looking for cinder in the service catalog. # @@ -1564,12 +2974,19 @@ # # Ceph configuration file path. # -# This configuration option takes in the path to the Ceph configuration +# This configuration option specifies the path to the Ceph configuration # file to be used. If the value for this option is not set by the user -# or is set to None, librados will locate the default configuration file -# which is located at /etc/ceph/ceph.conf. If using Cephx -# authentication, this file should include a reference to the right -# keyring in a client. section +# or is set to the empty string, librados will read the standard ceph.conf +# file by searching the default Ceph configuration file locations in +# sequential order. See the Ceph documentation for details. +# +# NOTE: If using Cephx authentication, this file should include a reference +# to the right keyring in a client. section +# +# NOTE 2: If you leave this option empty (the default), the actual Ceph +# configuration file used may change depending on what version of librados +# is being used. If it is important for you to know exactly which configuration +# file is in effect, you may specify that file here using this option. # # Possible Values: # * A valid path to a configuration file @@ -1578,7 +2995,7 @@ # * rbd_store_user # # (string value) -#rbd_store_ceph_conf = /etc/ceph/ceph.conf +#rbd_store_ceph_conf = # # Timeout value for connecting to Ceph cluster. @@ -1599,7 +3016,7 @@ # (integer value) #rados_connect_timeout = 0 -# +# DEPRECATED: # Chunk size for images to be stored in Sheepdog data store. # # Provide an integer value representing the size in mebibyte @@ -1621,9 +3038,15 @@ # # (integer value) # Minimum value: 1 +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. #sheepdog_store_chunk_size = 64 -# +# DEPRECATED: # Port number on which the sheep daemon will listen. # # Provide an integer value representing a valid port number on @@ -1645,9 +3068,15 @@ # (port value) # Minimum value: 0 # Maximum value: 65535 +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. #sheepdog_store_port = 7000 -# +# DEPRECATED: # Address to bind the Sheepdog daemon to. # # Provide a string value representing the address to bind the @@ -1669,6 +3098,12 @@ # * sheepdog_store_port # # (host address value) +# This option is deprecated for removal since Train. +# Its value may be silently ignored in the future. +# Reason: +# The Sheepdog project is no longer actively maintained. The +# Sheepdog driver is scheduled for removal in the 'U' development +# cycle. #sheepdog_store_address = 127.0.0.1 # @@ -2412,6 +3847,326 @@ #vmware_datastores = +[os_glance_staging_store] +# +# This is the configuration block for a store reserved for Glance's +# internal use. +# +# When the Glance multistore feature is in use, as indicated by the +# configuration option ``[DEFAULT]/enabled_backends`` having been +# configured, you must configure a *filesystem store* as the "staging +# area" for the interoperable image import process. Please see the +# Glance Train release notes and the "Multi Store Support" chapter of +# the Glance Administration Guide for more information. +# +# NOTE: Configuring this store replaces the use of the old +# ``[DEFAULT]/node_staging_uri`` option. Keep in mind, however, that the +# reserved store you configure in this section of the configuration file +# is *ignored* unless the Glance multistore feature is configured. +# +# Related Options: +# +# * [DEFAULT]/enabled_backends - NOTE: ``enabled_backends`` must have +# a value (that's how the multistore feature is enabled), but the +# list of backends must NOT include this reserved store +# + +# +# From glance.reserved_stores +# + +# +# Absolute path to the work directory to use as the staging area +# for the interoperable image import process. +# +# NOTE: When providing a value for this option, please make sure +# that enough space is provided for concurrent user image import operations. +# A rough estimation can be done by multiplying the expected number of +# concurrent image imports with an average image size (e.g 500MB). (A +# worst case scenario for concurrent uploads would be ``[DEFAULT]/workers``, +# in which every available API thread is satisfying a PUT request to the +# staging area.) The size estimation should be done based on the average +# size image in your deployment. +# +# Possible values: +# +# * String value representing the absolute path to a directory +# to be used by a filesystem store +# * This value MUST be different from the value used for the +# ``[os_glance_tasks_store]/filesystem_store_datadir`` option +# +# Related Options: +# +# * [os_glance_tasks_store]/filesystem_store_datadir +# +# (string value) +# +# This option has a sample default set, which means that +# its actual default value may vary from the one documented +# below. +#filesystem_store_datadir = /var/lib/glance/staging/ + +# +# List of directories and their priorities to which the filesystem +# backend store writes images. +# +# The filesystem store can be configured to store images in multiple +# directories as opposed to using a single directory specified by the +# ``filesystem_store_datadir`` configuration option. When using +# multiple directories, each directory can be given an optional +# priority to specify the preference order in which they should +# be used. Priority is an integer that is concatenated to the +# directory path with a colon where a higher value indicates higher +# priority. When two directories have the same priority, the directory +# with most free space is used. When no priority is specified, it +# defaults to zero. +# +# More information on configuring filesystem store with multiple store +# directories can be found at +# https://docs.openstack.org/glance/latest/configuration/configuring.html +# +# NOTE: This directory is used only when filesystem store is used as a +# storage backend. Either ``filesystem_store_datadir`` or +# ``filesystem_store_datadirs`` option must be specified in +# ``glance-api.conf``. If both options are specified, a +# ``BadStoreConfiguration`` will be raised and the filesystem store +# may not be available for adding new images. +# +# Possible values: +# * List of strings of the following form: +# * ``:`` +# +# Related options: +# * ``filesystem_store_datadir`` +# * ``filesystem_store_file_perm`` +# +# (multi valued) +#filesystem_store_datadirs = + +# +# Filesystem store metadata file. +# +# The path to a file which contains the metadata to be returned with +# any location associated with the filesystem store. The file must +# contain a valid JSON object. The object should contain the keys +# ``id`` and ``mountpoint``. The value for both keys should be a +# string. +# +# Possible values: +# * A valid path to the store metadata file +# +# Related options: +# * None +# +# (string value) +#filesystem_store_metadata_file = + +# +# File access permissions for the image files. +# +# Set the intended file access permissions for image data. This provides +# a way to enable other services, e.g. Nova, to consume images directly +# from the filesystem store. The users running the services that are +# intended to be given access to could be made a member of the group +# that owns the files created. Assigning a value less then or equal to +# zero for this configuration option signifies that no changes be made +# to the default permissions. This value will be decoded as an octal +# digit. +# +# For more information, please refer the documentation at +# https://docs.openstack.org/glance/latest/configuration/configuring.html +# +# Possible values: +# * A valid file access permission +# * Zero +# * Any negative integer +# +# Related options: +# * None +# +# (integer value) +#filesystem_store_file_perm = 0 + +# +# Chunk size, in bytes. +# +# The chunk size used when reading or writing image files. Raising this value +# may improve the throughput but it may also slightly increase the memory usage +# when handling a large number of requests. +# +# Possible Values: +# * Any positive integer value +# +# Related options: +# * None +# +# (integer value) +# Minimum value: 1 +#filesystem_store_chunk_size = 65536 + + +[os_glance_tasks_store] +# +# This is the configuration block for a store reserved for Glance's +# internal use. +# +# When the Glance multistore feature is in use, as indicated by the +# configuration option ``[DEFAULT]/enabled_backends`` having been +# configured, you must configure a *filesystem store* for the use of +# the tasks engine. Please see the Glance Train release notes +# and the "Multi Store Support" chapter of the Glance Administration +# Guide for more information. +# +# NOTE: Configuring this store replaces the use of the old +# ``[tasks]/work_dir`` option. Keep in mind, however, that +# the reserved store you configure in this section of the configuration +# file is *ignored* unless the Glance multistore feature is configured. +# +# Related Options: +# +# * [DEFAULT]/enabled_backends - NOTE: ``enabled_backends`` must have +# a value (that's how the multistore feature is enabled), but the +# list of backends must NOT include this reserved store +# + +# +# From glance.reserved_stores +# + +# +# Absolute path to the work directory to use for asynchronous +# task operations. +# +# NOTE: When providing a value for this option, please make sure +# that enough space is provided for concurrent tasks to run +# efficiently without running out of space. +# +# A rough estimation can be done by multiplying the number of +# ``[taskflow_executor]/max_workers`` with an average image size +# (e.g 500MB). The image size estimation should be done based on +# the average size in your deployment. Note that depending on the +# tasks running you may need to multiply this number by some factor +# depending on what the task does. For example, you may want to double +# the available size if image conversion is enabled. All this being said, +# remember these are just estimations and you should do them based on +# the worst case scenario and be prepared to act in case they were wrong. +# +# Possible values: +# * String value representing the absolute path to a directory +# to be used by a filesystem store +# * This value MUST be different from the value used for the +# ``[os_glance_staging_store]/filesystem_store_datadir`` option +# +# Related Options: +# * [taskflow_executor]/max_workers +# * [os_glance_staging_store]/filesystem_store_datadir +# +# (string value) +# +# This option has a sample default set, which means that +# its actual default value may vary from the one documented +# below. +#filesystem_store_datadir = /var/lib/glance/tasks_work_dir/ + +# +# List of directories and their priorities to which the filesystem +# backend store writes images. +# +# The filesystem store can be configured to store images in multiple +# directories as opposed to using a single directory specified by the +# ``filesystem_store_datadir`` configuration option. When using +# multiple directories, each directory can be given an optional +# priority to specify the preference order in which they should +# be used. Priority is an integer that is concatenated to the +# directory path with a colon where a higher value indicates higher +# priority. When two directories have the same priority, the directory +# with most free space is used. When no priority is specified, it +# defaults to zero. +# +# More information on configuring filesystem store with multiple store +# directories can be found at +# https://docs.openstack.org/glance/latest/configuration/configuring.html +# +# NOTE: This directory is used only when filesystem store is used as a +# storage backend. Either ``filesystem_store_datadir`` or +# ``filesystem_store_datadirs`` option must be specified in +# ``glance-api.conf``. If both options are specified, a +# ``BadStoreConfiguration`` will be raised and the filesystem store +# may not be available for adding new images. +# +# Possible values: +# * List of strings of the following form: +# * ``:`` +# +# Related options: +# * ``filesystem_store_datadir`` +# * ``filesystem_store_file_perm`` +# +# (multi valued) +#filesystem_store_datadirs = + +# +# Filesystem store metadata file. +# +# The path to a file which contains the metadata to be returned with +# any location associated with the filesystem store. The file must +# contain a valid JSON object. The object should contain the keys +# ``id`` and ``mountpoint``. The value for both keys should be a +# string. +# +# Possible values: +# * A valid path to the store metadata file +# +# Related options: +# * None +# +# (string value) +#filesystem_store_metadata_file = + +# +# File access permissions for the image files. +# +# Set the intended file access permissions for image data. This provides +# a way to enable other services, e.g. Nova, to consume images directly +# from the filesystem store. The users running the services that are +# intended to be given access to could be made a member of the group +# that owns the files created. Assigning a value less then or equal to +# zero for this configuration option signifies that no changes be made +# to the default permissions. This value will be decoded as an octal +# digit. +# +# For more information, please refer the documentation at +# https://docs.openstack.org/glance/latest/configuration/configuring.html +# +# Possible values: +# * A valid file access permission +# * Zero +# * Any negative integer +# +# Related options: +# * None +# +# (integer value) +#filesystem_store_file_perm = 0 + +# +# Chunk size, in bytes. +# +# The chunk size used when reading or writing image files. Raising this value +# may improve the throughput but it may also slightly increase the memory usage +# when handling a large number of requests. +# +# Possible Values: +# * Any positive integer value +# +# Related options: +# * None +# +# (integer value) +# Minimum value: 1 +#filesystem_store_chunk_size = 65536 + + [oslo_concurrency] # @@ -2442,7 +4197,9 @@ # scope. (boolean value) #enforce_scope = false -# The file that defines policies. (string value) +# The relative or absolute path of a file that maps roles to permissions for a +# given service. Relative paths must be specified in relation to the +# configuration file setting this option. (string value) #policy_file = policy.json # Default rule. Enforced when a requested rule is not found. (string value) diff --git a/glance/api/middleware/version_negotiation.py b/glance/api/middleware/version_negotiation.py index 81f9ee0b84..7e452ed9cd 100644 --- a/glance/api/middleware/version_negotiation.py +++ b/glance/api/middleware/version_negotiation.py @@ -82,6 +82,7 @@ class VersionNegotiationFilter(wsgi.Middleware): allowed_versions['v2.5'] = 2 allowed_versions['v2.6'] = 2 allowed_versions['v2.7'] = 2 + allowed_versions['v2.9'] = 2 if CONF.enabled_backends: allowed_versions['v2.8'] = 2 return allowed_versions diff --git a/glance/api/versions.py b/glance/api/versions.py index 9906084c46..4c56b0882e 100644 --- a/glance/api/versions.py +++ b/glance/api/versions.py @@ -78,6 +78,7 @@ class Controller(object): build_version_object(2.8, 'v2', 'EXPERIMENTAL') ]) version_objs.extend([ + build_version_object(2.9, 'v2', 'EXPERIMENTAL'), build_version_object(2.7, 'v2', 'CURRENT'), build_version_object(2.6, 'v2', 'SUPPORTED'), build_version_object(2.5, 'v2', 'SUPPORTED'), diff --git a/glance/tests/functional/test_api.py b/glance/tests/functional/test_api.py index 18edf020d1..387ac3ca93 100644 --- a/glance/tests/functional/test_api.py +++ b/glance/tests/functional/test_api.py @@ -26,6 +26,11 @@ from glance.tests import functional def _generate_v2_versions(url): version_list = [] version_list.extend([ + { + 'id': 'v2.9', + 'status': 'EXPERIMENTAL', + 'links': [{'rel': 'self', 'href': url % '2'}], + }, { 'id': 'v2.7', 'status': 'CURRENT', diff --git a/glance/tests/unit/test_versions.py b/glance/tests/unit/test_versions.py index 210124ebfd..03cc2fa48f 100644 --- a/glance/tests/unit/test_versions.py +++ b/glance/tests/unit/test_versions.py @@ -29,6 +29,12 @@ class VersionsTest(base.IsolatedUnitTest): def _get_versions_list(self, url): versions = [ + { + 'id': 'v2.9', + 'status': 'EXPERIMENTAL', + 'links': [{'rel': 'self', + 'href': '%s/v2/' % url}], + }, { 'id': 'v2.7', 'status': 'CURRENT', @@ -181,8 +187,13 @@ class VersionNegotiationTest(base.IsolatedUnitTest): self.middleware.process_request(request) self.assertEqual('/v2/images', request.path_info) - def test_request_url_v2_9_unsupported(self): + def test_request_url_v2_9(self): request = webob.Request.blank('/v2.9/images') + self.middleware.process_request(request) + self.assertEqual('/v2/images', request.path_info) + + def test_request_url_v2_10_unsupported(self): + request = webob.Request.blank('/v2.10/images') resp = self.middleware.process_request(request) self.assertIsInstance(resp, versions.Controller)