aboutsummaryrefslogtreecommitdiffstats
path: root/os_net_config/tests/test_objects.py
diff options
context:
space:
mode:
Diffstat (limited to 'os_net_config/tests/test_objects.py')
-rw-r--r--os_net_config/tests/test_objects.py76
1 files changed, 71 insertions, 5 deletions
diff --git a/os_net_config/tests/test_objects.py b/os_net_config/tests/test_objects.py
index 7500392..ca2dd47 100644
--- a/os_net_config/tests/test_objects.py
+++ b/os_net_config/tests/test_objects.py
@@ -25,26 +25,30 @@ from os_net_config import utils
class TestRoute(base.TestCase):
def test_from_json(self):
- data = '{"next_hop": "172.19.0.1", "ip_netmask": "172.19.0.0/24"}'
+ data = '{"next_hop": "172.19.0.1", "ip_netmask": "172.19.0.0/24", ' \
+ '"route_options": "metric 10"}'
route = objects.Route.from_json(json.loads(data))
self.assertEqual("172.19.0.1", route.next_hop)
self.assertEqual("172.19.0.0/24", route.ip_netmask)
self.assertFalse(route.default)
+ self.assertEqual("metric 10", route.route_options)
def test_from_json_default_route(self):
data = '{"next_hop": "172.19.0.1", "ip_netmask": "172.19.0.0/24", ' \
- '"default": true}'
+ '"default": true, "route_options": "metric 10"}'
route = objects.Route.from_json(json.loads(data))
self.assertEqual("172.19.0.1", route.next_hop)
self.assertEqual("172.19.0.0/24", route.ip_netmask)
self.assertTrue(route.default)
+ self.assertEqual("metric 10", route.route_options)
data = '{"next_hop": "172.19.0.1", "ip_netmask": "172.19.0.0/24", ' \
- '"default": "true"}'
+ '"default": "true", "route_options": "metric 10"}'
route = objects.Route.from_json(json.loads(data))
self.assertEqual("172.19.0.1", route.next_hop)
self.assertEqual("172.19.0.0/24", route.ip_netmask)
self.assertTrue(route.default)
+ self.assertEqual("metric 10", route.route_options)
class TestAddress(base.TestCase):
@@ -146,12 +150,14 @@ class TestInterface(base.TestCase):
"name": "em1",
"use_dhcp": false,
"mtu": 1501,
+"ethtool_opts": "speed 1000 duplex full",
"addresses": [{
"ip_netmask": "192.0.2.1/24"
}],
"routes": [{
"next_hop": "192.0.2.1",
- "ip_netmask": "192.0.2.1/24"
+ "ip_netmask": "192.0.2.1/24",
+ "route_options": "metric 10"
}]
}
"""
@@ -160,12 +166,14 @@ class TestInterface(base.TestCase):
self.assertFalse(interface.use_dhcp)
self.assertFalse(interface.use_dhcpv6)
self.assertEqual(1501, interface.mtu)
+ self.assertEqual("speed 1000 duplex full", interface.ethtool_opts)
address1 = interface.v4_addresses()[0]
self.assertEqual("192.0.2.1", address1.ip)
self.assertEqual("255.255.255.0", address1.netmask)
route1 = interface.routes[0]
self.assertEqual("192.0.2.1", route1.next_hop)
self.assertEqual("192.0.2.1/24", route1.ip_netmask)
+ self.assertEqual("metric 10", route1.route_options)
class TestVlan(base.TestCase):
@@ -638,6 +646,44 @@ class TestOvsTunnel(base.TestCase):
["ovs extra"],
tun0.ovs_extra)
+ def test_ovs_extra_formatting(self):
+ data = """{
+"type": "ovs_bridge",
+"name": "br-foo",
+"ovs_extra": [
+ "set bridge {name} something"
+],
+"members": [{
+ "type": "ovs_tunnel",
+ "name": "tun0",
+ "tunnel_type": "gre",
+ "ovs_options": [
+ "remote_ip=192.168.1.1"
+ ],
+ "ovs_extra": [
+ "ovs extra",
+ "ovs {name} extra"
+ ]
+}]
+}
+"""
+ bridge = objects.object_from_json(json.loads(data))
+ self.assertEqual("br-foo", bridge.name)
+ self.assertEqual(["set bridge br-foo something",
+ "set bridge br-foo fail_mode=standalone"],
+ bridge.ovs_extra)
+ tun0 = bridge.members[0]
+ self.assertEqual("tun0", tun0.name)
+ self.assertFalse(tun0.ovs_port)
+ self.assertEqual("br-foo", tun0.bridge_name)
+ self.assertEqual("gre", tun0.tunnel_type)
+ self.assertEqual(
+ ["options:remote_ip=192.168.1.1"],
+ tun0.ovs_options)
+ self.assertEqual(
+ ["ovs extra", "ovs tun0 extra"],
+ tun0.ovs_extra)
+
class TestOvsPatchPort(base.TestCase):
@@ -654,6 +700,24 @@ class TestOvsPatchPort(base.TestCase):
self.assertEqual("br-ex", patch_port.bridge_name)
self.assertEqual("br-ex-patch", patch_port.peer)
+ def test_from_json_with_extra(self):
+ data = """{
+"type": "ovs_patch_port",
+"name": "br-pub-patch",
+"bridge_name": "br-ex",
+"peer": "br-ex-patch",
+"ovs_extra": [
+ "ovs {name} extra"
+]
+}
+"""
+ patch_port = objects.object_from_json(json.loads(data))
+ self.assertEqual(["ovs br-pub-patch extra"],
+ patch_port.ovs_extra)
+ self.assertEqual("br-pub-patch", patch_port.name)
+ self.assertEqual("br-ex", patch_port.bridge_name)
+ self.assertEqual("br-ex-patch", patch_port.peer)
+
class TestIbInterface(base.TestCase):
@@ -727,7 +791,8 @@ class TestIbInterface(base.TestCase):
}],
"routes": [{
"next_hop": "192.0.2.1",
- "ip_netmask": "192.0.2.1/24"
+ "ip_netmask": "192.0.2.1/24",
+ "route_options": "metric 10"
}]
}
"""
@@ -742,6 +807,7 @@ class TestIbInterface(base.TestCase):
route1 = ib_interface.routes[0]
self.assertEqual("192.0.2.1", route1.next_hop)
self.assertEqual("192.0.2.1/24", route1.ip_netmask)
+ self.assertEqual("metric 10", route1.route_options)
class TestNicMapping(base.TestCase):