Skip to content

Commit e25d220

Browse files
authored
Merge pull request #202 from stackhpc/upstream/2023.1-2025-03-10
Synchronise 2023.1 with upstream
2 parents 06384e3 + e9e40a9 commit e25d220

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
@@ -273,15 +273,7 @@ def test_enqueue_state_change_from_none_to_backup(self):
273273
self._enqueue_state_change_transitions(['backup'], 1)
274274

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

286278
def test_enqueue_state_change_from_none_to_backup_to_primary(self):
287279
self._enqueue_state_change_transitions(['backup', 'primary'], 2)
@@ -2582,21 +2574,6 @@ def test_removed_from_agent(self):
25822574
agent.router_removed_from_agent(None, {'router_id': FAKE_ID})
25832575
self.assertEqual(1, agent._queue.add.call_count)
25842576

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

0 commit comments

Comments
 (0)