Skip to content

Commit 2fbc99b

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Fix get_segments_id with subnets without segment_id" into stable/yoga
2 parents 8653767 + 9a6a421 commit 2fbc99b

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

nova/network/neutron.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3924,7 +3924,7 @@ def get_segment_ids_for_network(
39243924
'Failed to get segment IDs for network %s' % network_id) from e
39253925
# The segment field of an unconfigured subnet could be None
39263926
return [subnet['segment_id'] for subnet in subnets
3927-
if subnet['segment_id'] is not None]
3927+
if subnet.get('segment_id') is not None]
39283928

39293929
def get_segment_id_for_subnet(
39303930
self,

nova/tests/unit/network/test_neutron.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7432,7 +7432,7 @@ def test_get_segment_ids_for_network_passes(self, mock_client):
74327432
network_id=uuids.network_id, fields='segment_id')
74337433

74347434
@mock.patch.object(neutronapi, 'get_client')
7435-
def test_get_segment_ids_for_network_with_no_segments(self, mock_client):
7435+
def test_get_segment_ids_for_network_with_segments_none(self, mock_client):
74367436
subnets = {'subnets': [{'segment_id': None}]}
74377437
mocked_client = mock.create_autospec(client.Client)
74387438
mock_client.return_value = mocked_client
@@ -7447,6 +7447,22 @@ def test_get_segment_ids_for_network_with_no_segments(self, mock_client):
74477447
mocked_client.list_subnets.assert_called_once_with(
74487448
network_id=uuids.network_id, fields='segment_id')
74497449

7450+
@mock.patch.object(neutronapi, 'get_client')
7451+
def test_get_segment_ids_for_network_with_no_segments(self, mock_client):
7452+
subnets = {'subnets': [{}]}
7453+
mocked_client = mock.create_autospec(client.Client)
7454+
mock_client.return_value = mocked_client
7455+
mocked_client.list_subnets.return_value = subnets
7456+
with mock.patch.object(
7457+
self.api, 'has_segment_extension', return_value=True,
7458+
):
7459+
res = self.api.get_segment_ids_for_network(
7460+
self.context, uuids.network_id)
7461+
self.assertEqual([], res)
7462+
mock_client.assert_called_once_with(self.context, admin=True)
7463+
mocked_client.list_subnets.assert_called_once_with(
7464+
network_id=uuids.network_id, fields='segment_id')
7465+
74507466
@mock.patch.object(neutronapi, 'get_client')
74517467
def test_get_segment_ids_for_network_fails(self, mock_client):
74527468
mocked_client = mock.create_autospec(client.Client)

0 commit comments

Comments
 (0)