From 34f7198267ba855f3f1e6dad0226493acc7f530d Mon Sep 17 00:00:00 2001 From: Ben Nemec Date: Tue, 12 Apr 2016 15:51:55 +0000 Subject: Add warning for no active nics When there are no active nics, strange errors can happen later in the process of applying the configuration, and it's often not obvious what caused them. Logging a warning should make it easier to track down such problems. Note that this should never happen legitimately in a TripleO environment since we always need to have at least one active nic to even get configuration to the system. However, it is a valid case for someone who might be applying a configuration with local access to a system, so it should be handled sanely. It's also helpful in case of future bugs in the active nic checking. Change-Id: Iaf6d4b1b215b70d61e0857e093a834702829e1b9 Related-Bug: 1569403 --- os_net_config/objects.py | 2 ++ os_net_config/tests/test_objects.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/os_net_config/objects.py b/os_net_config/objects.py index 4f3e0d5..c0c1719 100644 --- a/os_net_config/objects.py +++ b/os_net_config/objects.py @@ -98,6 +98,8 @@ def _numbered_nics(nic_mapping=None): _NUMBERED_NICS[nic_alias] = nic_mapped logger.info("%s mapped to: %s" % (nic_alias, nic_mapped)) + if not _NUMBERED_NICS: + logger.warning('No active nics found.') return _NUMBERED_NICS diff --git a/os_net_config/tests/test_objects.py b/os_net_config/tests/test_objects.py index d3e41df..a4a5f8a 100644 --- a/os_net_config/tests/test_objects.py +++ b/os_net_config/tests/test_objects.py @@ -569,3 +569,9 @@ class TestNumberedNicsMapping(base.TestCase): mapping = {'nic1': '12:34:56:de:f0:12', 'nic2': '12:34:56:78:9a:bc'} expected = {'nic1': 'em2', 'nic2': 'em1'} self.assertEqual(expected, objects._numbered_nics(nic_mapping=mapping)) + + def test_numbered_nics_no_active(self): + self._stub_active_nics([]) + expected = {} + # This only emits a warning, so it should still work + self.assertEqual(expected, objects._numbered_nics()) -- cgit 1.2.3-korg