diff options
author | Brent Eagles <beagles@redhat.com> | 2017-03-17 17:48:15 -0230 |
---|---|---|
committer | Brent Eagles <beagles@redhat.com> | 2017-03-17 17:59:27 -0230 |
commit | 9033caa332e0131695323d11eaca9ed04a03b3b7 (patch) | |
tree | b78493269735adaaae7344591d614d481939bd9b /os_net_config | |
parent | 7a65a0de1f3598e11a77bc15b110193d253215ec (diff) |
Handle bools-as-strings nm_controlled values
Fixes an issue where string values for nm_controlled were not converted
to the appropriate boolean values.
Closes-Bug: #1673878
Change-Id: I912ca2ef54d1d1f97e76b3922b7c2fecc77040ff
Diffstat (limited to 'os_net_config')
-rw-r--r-- | os_net_config/objects.py | 3 | ||||
-rw-r--r-- | os_net_config/tests/test_objects.py | 40 |
2 files changed, 42 insertions, 1 deletions
diff --git a/os_net_config/objects.py b/os_net_config/objects.py index 944aecd..e6b2d4d 100644 --- a/os_net_config/objects.py +++ b/os_net_config/objects.py @@ -245,7 +245,8 @@ class _BaseOpts(object): mtu = json.get('mtu', None) dhclient_args = json.get('dhclient_args') dns_servers = json.get('dns_servers') - nm_controlled = json.get('nm_controlled') + nm_controlled = strutils.bool_from_string(str(json.get('nm_controlled', + False))) primary = strutils.bool_from_string(str(json.get('primary', False))) addresses = [] routes = [] diff --git a/os_net_config/tests/test_objects.py b/os_net_config/tests/test_objects.py index f5daf31..9e8432d 100644 --- a/os_net_config/tests/test_objects.py +++ b/os_net_config/tests/test_objects.py @@ -144,6 +144,46 @@ class TestInterface(base.TestCase): interface1 = objects.object_from_json(json.loads(data)) self.assertEqual("--foobar", interface1.dhclient_args) + def test_from_json_nm_controlled_false(self): + data = """{ +"type": "interface", +"name": "em1", +"nm_controlled": false +} +""" + interface1 = objects.object_from_json(json.loads(data)) + self.assertFalse(interface1.nm_controlled) + + def test_from_json_nm_controlled_true(self): + data = """{ +"type": "interface", +"name": "em1", +"nm_controlled": true +} +""" + interface1 = objects.object_from_json(json.loads(data)) + self.assertTrue(interface1.nm_controlled) + + def test_from_json_nm_controlled_false_boolstr(self): + data = """{ +"type": "interface", +"name": "em1", +"nm_controlled": "no" +} +""" + interface1 = objects.object_from_json(json.loads(data)) + self.assertFalse(interface1.nm_controlled) + + def test_from_json_nm_controlled_true_boolstr(self): + data = """{ +"type": "interface", +"name": "em1", +"nm_controlled": "yes" +} +""" + interface1 = objects.object_from_json(json.loads(data)) + self.assertTrue(interface1.nm_controlled) + def test_from_json_dns_servers(self): data = """{ "type": "interface", |