neutron/setup.cfg
Rodolfo Alonso Hernandez fe31f4fe02 [OVN] Implement OVN agent metadata extension
This patch is implementing the OVN agent metadata extension, by reusing
the OVN metadata class. The class ``MetadataAgent`` is inherited in the
``MetadataExtension`` class. The goal is to use the same code in both
implementations (until the OVN metadata agent is deprecated).

The OVN agent metadata extension has a different initialization
process. The OVN and OVS IDL connections are created during the
extension initialization but are not accessible. The ``start`` method
is used to load the configuration, execute the sync process and
register the metadata extension.

This extension will replace the need of the OVN metadata agent. The
deprecation of this agent will imply the refactor of the existing code
that now is shared between both agents.

This new OVN agent will be tested in the "neutron-tempest-plugin-ovn"
CI job, after the change done in the following patch.

Needed-By: https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/909860

Partial-Bug: #2017871
Change-Id: I4381a67648a9b6198a8d936db784964d74dc87a1
2024-03-05 16:44:34 +00:00

296 lines
18 KiB
INI

[metadata]
name = neutron
summary = OpenStack Networking
description_file =
README.rst
author = OpenStack
author_email = openstack-discuss@lists.openstack.org
home_page = https://docs.openstack.org/neutron/latest/
python_requires = >=3.8
classifier =
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
[files]
packages =
neutron
data_files =
etc/neutron =
etc/api-paste.ini
etc/rootwrap.conf
etc/neutron/rootwrap.d = etc/neutron/rootwrap.d/*
share/ansible/neutron-ovn-migration/playbooks = tools/ovn_migration/tripleo_environment/playbooks/*
scripts =
tools/ovn_migration/tripleo_environment/ovn_migration.sh
[entry_points]
wsgi_scripts =
neutron-api = neutron.cmd.eventlet.server:main_api_eventlet
console_scripts =
neutron-db-manage = neutron.db.migration.cli:main
neutron-dhcp-agent = neutron.cmd.eventlet.agents.dhcp:main
neutron-keepalived-state-change = neutron.cmd.keepalived_state_change:main
neutron-ipset-cleanup = neutron.cmd.ipset_cleanup:main
neutron-l3-agent = neutron.cmd.eventlet.agents.l3:main
neutron-linuxbridge-agent = neutron.cmd.eventlet.plugins.linuxbridge_neutron_agent:main
neutron-linuxbridge-cleanup = neutron.cmd.linuxbridge_cleanup:main
neutron-macvtap-agent = neutron.cmd.eventlet.plugins.macvtap_neutron_agent:main
neutron-metadata-agent = neutron.cmd.eventlet.agents.metadata:main
neutron-netns-cleanup = neutron.cmd.netns_cleanup:main
neutron-openvswitch-agent = neutron.cmd.eventlet.plugins.ovs_neutron_agent:main
neutron-ovs-cleanup = neutron.cmd.ovs_cleanup:main
neutron-pd-notify = neutron.cmd.pd_notify:main
neutron-server = neutron.cmd.eventlet.server:main
neutron-rpc-server = neutron.cmd.eventlet.server:main_rpc_eventlet
neutron-rootwrap = oslo_rootwrap.cmd:main
neutron-rootwrap-daemon = oslo_rootwrap.cmd:daemon
neutron-usage-audit = neutron.cmd.eventlet.usage_audit:main
neutron-metering-agent = neutron.cmd.eventlet.services.metering_agent:main
neutron-sriov-nic-agent = neutron.cmd.eventlet.plugins.sriov_nic_neutron_agent:main
neutron-sanity-check = neutron.cmd.sanity_check:main
neutron-status = neutron.cmd.status:main
neutron-ovn-agent = neutron.cmd.eventlet.agents.ovn_neutron_agent:main
neutron-ovn-metadata-agent = neutron.cmd.eventlet.agents.ovn_metadata:main
neutron-ovn-migration-mtu = neutron.cmd.ovn.migration_mtu:main
neutron-ovn-db-sync-util = neutron.cmd.ovn.neutron_ovn_db_sync_util:main
neutron-sanitize-port-binding-profile-allocation = neutron.cmd.sanitize_port_binding_profile_allocation:main
neutron-sanitize-port-mac-addresses = neutron.cmd.sanitize_port_mac_addresses:main
neutron-remove-duplicated-port-bindings = neutron.cmd.remove_duplicated_port_bindings:main
ml2ovn-trace = neutron.cmd.ovn.ml2ovn_trace:main
neutron.core_plugins =
ml2 = neutron.plugins.ml2.plugin:Ml2Plugin
neutron.service_plugins =
dummy = neutron.tests.unit.dummy_plugin:DummyServicePlugin
router = neutron.services.l3_router.l3_router_plugin:L3RouterPlugin
metering = neutron.services.metering.metering_plugin:MeteringPlugin
qos = neutron.services.qos.qos_plugin:QoSPlugin
tag = neutron.services.tag.tag_plugin:TagPlugin
flavors = neutron.services.flavors.flavors_plugin:FlavorsPlugin
auto_allocate = neutron.services.auto_allocate.plugin:Plugin
segments = neutron.services.segments.plugin:Plugin
network_ip_availability = neutron.services.network_ip_availability.plugin:NetworkIPAvailabilityPlugin
network_segment_range = neutron.services.network_segment_range.plugin:NetworkSegmentRangePlugin
revisions = neutron.services.revisions.revision_plugin:RevisionPlugin
timestamp = neutron.services.timestamp.timestamp_plugin:TimeStampPlugin
trunk = neutron.services.trunk.plugin:TrunkPlugin
loki = neutron.services.loki.loki_plugin:LokiPlugin
log = neutron.services.logapi.logging_plugin:LoggingPlugin
port_forwarding = neutron.services.portforwarding.pf_plugin:PortForwardingPlugin
placement = neutron.services.placement_report.plugin:PlacementReportPlugin
conntrack_helper = neutron.services.conntrack_helper.plugin:Plugin
ovn-router = neutron.services.ovn_l3.plugin:OVNL3RouterPlugin
local_ip = neutron.services.local_ip.local_ip_plugin:LocalIPPlugin
ndp_proxy = neutron.services.ndp_proxy.plugin:NDPProxyPlugin
neutron.ml2.type_drivers =
flat = neutron.plugins.ml2.drivers.type_flat:FlatTypeDriver
local = neutron.plugins.ml2.drivers.type_local:LocalTypeDriver
vlan = neutron.plugins.ml2.drivers.type_vlan:VlanTypeDriver
geneve = neutron.plugins.ml2.drivers.type_geneve:GeneveTypeDriver
gre = neutron.plugins.ml2.drivers.type_gre:GreTypeDriver
vxlan = neutron.plugins.ml2.drivers.type_vxlan:VxlanTypeDriver
neutron.ml2.mechanism_drivers =
logger = neutron.tests.unit.plugins.ml2.drivers.mechanism_logger:LoggerMechanismDriver
test = neutron.tests.unit.plugins.ml2.drivers.mechanism_test:TestMechanismDriver
test_with_agent = neutron.tests.unit.plugins.ml2.drivers.mechanism_test:TestMechanismDriverWithAgent
linuxbridge = neutron.plugins.ml2.drivers.linuxbridge.mech_driver.mech_linuxbridge:LinuxbridgeMechanismDriver
macvtap = neutron.plugins.ml2.drivers.macvtap.mech_driver.mech_macvtap:MacvtapMechanismDriver
openvswitch = neutron.plugins.ml2.drivers.openvswitch.mech_driver.mech_openvswitch:OpenvswitchMechanismDriver
l2population = neutron.plugins.ml2.drivers.l2pop.mech_driver:L2populationMechanismDriver
sriovnicswitch = neutron.plugins.ml2.drivers.mech_sriov.mech_driver.mech_driver:SriovNicSwitchMechanismDriver
ovn = neutron.plugins.ml2.drivers.ovn.mech_driver.mech_driver:OVNMechanismDriver
ovn-sync = neutron.cmd.ovn.neutron_ovn_db_sync_util:OVNMechanismDriver
fake_agent = neutron.tests.unit.plugins.ml2.drivers.mech_fake_agent:FakeAgentMechanismDriver
fake_agent_l3 = neutron.tests.unit.plugins.ml2.drivers.mech_fake_agent:FakeAgentMechanismDriverL3
another_fake_agent = neutron.tests.unit.plugins.ml2.drivers.mech_fake_agent:AnotherFakeAgentMechanismDriver
faulty_agent = neutron.tests.unit.plugins.ml2.drivers.mech_faulty_agent:FaultyAgentMechanismDriver
neutron.ml2.extension_drivers =
test = neutron.tests.unit.plugins.ml2.drivers.ext_test:TestExtensionDriver
testdb = neutron.tests.unit.plugins.ml2.drivers.ext_test:TestDBExtensionDriver
port_security = neutron.plugins.ml2.extensions.port_security:PortSecurityExtensionDriver
qos = neutron.plugins.ml2.extensions.qos:QosExtensionDriver
dns = neutron.plugins.ml2.extensions.dns_integration:DNSExtensionDriverML2
data_plane_status = neutron.plugins.ml2.extensions.data_plane_status:DataPlaneStatusExtensionDriver
dns_domain_ports = neutron.plugins.ml2.extensions.dns_integration:DNSDomainPortsExtensionDriver
port_device_profile = neutron.plugins.ml2.extensions.port_device_profile:PortDeviceProfileExtensionDriver
port_hardware_offload_type = neutron.plugins.ml2.extensions.port_hardware_offload_type:PortHardwareOffloadTypeExtensionDriver
port_numa_affinity_policy = neutron.plugins.ml2.extensions.port_numa_affinity_policy:PortNumaAffinityPolicyExtensionDriver
uplink_status_propagation = neutron.plugins.ml2.extensions.uplink_status_propagation:UplinkStatusPropagationExtensionDriver
tag_ports_during_bulk_creation = neutron.plugins.ml2.extensions.tag_ports_during_bulk_creation:TagPortsDuringBulkCreationExtensionDriver
subnet_dns_publish_fixed_ip = neutron.plugins.ml2.extensions.subnet_dns_publish_fixed_ip:SubnetDNSPublishFixedIPExtensionDriver
dns_domain_keywords = neutron.plugins.ml2.extensions.dns_domain_keywords:DnsDomainKeywordsExtensionDriver
port_hints = neutron.plugins.ml2.extensions.port_hints:PortHintsExtensionDriver
port_hint_ovs_tx_steering = neutron.plugins.ml2.extensions.port_hint_ovs_tx_steering:PortHintOvsTxSteeringExtensionDriver
neutron.ipam_drivers =
fake = neutron.tests.unit.ipam.fake_driver:FakeDriver
internal = neutron.ipam.drivers.neutrondb_ipam.driver:NeutronDbPool
neutron.agent.l2.extensions =
qos = neutron.agent.l2.extensions.qos:QosAgentExtension
fdb = neutron.agent.l2.extensions.fdb_population:FdbPopulationAgentExtension
log = neutron.services.logapi.agent.log_extension:LoggingExtension
dhcp = neutron.agent.l2.extensions.dhcp.extension:DHCPAgentExtension
local_ip = neutron.agent.l2.extensions.local_ip:LocalIPAgentExtension
neutron.agent.l3.extensions =
fip_qos = neutron.agent.l3.extensions.qos.fip:FipQosAgentExtension
gateway_ip_qos = neutron.agent.l3.extensions.qos.gateway_ip:RouterGatewayIPQosAgentExtension
port_forwarding = neutron.agent.l3.extensions.port_forwarding:PortForwardingAgentExtension
snat_log = neutron.agent.l3.extensions.snat_log:SNATLoggingExtension
conntrack_helper = neutron.agent.l3.extensions.conntrack_helper:ConntrackHelperAgentExtension
ndp_proxy = neutron.agent.l3.extensions.ndp_proxy:NDPProxyAgentExtension
neutron.agent.ovn.extensions =
metadata = neutron.agent.ovn.extensions.metadata:MetadataExtension
qos_hwol = neutron.agent.ovn.extensions.qos_hwol:QoSHardwareOffloadExtension
noop = neutron.agent.ovn.extensions.noop:NoopOVNAgentExtension
testing = neutron.tests.functional.agent.ovn.agent.fake_ovn_agent_extension:FakeOVNAgentExtension
neutron.services.logapi.drivers =
ovs = neutron.services.logapi.drivers.openvswitch.ovs_firewall_log:OVSFirewallLoggingDriver
neutron.qos.agent_drivers =
ovs = neutron.plugins.ml2.drivers.openvswitch.agent.extension_drivers.qos_driver:QosOVSAgentDriver
sriov = neutron.plugins.ml2.drivers.mech_sriov.agent.extension_drivers.qos_driver:QosSRIOVAgentDriver
linuxbridge = neutron.plugins.ml2.drivers.linuxbridge.agent.extension_drivers.qos_driver:QosLinuxbridgeAgentDriver
neutron.agent.linux.pd_drivers =
dibbler = neutron.agent.linux.dibbler:PDDibbler
neutron.services.external_dns_drivers =
designate = neutron.services.externaldns.drivers.designate.driver:Designate
oslo.config.opts =
designate.auth = neutron.opts:list_designate_auth_opts
ironic.auth = neutron.opts:list_ironic_auth_opts
neutron = neutron.opts:list_opts
neutron.agent = neutron.opts:list_agent_opts
neutron.az.agent = neutron.opts:list_az_agent_opts
neutron.base.agent = neutron.opts:list_base_agent_opts
neutron.db = neutron.opts:list_db_opts
neutron.dhcp.agent = neutron.opts:list_dhcp_agent_opts
neutron.experimental = neutron.opts:list_experimental_opts
neutron.extensions = neutron.opts:list_extension_opts
neutron.l3.agent = neutron.opts:list_l3_agent_opts
neutron.metadata.agent = neutron.opts:list_metadata_agent_opts
neutron.metering.agent = neutron.opts:list_metering_agent_opts
neutron.ml2 = neutron.opts:list_ml2_conf_opts
neutron.ml2.linuxbridge.agent = neutron.opts:list_linux_bridge_opts
neutron.ml2.macvtap.agent = neutron.opts:list_macvtap_opts
neutron.ml2.ovn = neutron.conf.plugins.ml2.drivers.ovn.ovn_conf:list_opts
neutron.ml2.ovs.agent = neutron.opts:list_ovs_opts
neutron.ml2.sriov.agent = neutron.opts:list_sriov_agent_opts
neutron.ml2.ovn.agent = neutron.conf.agent.ovn.ovn_neutron_agent.config:list_ovn_neutron_agent_opts
neutron.ovn.metadata.agent = neutron.conf.agent.ovn.metadata.config:list_metadata_agent_opts
nova.auth = neutron.opts:list_nova_auth_opts
placement.auth = neutron.opts:list_placement_auth_opts
oslo.config.opts.defaults =
neutron = neutron.common.config:set_config_defaults
oslo.policy.enforcer =
neutron = neutron.policy:get_enforcer
oslo.policy.policies =
neutron = neutron.conf.policies:list_rules
neutron.policies =
neutron = neutron.conf.policies:list_rules
neutron.db.alembic_migrations =
neutron = neutron.db.migration:alembic_migrations
neutron.interface_drivers =
linuxbridge = neutron.agent.linux.interface:BridgeInterfaceDriver
null = neutron.agent.linux.interface:NullDriver
openvswitch = neutron.agent.linux.interface:OVSInterfaceDriver
neutron.agent.firewall_drivers =
noop = neutron.agent.firewall:NoopFirewallDriver
iptables = neutron.agent.linux.iptables_firewall:IptablesFirewallDriver
iptables_hybrid = neutron.agent.linux.iptables_firewall:OVSHybridIptablesFirewallDriver
openvswitch = neutron.agent.linux.openvswitch_firewall:OVSFirewallDriver
neutron.services.metering_drivers =
noop = neutron.services.metering.drivers.noop.noop_driver:NoopMeteringDriver
iptables = neutron.services.metering.drivers.iptables.iptables_driver:IptablesMeteringDriver
neutron.objects =
AddressScope = neutron.objects.address_scope:AddressScope
AllowedAddressPair = neutron.objects.port.extensions.allowedaddresspairs:AllowedAddressPair
Agent = neutron.objects.agent:Agent
AutoAllocatedTopology = neutron.objects.auto_allocate:AutoAllocatedTopology
ConntrackHelper = neutron.objects.conntrack_helper:ConntrackHelper
PortDataPlaneStatus = neutron.objects.port.extensions.data_plane_status:PortDataPlaneStatus
DefaultSecurityGroup = neutron.objects.securitygroup:DefaultSecurityGroup
DistributedPortBinding = neutron.objects.ports:DistributedPortBinding
DNSNameServer = neutron.objects.subnet:DNSNameServer
DVRMacAddress = neutron.objects.router:DVRMacAddress
ExternalNetwork = neutron.objects.network:ExternalNetwork
ExtraDhcpOpt = neutron.objects.port.extensions.extra_dhcp_opt:ExtraDhcpOpt
Flavor = neutron.objects.flavor:Flavor
FlavorServiceProfileBinding = neutron.objects.flavor:FlavorServiceProfileBinding
FloatingIP = neutron.objects.router:FloatingIP
FloatingIPDNS = neutron.objects.floatingip:FloatingIPDNS
IPAllocation = neutron.objects.ports:IPAllocation
IPAllocationPool = neutron.objects.subnet:IPAllocationPool
IpamAllocation = neutron.objects.ipam:IpamAllocation
IpamAllocationPool = neutron.objects.ipam:IpamAllocationPool
IpamSubnet = neutron.objects.ipam:IpamSubnet
Log = neutron.objects.logapi.logging_resource:Log
LocalIP = neutron.objects.local_ip:LocalIP
LocalIPAssociation = neutron.objects.local_ip:LocalIPAssociation
L3HARouterAgentPortBinding = neutron.objects.l3_hamode:L3HARouterAgentPortBinding
L3HARouterNetwork = neutron.objects.l3_hamode:L3HARouterNetwork
L3HARouterVRIdAllocation = neutron.objects.l3_hamode:L3HARouterVRIdAllocation
MeteringLabel = neutron.objects.metering:MeteringLabel
MeteringLabelRule = neutron.objects.metering:MeteringLabelRule
NDPProxy = neutron.objects.ndp_proxy:NDPProxy
Network = neutron.objects.network:Network
NetworkDNSDomain = neutron.objects.network:NetworkDNSDomain
NetworkDhcpAgentBinding = neutron.objects.network:NetworkDhcpAgentBinding
NetworkPortSecurity = neutron.objects.network:NetworkPortSecurity
NetworkRBAC = neutron.objects.network:NetworkRBAC
NetworkSegment = neutron.objects.network:NetworkSegment
NetworkSegmentRange = neutron.objects.network_segment_range:NetworkSegmentRange
Port = neutron.objects.ports:Port
PortBinding = neutron.objects.ports:PortBinding
PortBindingLevel = neutron.objects.ports:PortBindingLevel
PortDNS = neutron.objects.ports:PortDNS
PortForwarding = neutron.objects.port_forwarding:PortForwarding
PortSecurity = neutron.objects.port.extensions.port_security:PortSecurity
ProviderResourceAssociation = neutron.objects.servicetype:ProviderResourceAssociation
ProvisioningBlock = neutron.objects.provisioning_blocks:ProvisioningBlock
QosBandwidthLimitRule = neutron.objects.qos.rule:QosBandwidthLimitRule
QosDscpMarkingRule = neutron.objects.qos.rule:QosDscpMarkingRule
QosMinimumBandwidthRule = neutron.objects.qos.rule:QosMinimumBandwidthRule
QosMinimumPacketRateRule = neutron.objects.qos.rule:QosMinimumPacketRateRule
QosPacketRateLimitRule = neutron.objects.qos.rule:QosPacketRateLimitRule
QosPolicy = neutron.objects.qos.policy:QosPolicy
QosPolicyDefault = neutron.objects.qos.policy:QosPolicyDefault
QosPolicyFloatingIPBinding = neutron.objects.qos.binding:QosPolicyFloatingIPBinding
QosPolicyNetworkBinding = neutron.objects.qos.binding:QosPolicyNetworkBinding
QosPolicyPortBinding = neutron.objects.qos.binding:QosPolicyPortBinding
QosPolicyRBAC = neutron.objects.qos.policy:QosPolicyRBAC
QosPolicyRouterGatewayIPBinding = neutron.objects.qos.binding:QosPolicyRouterGatewayIPBinding
QosRule = neutron.objects.qos.rule:QosRule
QosRuleType = neutron.objects.qos.rule_type:QosRuleType
QosRuleTypeDriver = neutron.objects.qos.rule_type:QosRuleTypeDriver
Quota = neutron.objects.quota:Quota
QuotaUsage = neutron.objects.quota:QuotaUsage
Reservation = neutron.objects.quota:Reservation
ResourceDelta = neutron.objects.quota:ResourceDelta
Route = neutron.objects.subnet:Route
Router = neutron.objects.router:Router
RouterExtraAttributes = neutron.objects.router:RouterExtraAttributes
RouterL3AgentBinding = neutron.objects.l3agent:RouterL3AgentBinding
RouterNDPProxyState = neutron.objects.ndp_proxy:RouterNDPProxyState
RouterPort = neutron.objects.router:RouterPort
RouterRoute = neutron.objects.router:RouterRoute
SecurityGroup = neutron.objects.securitygroup:SecurityGroup
SecurityGroupPortBinding = neutron.objects.ports:SecurityGroupPortBinding
SecurityGroupRule = neutron.objects.securitygroup:SecurityGroupRule
SegmentHostMapping = neutron.objects.network:SegmentHostMapping
ServiceProfile = neutron.objects.flavor:ServiceProfile
StandardAttribute = neutron.objects.stdattrs:StandardAttribute
Subnet = neutron.objects.subnet:Subnet
SubnetPool = neutron.objects.subnetpool:SubnetPool
SubnetPoolPrefix = neutron.objects.subnetpool:SubnetPoolPrefix
SubPort = neutron.objects.trunk:SubPort
SubnetServiceType = neutron.objects.subnet:SubnetServiceType
Tag = neutron.objects.tag:Tag
Trunk = neutron.objects.trunk:Trunk
neutron.status.upgrade.checks =
neutron = neutron.cmd.upgrade_checks.checks:CoreChecks