[eventlet-removal] Use non-eventlet metadata proxy in OVN metadata agent

The new metadata proxy server implementation, used in the OVN agent, is
now used in the OVN metadata agent.

The same limitation applies: it is only possible to create a server inside
a thread, running in the same process (same as with metadata_workers=0).
The configuration variable metadata_workers no longer applies.

Closes-Bug: #2087941
Change-Id: If5d74d6e21a22e4f4dbed27ed9be828adad857e8
This commit is contained in:
Rodolfo Alonso Hernandez
2025-01-03 11:19:39 +00:00
parent 8c479abcbb
commit 1dabdf118d
7 changed files with 23 additions and 4 deletions

View File

@@ -64,6 +64,16 @@ This implementation does not rely on ``neutron.api.wsgi.Server`` nor
implementations will enable again this configuration variable.
OVN metadata agent
------------------
Metadata proxy
~~~~~~~~~~~~~~
The OVN metadata agent uses the same implementation as the OVN agent. The same
limitations apply.
Neutron API
-----------

View File

@@ -34,7 +34,7 @@ from neutron.agent.linux import iptables_manager
from neutron.agent.ovn.agent import ovn_neutron_agent
from neutron.agent.ovn.metadata import driver as metadata_driver
from neutron.agent.ovn.metadata import ovsdb
from neutron.agent.ovn.metadata import server as metadata_server
from neutron.agent.ovn.metadata import server_socket as metadata_server
from neutron.common.ovn import constants as ovn_const
from neutron.common.ovn import utils as ovn_utils
from neutron.common import utils

View File

@@ -27,7 +27,7 @@ import testtools
from neutron.agent.linux import iptables_manager
from neutron.agent.ovn.metadata import agent
from neutron.agent.ovn.metadata import ovsdb
from neutron.agent.ovn.metadata import server as metadata_server
from neutron.agent.ovn.metadata import server_socket as metadata_server
from neutron.common.ovn import constants as ovn_const
from neutron.common import utils as n_utils
from neutron.conf.agent.metadata import config as meta_config
@@ -453,7 +453,7 @@ class TestMetadataAgent(base.TestOVNFunctionalBase):
def test_metadata_proxy_handler_idl(self):
# This test relies on the configuration option metadata_workers=0
proxy_sb_idl = self.agent._proxy.server._server._application.sb_idl
proxy_sb_idl = metadata_server.MetadataProxyHandler._sb_idl
agent_sb_idl = self.agent.sb_idl
self.assertEqual(agent_sb_idl, proxy_sb_idl)

View File

@@ -56,7 +56,7 @@ console_scripts =
neutron-status = neutron.cmd.status:main
neutron-ovn-agent = neutron.cmd.agents.ovn_neutron_agent:main
neutron-ovn-maintenance-worker = neutron.cmd.eventlet.server:main_ovn_maintenance_eventlet
neutron-ovn-metadata-agent = neutron.cmd.eventlet.agents.ovn_metadata:main
neutron-ovn-metadata-agent = neutron.cmd.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

View File

@@ -247,3 +247,11 @@
$NEUTRON_CONF:
SECURITYGROUP:
enable_ipset: false # Not compatible with nftables
- job:
name: neutron-tempest-plugin-ovn-with-ovn-metadata-agent
parent: neutron-tempest-plugin-ovn
vars:
devstack_services:
q-ovn-metadata-agent: true
q-ovn-agent: false

View File

@@ -129,6 +129,7 @@
- neutron-functional-with-oslo-master
- neutron-ovs-tempest-with-oslo-master
- neutron-ovn-tempest-ovs-release-with-oslo-master
- neutron-tempest-plugin-ovn-with-ovn-metadata-agent
experimental:
jobs: *neutron-periodic-jobs