Normalize operstate value for interfaces

The previous check for an interface operstate only looked for the
literal "UP" in caps, but in my environments I'm seeing operstate
returned as "up" in lower-case, which causes the _is_active_nic
check to fail incorrectly.  Example:

[root@overcloud-controller-0 heat-admin]# cat /sys/class/net/eth0/operstate
up

In this environment os-net-config is failing with the exception
in the linked bug.

Change-Id: I85c2d074ce43673c691523ca146ff7cdfdf1c7ca
Closes-Bug: 1569403
This commit is contained in:
Ben Nemec 2016-04-12 15:34:15 +00:00
parent 1134091ff1
commit 2af4ee4b87

View File

@ -60,13 +60,13 @@ def _is_active_nic(interface_name):
operstate = None operstate = None
with open(_SYS_CLASS_NET + '/%s/operstate' % interface_name, 'r') as f: with open(_SYS_CLASS_NET + '/%s/operstate' % interface_name, 'r') as f:
operstate = f.read().rstrip() operstate = f.read().rstrip().lower()
address = None address = None
with open(_SYS_CLASS_NET + '/%s/address' % interface_name, 'r') as f: with open(_SYS_CLASS_NET + '/%s/address' % interface_name, 'r') as f:
address = f.read().rstrip() address = f.read().rstrip()
if has_device_dir and operstate == 'UP' and address: if has_device_dir and operstate == 'up' and address:
return True return True
else: else:
return False return False