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
This commit is contained in:
Ben Nemec 2016-04-12 15:51:55 +00:00
parent 1134091ff1
commit 34f7198267
2 changed files with 8 additions and 0 deletions

View File

@ -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

View File

@ -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())