
The only thing of note is the use of data files: while pbr allowed you to include directories in a glob, setuptools only allows individual files. This necessitates expanding out the list of files we wish to copy. Change-Id: I65156249c3494708d79789be23afb2d69c194848 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
275 lines
12 KiB
TOML
275 lines
12 KiB
TOML
[build-system]
|
|
requires = ["pbr>=6.1.1"]
|
|
build-backend = "pbr.build"
|
|
|
|
[project]
|
|
name = "ironic"
|
|
description = "OpenStack Bare Metal Provisioning"
|
|
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 :: 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.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://docs.openstack.org/ironic"
|
|
Repository = "https://opendev.org/openstack/ironic"
|
|
Bugs = "https://bugs.launchpad.net/ironic"
|
|
|
|
[project.entry-points."ironic.console.container"]
|
|
systemd = "ironic.console.container.systemd:SystemdConsoleContainer"
|
|
fake = "ironic.console.container.fake:FakeConsoleContainer"
|
|
|
|
# TODO(stephenfin): Remove the oslo.db call that requires this. It's unnecessary
|
|
[project.entry-points."ironic.database.migration_backend"]
|
|
sqlalchemy = "ironic.db.sqlalchemy.migration"
|
|
|
|
[project.entry-points."ironic.dhcp"]
|
|
dnsmasq = "ironic.dhcp.dnsmasq:DnsmasqDHCPApi"
|
|
neutron = "ironic.dhcp.neutron:NeutronDHCPApi"
|
|
none = "ironic.dhcp.none:NoneDHCPApi"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.bios"]
|
|
fake = "ironic.drivers.modules.fake:FakeBIOS"
|
|
idrac-redfish = "ironic.drivers.modules.drac.bios:DracRedfishBIOS"
|
|
ilo = "ironic.drivers.modules.ilo.bios:IloBIOS"
|
|
irmc = "ironic.drivers.modules.irmc.bios:IRMCBIOS"
|
|
no-bios = "ironic.drivers.modules.noop:NoBIOS"
|
|
redfish = "ironic.drivers.modules.redfish.bios:RedfishBIOS"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.boot"]
|
|
fake = "ironic.drivers.modules.fake:FakeBoot"
|
|
idrac-redfish-virtual-media = "ironic.drivers.modules.drac.boot:DracRedfishVirtualMediaBoot"
|
|
ilo-pxe = "ironic.drivers.modules.ilo.boot:IloPXEBoot"
|
|
ilo-ipxe = "ironic.drivers.modules.ilo.boot:IloiPXEBoot"
|
|
ilo-virtual-media = "ironic.drivers.modules.ilo.boot:IloVirtualMediaBoot"
|
|
ilo-uefi-https = "ironic.drivers.modules.ilo.boot:IloUefiHttpsBoot"
|
|
ipxe = "ironic.drivers.modules.ipxe:iPXEBoot"
|
|
irmc-pxe = "ironic.drivers.modules.irmc.boot:IRMCPXEBoot"
|
|
irmc-virtual-media = "ironic.drivers.modules.irmc.boot:IRMCVirtualMediaBoot"
|
|
pxe = "ironic.drivers.modules.pxe:PXEBoot"
|
|
redfish-virtual-media = "ironic.drivers.modules.redfish.boot:RedfishVirtualMediaBoot"
|
|
redfish-https = "ironic.drivers.modules.redfish.boot:RedfishHttpsBoot"
|
|
http = "ironic.drivers.modules.pxe:HttpBoot"
|
|
http-ipxe = "ironic.drivers.modules.ipxe:iPXEHttpBoot"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.console"]
|
|
fake = "ironic.drivers.modules.fake:FakeConsole"
|
|
fake-graphical = "ironic.drivers.modules.fake:FakeGraphicalConsole"
|
|
ilo = "ironic.drivers.modules.ilo.console:IloConsoleInterface"
|
|
ipmitool-shellinabox = "ironic.drivers.modules.ipmitool:IPMIShellinaboxConsole"
|
|
ipmitool-socat = "ironic.drivers.modules.ipmitool:IPMISocatConsole"
|
|
no-console = "ironic.drivers.modules.noop:NoConsole"
|
|
redfish-graphical = "ironic.drivers.modules.redfish.graphical_console:RedfishGraphicalConsole"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.deploy"]
|
|
anaconda = "ironic.drivers.modules.pxe:PXEAnacondaDeploy"
|
|
ansible = "ironic.drivers.modules.ansible.deploy:AnsibleDeploy"
|
|
bootc = "ironic.drivers.modules.agent:BootcAgentDeploy"
|
|
custom-agent = "ironic.drivers.modules.agent:CustomAgentDeploy"
|
|
direct = "ironic.drivers.modules.agent:AgentDeploy"
|
|
fake = "ironic.drivers.modules.fake:FakeDeploy"
|
|
ramdisk = "ironic.drivers.modules.ramdisk:RamdiskDeploy"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.firmware"]
|
|
fake = "ironic.drivers.modules.fake:FakeFirmware"
|
|
no-firmware = "ironic.drivers.modules.noop:NoFirmware"
|
|
redfish = "ironic.drivers.modules.redfish.firmware:RedfishFirmware"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.inspect"]
|
|
agent = "ironic.drivers.modules.inspector:AgentInspect"
|
|
fake = "ironic.drivers.modules.fake:FakeInspect"
|
|
idrac-redfish = "ironic.drivers.modules.drac.inspect:DracRedfishInspect"
|
|
ilo = "ironic.drivers.modules.ilo.inspect:IloInspect"
|
|
inspector = "ironic.drivers.modules.inspector:Inspector"
|
|
irmc = "ironic.drivers.modules.irmc.inspect:IRMCInspect"
|
|
no-inspect = "ironic.drivers.modules.noop:NoInspect"
|
|
redfish = "ironic.drivers.modules.redfish.inspect:RedfishInspect"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.management"]
|
|
fake = "ironic.drivers.modules.fake:FakeManagement"
|
|
idrac-redfish = "ironic.drivers.modules.drac.management:DracRedfishManagement"
|
|
ilo = "ironic.drivers.modules.ilo.management:IloManagement"
|
|
ilo5 = "ironic.drivers.modules.ilo.management:Ilo5Management"
|
|
intel-ipmitool = "ironic.drivers.modules.intel_ipmi.management:IntelIPMIManagement"
|
|
ipmitool = "ironic.drivers.modules.ipmitool:IPMIManagement"
|
|
irmc = "ironic.drivers.modules.irmc.management:IRMCManagement"
|
|
noop = "ironic.drivers.modules.noop_mgmt:NoopManagement"
|
|
redfish = "ironic.drivers.modules.redfish.management:RedfishManagement"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.network"]
|
|
flat = "ironic.drivers.modules.network.flat:FlatNetwork"
|
|
neutron = "ironic.drivers.modules.network.neutron:NeutronNetwork"
|
|
noop = "ironic.drivers.modules.network.noop:NoopNetwork"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.power"]
|
|
agent = "ironic.drivers.modules.agent_power:AgentPower"
|
|
fake = "ironic.drivers.modules.fake:FakePower"
|
|
idrac-redfish = "ironic.drivers.modules.drac.power:DracRedfishPower"
|
|
ilo = "ironic.drivers.modules.ilo.power:IloPower"
|
|
ipmitool = "ironic.drivers.modules.ipmitool:IPMIPower"
|
|
irmc = "ironic.drivers.modules.irmc.power:IRMCPower"
|
|
redfish = "ironic.drivers.modules.redfish.power:RedfishPower"
|
|
snmp = "ironic.drivers.modules.snmp:SNMPPower"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.raid"]
|
|
agent = "ironic.drivers.modules.agent:AgentRAID"
|
|
fake = "ironic.drivers.modules.fake:FakeRAID"
|
|
idrac-redfish = "ironic.drivers.modules.drac.raid:DracRedfishRAID"
|
|
ilo5 = "ironic.drivers.modules.ilo.raid:Ilo5RAID"
|
|
irmc = "ironic.drivers.modules.irmc.raid:IRMCRAID"
|
|
no-raid = "ironic.drivers.modules.noop:NoRAID"
|
|
redfish = "ironic.drivers.modules.redfish.raid:RedfishRAID"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.rescue"]
|
|
agent = "ironic.drivers.modules.agent:AgentRescue"
|
|
fake = "ironic.drivers.modules.fake:FakeRescue"
|
|
no-rescue = "ironic.drivers.modules.noop:NoRescue"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.storage"]
|
|
fake = "ironic.drivers.modules.fake:FakeStorage"
|
|
noop = "ironic.drivers.modules.storage.noop:NoopStorage"
|
|
cinder = "ironic.drivers.modules.storage.cinder:CinderStorage"
|
|
external = "ironic.drivers.modules.storage.external:ExternalStorage"
|
|
|
|
[project.entry-points."ironic.hardware.interfaces.vendor"]
|
|
fake = "ironic.drivers.modules.fake:FakeVendorB"
|
|
idrac-redfish = "ironic.drivers.modules.drac.vendor_passthru:DracRedfishVendorPassthru"
|
|
ilo = "ironic.drivers.modules.ilo.vendor:VendorPassthru"
|
|
irmc = "ironic.drivers.modules.irmc.vendor:IRMCVendorPassthru"
|
|
ipmitool = "ironic.drivers.modules.ipmitool:VendorPassthru"
|
|
no-vendor = "ironic.drivers.modules.noop:NoVendor"
|
|
redfish = "ironic.drivers.modules.redfish.vendor:RedfishVendorPassthru"
|
|
|
|
[project.entry-points."ironic.hardware.types"]
|
|
fake-hardware = "ironic.drivers.fake_hardware:FakeHardware"
|
|
idrac = "ironic.drivers.drac:IDRACHardware"
|
|
ilo = "ironic.drivers.ilo:IloHardware"
|
|
ilo5 = "ironic.drivers.ilo:Ilo5Hardware"
|
|
intel-ipmi = "ironic.drivers.intel_ipmi:IntelIPMIHardware"
|
|
ipmi = "ironic.drivers.ipmi:IPMIHardware"
|
|
irmc = "ironic.drivers.irmc:IRMCHardware"
|
|
manual-management = "ironic.drivers.generic:ManualManagementHardware"
|
|
redfish = "ironic.drivers.redfish:RedfishHardware"
|
|
snmp = "ironic.drivers.snmp:SNMPHardware"
|
|
|
|
[project.entry-points."ironic.inspection.hooks"]
|
|
ramdisk-error = "ironic.drivers.modules.inspector.hooks.ramdisk_error:RamdiskErrorHook"
|
|
validate-interfaces = "ironic.drivers.modules.inspector.hooks.validate_interfaces:ValidateInterfacesHook"
|
|
ports = "ironic.drivers.modules.inspector.hooks.ports:PortsHook"
|
|
architecture = "ironic.drivers.modules.inspector.hooks.architecture:ArchitectureHook"
|
|
accelerators = " ironic.drivers.modules.inspector.hooks.accelerators:AcceleratorsHook"
|
|
boot-mode = "ironic.drivers.modules.inspector.hooks.boot_mode:BootModeHook"
|
|
cpu-capabilities = "ironic.drivers.modules.inspector.hooks.cpu_capabilities:CPUCapabilitiesHook"
|
|
extra-hardware = "ironic.drivers.modules.inspector.hooks.extra_hardware:ExtraHardwareHook"
|
|
memory = "ironic.drivers.modules.inspector.hooks.memory:MemoryHook"
|
|
pci-devices = "ironic.drivers.modules.inspector.hooks.pci_devices:PciDevicesHook"
|
|
physical-network = "ironic.drivers.modules.inspector.hooks.physical_network:PhysicalNetworkHook"
|
|
raid-device = "ironic.drivers.modules.inspector.hooks.raid_device:RaidDeviceHook"
|
|
root-device = "ironic.drivers.modules.inspector.hooks.root_device:RootDeviceHook"
|
|
local-link-connection = "ironic.drivers.modules.inspector.hooks.local_link_connection:LocalLinkConnectionHook"
|
|
parse-lldp = "ironic.drivers.modules.inspector.hooks.parse_lldp:ParseLLDPHook"
|
|
|
|
[project.entry-points."oslo.config.opts"]
|
|
ironic = "ironic.conf.opts:list_opts"
|
|
|
|
[project.entry-points."oslo.config.opts.defaults"]
|
|
ironic = "ironic.conf.opts:update_opt_defaults"
|
|
|
|
[project.entry-points."oslo.policy.enforcer"]
|
|
ironic = "ironic.common.policy:get_oslo_policy_enforcer"
|
|
|
|
[project.entry-points."oslo.policy.policies"]
|
|
"ironic.api" = "ironic.common.policy:list_policies"
|
|
|
|
[project.scripts]
|
|
ironic = "ironic.command.singleprocess:main"
|
|
ironic-api = "ironic.command.api:main"
|
|
ironic-dbsync = "ironic.command.dbsync:main"
|
|
ironic-conductor = "ironic.command.conductor:main"
|
|
ironic-novncproxy = "ironic.command.novncproxy:main"
|
|
ironic-status = "ironic.command.status:main"
|
|
ironic-pxe-filter = "ironic.command.pxe_filter:main"
|
|
|
|
[project.optional-dependencies]
|
|
guru_meditation_reports = [
|
|
"oslo.reports>=1.18.0", # Apache-2.0
|
|
]
|
|
i18n = [
|
|
"oslo.i18n>=3.20.0", # Apache-2.0
|
|
]
|
|
devstack = [
|
|
"virtualbmc>=1.4.0", # Apache-2.0
|
|
]
|
|
|
|
[tool.codespell]
|
|
quiet-level = 4
|
|
# Words to ignore:
|
|
# selectin: arg string
|
|
# exept: variable
|
|
# taks: decorator variable
|
|
# ser: short for serialize
|
|
# CNA: Computer Network Administrator
|
|
# MyRAID: class name
|
|
# assertIn: used in unit testing
|
|
# checkin: variable
|
|
# authenticatin: misspelled in the real-world output data we use as a test fixture
|
|
# burnin: documentation referencing actual method name
|
|
ignore-words-list = "selectin,exept,taks,ser,wit,cna,myraid,dum,assertin,checkin,authenticatin,burnin"
|
|
skip = "AUTHORS,ChangeLog,*.pyc,*.inv,*.svg,*.png,*.sample,./doc/build/*,./api-ref/build/*,./releasenotes/build/*,./api-ref/build/*,./build/*"
|
|
|
|
[tool.setuptools]
|
|
packages = [
|
|
"ironic"
|
|
]
|
|
|
|
[tool.setuptools.data-files]
|
|
"share/ironic/vnc-container" = [
|
|
"tools/vnc-container/Containerfile",
|
|
"tools/vnc-container/README.rst",
|
|
]
|
|
"share/ironic/vnc-container/bin" = [
|
|
"tools/vnc-container/bin/*",
|
|
]
|
|
"share/ironic/vnc-container/drivers/fake/" = [
|
|
"tools/vnc-container/drivers/fake/*",
|
|
]
|
|
|
|
[tool.doc8]
|
|
ignore = ["D001"]
|
|
|
|
[tool.ruff]
|
|
line-length = 79
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"E", # pycodestyle (error)
|
|
"F", # pyflakes
|
|
"G", # flake8-logging-format
|
|
"LOG", # flake8-logging
|
|
]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"ironic/tests/**/*.py" = [
|
|
"E402", # module-import-not-at-top-of-file
|
|
]
|
|
"ironic/drivers/modules/drac/raid.py" = [
|
|
"G003", # Logging statement uses `+`
|
|
]
|