7a19f6f5bd
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
142 lines
4.8 KiB
INI
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
|