[metadata]
name = nova
summary = Cloud computing fabric controller
description_file =
    README.rst
author = OpenStack
author_email = openstack-discuss@lists.openstack.org
url = https://docs.openstack.org/nova/latest/
project_urls =
    Bug Tracker = https://bugs.launchpad.net/nova/
    Documentation = https://docs.openstack.org/nova/
    Source Code = https://opendev.org/openstack/nova
python_requires = >=3.8
classifiers =
    Development Status :: 5 - Production/Stable
    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 :: 3
    Programming Language :: Python :: 3.8
    Programming Language :: Python :: 3.9
    Programming Language :: Python :: 3.10
    Programming Language :: Python :: 3.11
    Programming Language :: Python :: 3 :: Only
    Programming Language :: Python :: Implementation :: CPython

[extras]
osprofiler =
    osprofiler>=1.4.0 # Apache-2.0
zvm =
    zVMCloudConnector>=1.3.0;sys_platform!='win32'  # Apache 2.0 License
vmware =
    oslo.vmware>=3.6.0 # Apache-2.0

[files]
data_files =
    etc/nova =
        etc/nova/api-paste.ini
        etc/nova/rootwrap.conf
    etc/nova/rootwrap.d = etc/nova/rootwrap.d/*
packages =
    nova

[entry_points]
oslo.config.opts =
    nova.conf = nova.conf.opts:list_opts
oslo.config.opts.defaults =
    nova.conf = nova.config:set_lib_defaults
oslo.policy.enforcer =
    nova = nova.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.
    nova = nova.policies:list_rules
nova.api.extra_spec_validators =
    accel = nova.api.validation.extra_specs.accel
    aggregate_instance_extra_specs = nova.api.validation.extra_specs.aggregate_instance_extra_specs
    capabilities = nova.api.validation.extra_specs.capabilities
    hw = nova.api.validation.extra_specs.hw
    hw_rng = nova.api.validation.extra_specs.hw_rng
    hw_video = nova.api.validation.extra_specs.hw_video
    null = nova.api.validation.extra_specs.null
    os = nova.api.validation.extra_specs.os
    pci_passthrough = nova.api.validation.extra_specs.pci_passthrough
    quota = nova.api.validation.extra_specs.quota
    resources = nova.api.validation.extra_specs.resources
    traits = nova.api.validation.extra_specs.traits
    vmware = nova.api.validation.extra_specs.vmware
nova.compute.monitors.cpu =
    virt_driver = nova.compute.monitors.cpu.virt_driver:Monitor
console_scripts =
    nova-api = nova.cmd.api:main
    nova-api-metadata = nova.cmd.api_metadata:main
    nova-api-os-compute = nova.cmd.api_os_compute:main
    nova-compute = nova.cmd.compute:main
    nova-conductor = nova.cmd.conductor:main
    nova-manage = nova.cmd.manage:main
    nova-novncproxy = nova.cmd.novncproxy:main
    nova-policy = nova.cmd.policy:main
    nova-rootwrap = oslo_rootwrap.cmd:main
    nova-rootwrap-daemon = oslo_rootwrap.cmd:daemon
    nova-scheduler = nova.cmd.scheduler:main
    nova-serialproxy = nova.cmd.serialproxy:main
    nova-spicehtml5proxy = nova.cmd.spicehtml5proxy:main
    nova-status = nova.cmd.status:main
wsgi_scripts =
    nova-api-wsgi = nova.api.openstack.compute.wsgi:init_application
    nova-metadata-wsgi = nova.api.metadata.wsgi:init_application

[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
files =
  nova/compute/manager.py,
  nova/compute/pci_placement_translator.py,
  nova/crypto.py,
  nova/filesystem.py,
  nova/limit/local.py,
  nova/limit/placement.py,
  nova/network/neutron.py,
  nova/pci/*.py,
  nova/privsep/path.py,
  nova/scheduler/client/report.py,
  nova/scheduler/request_filter.py,
  nova/scheduler/utils.py,
  nova/virt/driver.py,
  nova/virt/hardware.py,
  nova/virt/libvirt/machine_type_utils.py,
  nova/virt/libvirt/__init__.py,
  nova/virt/libvirt/cpu/__init__.py,
  nova/virt/libvirt/cpu/api.py,
  nova/virt/libvirt/cpu/core.py,
  nova/virt/libvirt/driver.py,
  nova/virt/libvirt/event.py,
  nova/virt/libvirt/guest.py,
  nova/virt/libvirt/host.py,
  nova/virt/libvirt/utils.py

[codespell]
skip = *.po,*.js,*.css,*.html,*.svg,HACKING.py,*hacking*,*build*,*_static*,doc/dictionary.txt,*.pyc,*.inv,*.gz,*.jpg,*.png,*.vsd,*.graffle,*.json
count =
quiet-level = 4
