Skip to content

Commit d683804

Browse files
Miguel Lavalleralonsoh
authored andcommitted
Check unspecified flavor in user defined driver
In order to decide whether to process a router related request, the user defined router flavor OVN driver needs to check the flavor_id specified in the request. This change adds the code to test the case when the API passed the flavor_id as unspecified. Change-Id: I4d7d9d5582b97246cad63ef7f5511b159d6c6791 Closes-Bug: #2059051 (cherry picked from commit 9d729bd)
1 parent 0eccc52 commit d683804

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

neutron/services/ovn_l3/service_providers/user_defined.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from neutron_lib.callbacks import events
1717
from neutron_lib.callbacks import registry
1818
from neutron_lib.callbacks import resources
19+
from neutron_lib import constants as const
1920
from neutron_lib.plugins import constants as plugin_constants
2021
from neutron_lib.plugins import directory
2122
from oslo_log import log as logging
@@ -44,7 +45,7 @@ def _flavor_plugin(self):
4445

4546
def _is_user_defined_provider(self, context, router):
4647
flavor_id = router.get('flavor_id')
47-
if flavor_id is None:
48+
if flavor_id is None or flavor_id is const.ATTR_NOT_SPECIFIED:
4849
return False
4950
flavor = self._flavor_plugin.get_flavor(context, flavor_id)
5051
provider = self._flavor_plugin.get_flavor_next_provider(

neutron/tests/unit/services/ovn_l3/service_providers/test_user_defined.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from unittest import mock
1515

1616
from neutron_lib.callbacks import events
17+
from neutron_lib import constants as const
1718

1819

1920
from neutron.db.models import l3
@@ -56,6 +57,14 @@ def test__is_user_defined_provider(self):
5657
self.assertFalse(self.provider._is_user_defined_provider(
5758
self.context, self.router))
5859

60+
# test flavor_id request not specified
61+
self.router.flavor_id = None
62+
self.assertFalse(self.provider._is_user_defined_provider(
63+
self.context, self.router))
64+
self.router.flavor_id = const.ATTR_NOT_SPECIFIED
65+
self.assertFalse(self.provider._is_user_defined_provider(
66+
self.context, self.router))
67+
5968
def test_router_processing(self):
6069
with mock.patch.object(user_defined.LOG, 'debug') as log:
6170
payload = events.DBEventPayload(

0 commit comments

Comments
 (0)