Dont use query if network_ids is empty
A warning could be found in SQLAlchemy, if handling empty WHERE IN clauses. This is found at neutron.db.segments_db.get_networks_segments To avoid it, just return empty dict in such case. Change-Id: I3cf727dede1d5909aeefbf852332818164ad3777 Closes-bug: #1586816
This commit is contained in:
parent
8ca7154139
commit
1080620e5a
|
@ -87,6 +87,9 @@ def get_network_segments(session, network_id, filter_dynamic=False):
|
|||
|
||||
|
||||
def get_networks_segments(session, network_ids, filter_dynamic=False):
|
||||
if not network_ids:
|
||||
return {}
|
||||
|
||||
with session.begin(subtransactions=True):
|
||||
query = (session.query(NetworkSegment).
|
||||
filter(NetworkSegment.network_id.in_(network_ids)).
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
# Copyright (c) 2016 IBM Corp.
|
||||
#
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import mock
|
||||
|
||||
from neutron.db import segments_db
|
||||
from neutron.tests import base
|
||||
|
||||
|
||||
class TestSegmentsDb(base.BaseTestCase):
|
||||
|
||||
def test_get_networks_segments_with_empty_networks(self):
|
||||
session = mock.MagicMock()
|
||||
net_segs = segments_db.get_networks_segments(session, [])
|
||||
self.assertFalse(session.query.called)
|
||||
self.assertEqual({}, net_segs)
|
Loading…
Reference in New Issue