cinder/setup.cfg
Peter Penchev 7a19f6f5bd StorPool: create_cloned_volume() improvements
If the source and destination volumes are in the same StorPool template
(as defined by either the volume type or the global config setting),
forego the need to create the transient snapshot at all and use
StorPool's "base this volume on that one" API call (which does the same
thing internally, but much more efficiently and atomically).

If the destination volume should be in a different StorPool template,
then make sure that the transient snapshot is also in that template so
that, if other volumes are cloned from the same source volume later,
they can all use the same data underneath (the internal workings of
StorPool will detect that all those snapshots are exactly the same and
not duplicate any data in the destination template). This will avoid
data duplication, sometimes with drastic results.

Bump the minimum required version of the "storpool" third-party library
for snapshotUpdate(template=...) support.

Change-Id: Ib9bb76cf2e2f2b035b92e596b1ef185558b190d6
2024-06-24 18:53:43 +05:30

142 lines
4.8 KiB
INI

[metadata]
name = cinder
description = OpenStack Block Storage
long_description = file: README.rst
author = OpenStack
author_email = openstack-discuss@lists.openstack.org
url = https://docs.openstack.org/cinder/latest/
python_requires = >=3.8
classifiers =
Environment :: OpenStack
Intended Audience :: Information Technology
Intended Audience :: System Administrators
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
Programming Language :: Python
Programming Language :: Python :: Implementation :: CPython
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
project_urls:
Source=https://opendev.org/openstack/cinder
Tracker=https://bugs.launchpad.net/cinder
[files]
data_files =
etc/cinder =
etc/cinder/api-paste.ini
etc/cinder/rootwrap.conf
etc/cinder/resource_filters.json
etc/cinder/rootwrap.d = etc/cinder/rootwrap.d/*
packages =
cinder
[entry_points]
cinder.scheduler.filters =
AvailabilityZoneFilter = cinder.scheduler.filters.availability_zone_filter:AvailabilityZoneFilter
CapabilitiesFilter = cinder.scheduler.filters.capabilities_filter:CapabilitiesFilter
CapacityFilter = cinder.scheduler.filters.capacity_filter:CapacityFilter
DifferentBackendFilter = cinder.scheduler.filters.affinity_filter:DifferentBackendFilter
DriverFilter = cinder.scheduler.filters.driver_filter:DriverFilter
JsonFilter = cinder.scheduler.filters.json_filter:JsonFilter
RetryFilter = cinder.scheduler.filters.ignore_attempted_hosts_filter:IgnoreAttemptedHostsFilter
SameBackendFilter = cinder.scheduler.filters.affinity_filter:SameBackendFilter
InstanceLocalityFilter = cinder.scheduler.filters.instance_locality_filter:InstanceLocalityFilter
cinder.scheduler.weights =
AllocatedCapacityWeigher = cinder.scheduler.weights.capacity:AllocatedCapacityWeigher
CapacityWeigher = cinder.scheduler.weights.capacity:CapacityWeigher
ChanceWeigher = cinder.scheduler.weights.chance:ChanceWeigher
GoodnessWeigher = cinder.scheduler.weights.goodness:GoodnessWeigher
VolumeNumberWeigher = cinder.scheduler.weights.volume_number:VolumeNumberWeigher
oslo.config.opts =
cinder = cinder.opts:list_opts
oslo.config.opts.defaults =
cinder = cinder.common.config:set_external_library_defaults
oslo.policy.enforcer =
cinder = cinder.policy:get_enforcer
oslo.policy.policies =
# The sample policies will be ordered by entry point and then by list
# returned from that entry point. If more control is desired split out each
# list_rules method into a separate entry point rather than using the
# aggregate method.
cinder = cinder.policies:list_rules
console_scripts =
cinder-api = cinder.cmd.api:main
cinder-backup = cinder.cmd.backup:main
cinder-manage = cinder.cmd.manage:main
cinder-rootwrap = oslo_rootwrap.cmd:main
cinder-rtstool = cinder.cmd.rtstool:main
cinder-scheduler = cinder.cmd.scheduler:main
cinder-status = cinder.cmd.status:main
cinder-volume = cinder.cmd.volume:main
cinder-volume-usage-audit = cinder.cmd.volume_usage_audit:main
wsgi_scripts =
cinder-wsgi = cinder.wsgi.wsgi:initialize_application
[extras]
all =
websocket-client>=1.3.2 # LGPLv2+
pyOpenSSL>=17.5.0 # Apache-2.0
storops>=0.5.10 # Apache-2.0
pywbem>=0.7.0 #LGPLv2.1+
python-3parclient>=4.2.10 # Apache-2.0
krest>=1.3.0 # Apache-2.0
infinisdk>=103.0.1 # BSD-3
py-pure-client>=1.47.0 # BSD
rsd-lib>=1.1.0 # Apache-2.0
storpool>=7.1.0 # Apache-2.0
storpool.spopenstack>=2.2.1 # Apache-2.0
dfs-sdk>=1.2.25 # Apache-2.0
rbd-iscsi-client>=0.1.8 # Apache-2.0
python-linstor>=1.7.0 # LGPLv3
datacore =
websocket-client>=1.3.2 # LGPLv2+
powermax =
pyOpenSSL>=17.5.0 # Apache-2.0
vnx =
storops>=0.5.10 # Apache-2.0
unity =
storops>=0.5.10 # Apache-2.0
fujitsu =
pywbem>=0.7.0 #LGPLv2.1+
hpe3par =
python-3parclient>=4.2.10 # Apache-2.0
kaminario =
krest>=1.3.0 # Apache-2.0
ds8k =
pyOpenSSL>=17.5.0 # Apache-2.0
infinidat =
infinisdk>=103.0.1 # BSD-3
pure =
py-pure-client>=1.47.0 # BSD
rsd =
rsd-lib>=1.1.0 # Apache-2.0
storpool =
storpool>=7.1.0 # Apache-2.0
storpool.spopenstack>=2.2.1 # Apache-2.0
datera =
dfs-sdk>=1.2.25 # Apache-2.0
rbd_iscsi =
rbd-iscsi-client>=0.1.8 # Apache-2.0
linstor =
python-linstor>=1.7.0 # LGPLv3
[mypy]
show_column_numbers = true
show_error_context = true
ignore_missing_imports = true
follow_imports = skip
incremental = true
check_untyped_defs = true
warn_unused_ignores = true
show_error_codes = true
pretty = true
html_report = mypy-report
no_implicit_optional = true
[options]
packages = cinder