Fix get_network_details_v2 exception
get_network_details_v2 implementation should be consistent with the base metadata service implementation. The method should return None in case the underlying metadata does not exist or if it is invalid. Change-Id: Ida3fe780f22dc20db6bd8ed3f43728a2671b46da Closes-Bug: #1796053
This commit is contained in:
parent
2773599be3
commit
9bd096803e
@ -238,7 +238,11 @@ class BaseOpenStackService(base.BaseMetadataService):
|
||||
return services
|
||||
|
||||
def get_network_details_v2(self):
|
||||
network_data = self._get_network_data()
|
||||
try:
|
||||
network_data = self._get_network_data()
|
||||
except base.NotExistingMetadataException:
|
||||
LOG.info("V2 network metadata not found")
|
||||
return
|
||||
|
||||
links = self._parse_network_data_links(
|
||||
network_data.get("links", []))
|
||||
|
@ -488,3 +488,14 @@ class TestBaseOpenStackService(unittest.TestCase):
|
||||
|
||||
def test_get_network_details_v2_invalid_bond_lb_algo(self):
|
||||
self._test_get_network_details_v2(invalid_bond_lb_algo=True)
|
||||
|
||||
@mock.patch(MODPATH + ".BaseOpenStackService._get_network_data")
|
||||
@mock.patch(MODPATH + ".LOG.info")
|
||||
def test_get_network_details_v2_no_metadata(self, mock_log_exception,
|
||||
mock_get_network_data):
|
||||
mock_get_network_data.side_effect = (
|
||||
base.NotExistingMetadataException('failed to get metadata'))
|
||||
network_details = self._service.get_network_details_v2()
|
||||
|
||||
self.assertIsNone(network_details)
|
||||
self.assertTrue(mock_log_exception.called)
|
||||
|
Loading…
x
Reference in New Issue
Block a user