diff --git a/pyproject.toml b/pyproject.toml index 5e862a9593a..4eb0f976efb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,176 @@ [build-system] -requires = ["pbr>=6.0.0", "setuptools>=64.0.0"] +requires = ["pbr>=6.1.1"] 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 diff --git a/setup.cfg b/setup.cfg index cc83f42e1c2..bb9d0e09d48 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,143 +1,2 @@ [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.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