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
This commit is contained in:
Brent Eagles 2017-03-17 17:48:15 -02:30
parent 7a65a0de1f
commit 9033caa332
2 changed files with 42 additions and 1 deletions

View File

@ -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 = []

View File

@ -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",