Log 'Executable biosdevname not found' only once

Currently, get_bios_given_nic_name logs 'biosdevname not found' for
every NIC. This patch changes it to log only once when the executable
is not found.

Removes a redundant 'return' statement.

Change-Id: Ic42ec23876b6f7b28d8f6ac1bd37bdbfa20cf421
This commit is contained in:
Ramamani Yeleswarapu 2017-06-02 10:54:06 -07:00
parent 7dbe9b5bed
commit a42ef91591
1 changed files with 6 additions and 2 deletions

View File

@ -39,6 +39,8 @@ _global_managers = None
LOG = log.getLogger()
CONF = cfg.CONF
WARN_BIOSDEVNAME_NOT_FOUND = False
UNIT_CONVERTER = pint.UnitRegistry(filename=None)
UNIT_CONVERTER.define('MB = []')
UNIT_CONVERTER.define('GB = 1024 MB')
@ -552,13 +554,15 @@ class GenericHardwareManager(HardwareManager):
:return: the BIOS given NIC name of node's interfaces or default
as None.
"""
global WARN_BIOSDEVNAME_NOT_FOUND
try:
stdout, _ = utils.execute('biosdevname', '-i',
interface_name)
return stdout.rstrip('\n')
except OSError:
LOG.warning("Executable 'biosdevname' not found")
return
if not WARN_BIOSDEVNAME_NOT_FOUND:
LOG.warning("Executable 'biosdevname' not found")
WARN_BIOSDEVNAME_NOT_FOUND = True
except processutils.ProcessExecutionError as e:
# NOTE(alezil) biosdevname returns 4 if running in a
# virtual machine.