Migrate setup configuration to pyproject.toml

Change-Id: I9cc146d38596262f03d1b61ae76cc1ae29a714cd
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
Stephen Finucane
2025-09-12 14:51:39 +01:00
parent 115f4a2e35
commit 49216d3dd5
2 changed files with 174 additions and 142 deletions

View File

@@ -1,3 +1,176 @@
[build-system] [build-system]
requires = ["pbr>=6.0.0", "setuptools>=64.0.0"] requires = ["pbr>=6.1.1"]
build-backend = "pbr.build" build-backend = "pbr.build"
[project]
name = "cinder"
description = "OpenStack Block Storage"
authors = [
{name = "OpenStack", email = "openstack-discuss@lists.openstack.org"},
]
readme = {file = "README.rst", content-type = "text/x-rst"}
license = {text = "Apache-2.0"}
dynamic = ["version", "dependencies"]
requires-python = ">=3.10"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
[project.urls]
Homepage = "https://docs.openstack.org/cinder"
Repository = "https://opendev.org/openstack/cinder"
Bugs = "https://bugs.launchpad.net/cinder"
[project.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"
[project.entry-points."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"
[project.entry-points."oslo.config.opts"]
cinder = "cinder.opts:list_opts"
[project.entry-points."oslo.config.opts.defaults"]
cinder = "cinder.common.config:set_external_library_defaults"
[project.entry-points."oslo.policy.enforcer"]
cinder = "cinder.policy:get_enforcer"
[project.entry-points."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"
[project.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"
[project.optional-dependencies]
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
"psutil>=5.7.2", # BSD
]
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
]
quobyte = [
"psutil>=5.7.2", # BSD
]
[tool.setuptools]
packages = [
"cinder"
]
[tool.setuptools.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/*",
]
[tool.mypy]
python_version = "3.10"
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
strict_equality = true

141
setup.cfg
View File

@@ -1,143 +1,2 @@
[metadata] [metadata]
name = cinder 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.10
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.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
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
[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
psutil>=5.7.2 # BSD
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
quobyte =
psutil>=5.7.2 # BSD
[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
strict_equality = true
[options]
packages = cinder