diff options
-rw-r--r-- | cloudinit/netinfo.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/cloudinit/netinfo.py b/cloudinit/netinfo.py index f5949122..a9c3090e 100644 --- a/cloudinit/netinfo.py +++ b/cloudinit/netinfo.py @@ -21,6 +21,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. import cloudinit.util as util +import re from prettytable import PrettyTable @@ -34,13 +35,17 @@ def netdev_info(empty=""): continue if line[0] not in ("\t", " "): curdev = line.split()[0] - # TODO: up/down detection fails on FreeBSD devs[curdev] = {"up": False} for field in fields: devs[curdev][field] = "" toks = line.lower().strip().split() if toks[0] == "up": devs[curdev]['up'] = True + # If the output of ifconfig doesn't contain the required info in the + # obvious place, use a regex filter to be sure. + elif len(toks) > 1: + if re.search("flags=\d+<up,", toks[1]): + devs[curdev]['up'] = True fieldpost = "" if toks[0] == "inet6": |