From 74ffd41bb170844573803c97fc20c852c5bc3be6 Mon Sep 17 00:00:00 2001 From: Hans Krijger Date: Fri, 1 Jul 2016 09:00:38 -0700 Subject: [PATCH] do not try encode None, always return a string from get_primary_interface (#287) --- azurelinuxagent/common/osutil/default.py | 4 ++++ tests/common/osutil/test_default.py | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/azurelinuxagent/common/osutil/default.py b/azurelinuxagent/common/osutil/default.py index 76d48ca..c243c85 100644 --- a/azurelinuxagent/common/osutil/default.py +++ b/azurelinuxagent/common/osutil/default.py @@ -500,6 +500,10 @@ class DefaultOSUtil(object): if primary is None or metric < primary_metric: primary = iface primary_metric = metric + + if primary is None: + primary = '' + logger.info('primary interface is [{0}]'.format(primary)) return primary diff --git a/tests/common/osutil/test_default.py b/tests/common/osutil/test_default.py index 2281348..d9d00f6 100644 --- a/tests/common/osutil/test_default.py +++ b/tests/common/osutil/test_default.py @@ -106,6 +106,17 @@ class TestOSUtil(AgentTestCase): self.assertFalse(osutil.DefaultOSUtil().is_primary_interface('nflg')) self.assertFalse(osutil.DefaultOSUtil().is_primary_interface('invalid')) + def test_no_primary_does_not_throw(self): + with patch.object(osutil.DefaultOSUtil, 'get_primary_interface') \ + as patch_primary: + exception = False + patch_primary.return_value = '' + try: + osutil.DefaultOSUtil().get_first_if()[0] + except Exception as e: + exception = True + self.assertFalse(exception) + def test_dhcp_lease_default(self): self.assertTrue(osutil.DefaultOSUtil().get_dhcp_lease_endpoint() is None)