Skip to content

Commit 92f1e22

Browse files
authored
Merge pull request #203 from stackhpc/upstream/yoga-2025-03-10
Synchronise yoga with upstream
2 parents 60adf9f + 2069490 commit 92f1e22

File tree

2 files changed

+2
-43
lines changed

2 files changed

+2
-43
lines changed

neutron/agent/l3/ha.py

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@
1717
import threading
1818

1919
import eventlet
20-
from neutron_lib.callbacks import events
21-
from neutron_lib.callbacks import registry
22-
from neutron_lib.callbacks import resources
2320
from neutron_lib import constants
2421
from oslo_log import log as logging
2522
from oslo_utils import fileutils
@@ -79,7 +76,6 @@ def run(self):
7976
server.wait()
8077

8178

82-
@registry.has_registry_receivers
8379
class AgentMixin(object):
8480
def __init__(self, host):
8581
self._init_ha_conf_path()
@@ -91,13 +87,6 @@ def __init__(self, host):
9187
eventlet.spawn(self._start_keepalived_notifications_server)
9288
self._transition_states = {}
9389
self._transition_state_mutex = threading.Lock()
94-
self._initial_state_change_per_router = set()
95-
96-
def initial_state_change(self, router_id):
97-
initial_state = router_id not in self._initial_state_change_per_router
98-
if initial_state:
99-
self._initial_state_change_per_router.add(router_id)
100-
return initial_state
10190

10291
def _get_router_info(self, router_id):
10392
try:
@@ -106,13 +95,6 @@ def _get_router_info(self, router_id):
10695
LOG.info('Router %s is not managed by this agent. It was '
10796
'possibly deleted concurrently.', router_id)
10897

109-
@registry.receives(resources.ROUTER, [events.AFTER_DELETE])
110-
def _delete_router(self, resource, event, trigger, payload):
111-
try:
112-
self._initial_state_change_per_router.remove(payload.resource_id)
113-
except KeyError:
114-
pass
115-
11698
def check_ha_state_for_router(self, router_id, current_state):
11799
ri = self._get_router_info(router_id)
118100
if not ri:
@@ -166,7 +148,7 @@ def enqueue_state_change(self, router_id, state):
166148

167149
def _enqueue_state_change(self, router_id, state):
168150
# NOTE(ralonsoh): move 'primary' and 'backup' constants to n-lib
169-
if state == 'primary' and not self.initial_state_change(router_id):
151+
if state == 'primary':
170152
eventlet.sleep(self.conf.ha_vrrp_advert_int)
171153
transition_state = self._update_transition_state(router_id)
172154
if transition_state != state:

neutron/tests/unit/agent/l3/test_agent.py

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -269,15 +269,7 @@ def test_enqueue_state_change_from_none_to_backup(self):
269269
self._enqueue_state_change_transitions(['backup'], 1)
270270

271271
def test_enqueue_state_change_from_none_to_primary_to_backup(self):
272-
# First transition (to primary), won't have a delay.
273-
self._enqueue_state_change_transitions(['primary', 'backup'], 2)
274-
275-
def test_enqueue_state_change_from_none_to_primary_to_backup_twice(self):
276-
# Second transition to primary will have a delay and will be overridden
277-
# by the second transition to backup; that means the transition from
278-
# backup (second state) to primary (third state) is dismissed.
279-
self._enqueue_state_change_transitions(
280-
['primary', 'backup', 'primary', 'backup'], 2)
272+
self._enqueue_state_change_transitions(['primary', 'backup'], 0)
281273

282274
def test_enqueue_state_change_from_none_to_backup_to_primary(self):
283275
self._enqueue_state_change_transitions(['backup', 'primary'], 2)
@@ -2577,21 +2569,6 @@ def test_removed_from_agent(self):
25772569
agent.router_removed_from_agent(None, {'router_id': FAKE_ID})
25782570
self.assertEqual(1, agent._queue.add.call_count)
25792571

2580-
@mock.patch.object(metadata_driver.MetadataDriver,
2581-
'destroy_monitored_metadata_proxy')
2582-
def test__router_removed(self, *args):
2583-
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
2584-
ri = mock.Mock(router={'id': 'router_id'})
2585-
agent._initial_state_change_per_router.add('router_id')
2586-
self.assertEqual({'router_id'}, agent._initial_state_change_per_router)
2587-
for _ in range(2):
2588-
# The second call will trigger a KeyError exception in
2589-
# AgentMixin._delete_router that should be dismissed.
2590-
agent.router_info['router_id'] = mock.ANY
2591-
agent.pd = mock.Mock(routers={'router_id': {'subnets': []}})
2592-
agent._router_removed(ri, 'router_id')
2593-
self.assertEqual(set([]), agent._initial_state_change_per_router)
2594-
25952572
def test_added_to_agent(self):
25962573
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
25972574
agent._queue = mock.Mock()

0 commit comments

Comments
 (0)