summaryrefslogtreecommitdiff
path: root/ironic/tests/unit/drivers/modules/network/test_common.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-02-03 12:37:24 +0000
committerGerrit Code Review <review@openstack.org>2017-02-03 12:37:24 +0000
commitb9a792af9f90dcaa33896a82a4183ad403155591 (patch)
tree286e2981e2167885183bd020a010d2d18a0a4010 /ironic/tests/unit/drivers/modules/network/test_common.py
parentac2b1a48ef5420e9c71a665e7157dc6e55016a16 (diff)
parent56570b1f41e84f40ea18f534217fc8b093ce6e9a (diff)
downloadironic-b9a792af9f90dcaa33896a82a4183ad403155591.tar.gz
Merge "Validate port info before assume we may use it"
Diffstat (limited to 'ironic/tests/unit/drivers/modules/network/test_common.py')
-rw-r--r--ironic/tests/unit/drivers/modules/network/test_common.py72
1 files changed, 62 insertions, 10 deletions
diff --git a/ironic/tests/unit/drivers/modules/network/test_common.py b/ironic/tests/unit/drivers/modules/network/test_common.py
index bea4a6376..67d17f528 100644
--- a/ironic/tests/unit/drivers/modules/network/test_common.py
+++ b/ironic/tests/unit/drivers/modules/network/test_common.py
@@ -77,6 +77,8 @@ class TestCommonFunctions(db_base.DbTestCase):
return pg1, pg1_ports, pg2, pg2_ports, pg3, pg3_ports
def test__get_free_portgroups_and_ports(self):
+ self.node.network_interface = 'flat'
+ self.node.save()
pg1, pg1_ports, pg2, pg2_ports, pg3, pg3_ports = self._objects_setup()
with task_manager.acquire(self.context, self.node.id) as task:
free_portgroups, free_ports = (
@@ -86,12 +88,42 @@ class TestCommonFunctions(db_base.DbTestCase):
[p.uuid for p in free_ports])
self.assertItemsEqual([pg1.uuid], [p.uuid for p in free_portgroups])
- def test_get_free_port_like_object_ports(self):
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True)
+ def test__get_free_portgroups_and_ports_neutron_missed(self, vpi_mock):
+ vpi_mock.return_value = False
+ with task_manager.acquire(self.context, self.node.id) as task:
+ free_portgroups, free_ports = (
+ common._get_free_portgroups_and_ports(task, self.vif_id))
+ self.assertItemsEqual([], free_ports)
+
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True)
+ def test__get_free_portgroups_and_ports_neutron(self, vpi_mock):
+ vpi_mock.return_value = True
+ with task_manager.acquire(self.context, self.node.id) as task:
+ free_portgroups, free_ports = (
+ common._get_free_portgroups_and_ports(task, self.vif_id))
+ self.assertItemsEqual(
+ [self.port.uuid], [p.uuid for p in free_ports])
+
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True)
+ def test__get_free_portgroups_and_ports_flat(self, vpi_mock):
+ self.node.network_interface = 'flat'
+ self.node.save()
+ vpi_mock.return_value = True
+ with task_manager.acquire(self.context, self.node.id) as task:
+ free_portgroups, free_ports = (
+ common._get_free_portgroups_and_ports(task, self.vif_id))
+
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True,
+ return_value=True)
+ def test_get_free_port_like_object_ports(self, vpi_mock):
with task_manager.acquire(self.context, self.node.id) as task:
res = common.get_free_port_like_object(task, self.vif_id)
self.assertEqual(self.port.uuid, res.uuid)
- def test_get_free_port_like_object_ports_pxe_enabled_first(self):
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True,
+ return_value=True)
+ def test_get_free_port_like_object_ports_pxe_enabled_first(self, vpi_mock):
self.port.pxe_enabled = False
self.port.save()
other_port = obj_utils.create_test_port(
@@ -101,7 +133,9 @@ class TestCommonFunctions(db_base.DbTestCase):
res = common.get_free_port_like_object(task, self.vif_id)
self.assertEqual(other_port.uuid, res.uuid)
- def test_get_free_port_like_object_portgroup_first(self):
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True,
+ return_value=True)
+ def test_get_free_port_like_object_portgroup_first(self, vpi_mock):
pg = obj_utils.create_test_portgroup(
self.context, node_id=self.node.id)
obj_utils.create_test_port(
@@ -111,13 +145,18 @@ class TestCommonFunctions(db_base.DbTestCase):
res = common.get_free_port_like_object(task, self.vif_id)
self.assertEqual(pg.uuid, res.uuid)
- def test_get_free_port_like_object_ignores_empty_portgroup(self):
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True,
+ return_value=True)
+ def test_get_free_port_like_object_ignores_empty_portgroup(self, vpi_mock):
obj_utils.create_test_portgroup(self.context, node_id=self.node.id)
with task_manager.acquire(self.context, self.node.id) as task:
res = common.get_free_port_like_object(task, self.vif_id)
self.assertEqual(self.port.uuid, res.uuid)
- def test_get_free_port_like_object_ignores_standalone_portgroup(self):
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True,
+ return_value=True)
+ def test_get_free_port_like_object_ignores_standalone_portgroup(
+ self, vpi_mock):
self.port.destroy()
pg = obj_utils.create_test_portgroup(
self.context, node_id=self.node.id)
@@ -132,7 +171,10 @@ class TestCommonFunctions(db_base.DbTestCase):
res = common.get_free_port_like_object(task, self.vif_id)
self.assertEqual(free_port.uuid, res.uuid)
- def test_get_free_port_like_object_vif_attached_to_portgroup(self):
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True,
+ return_value=True)
+ def test_get_free_port_like_object_vif_attached_to_portgroup(
+ self, vpi_mock):
pg = obj_utils.create_test_portgroup(
self.context, node_id=self.node.id,
internal_info={common.TENANT_VIF_KEY: self.vif_id})
@@ -145,7 +187,10 @@ class TestCommonFunctions(db_base.DbTestCase):
r"already attached to Ironic Portgroup",
common.get_free_port_like_object, task, self.vif_id)
- def test_get_free_port_like_object_vif_attached_to_portgroup_extra(self):
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True,
+ return_value=True)
+ def test_get_free_port_like_object_vif_attached_to_portgroup_extra(
+ self, vpi_mock):
pg = obj_utils.create_test_portgroup(
self.context, node_id=self.node.id,
extra={'vif_port_id': self.vif_id})
@@ -158,7 +203,9 @@ class TestCommonFunctions(db_base.DbTestCase):
r"already attached to Ironic Portgroup",
common.get_free_port_like_object, task, self.vif_id)
- def test_get_free_port_like_object_vif_attached_to_port(self):
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True,
+ return_value=True)
+ def test_get_free_port_like_object_vif_attached_to_port(self, vpi_mock):
self.port.internal_info = {common.TENANT_VIF_KEY: self.vif_id}
self.port.save()
with task_manager.acquire(self.context, self.node.id) as task:
@@ -167,7 +214,10 @@ class TestCommonFunctions(db_base.DbTestCase):
r"already attached to Ironic Port\b",
common.get_free_port_like_object, task, self.vif_id)
- def test_get_free_port_like_object_vif_attached_to_port_extra(self):
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True,
+ return_value=True)
+ def test_get_free_port_like_object_vif_attached_to_port_extra(
+ self, vpi_mock):
self.port.extra = {'vif_port_id': self.vif_id}
self.port.save()
with task_manager.acquire(self.context, self.node.id) as task:
@@ -176,7 +226,9 @@ class TestCommonFunctions(db_base.DbTestCase):
r"already attached to Ironic Port\b",
common.get_free_port_like_object, task, self.vif_id)
- def test_get_free_port_like_object_nothing_free(self):
+ @mock.patch.object(neutron_common, 'validate_port_info', autospec=True,
+ return_value=True)
+ def test_get_free_port_like_object_nothing_free(self, vpi_mock):
self.port.extra = {'vif_port_id': 'another-vif'}
self.port.save()
with task_manager.acquire(self.context, self.node.id) as task: