summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFellype Cavalcante <fellypefca@lsd.ufcg.edu.br>2017-09-26 14:17:49 -0300
committerFellype Cavalcante <fellypefca@lsd.ufcg.edu.br>2017-10-06 11:09:33 -0300
commitd6934de3ebf102162678b24c130c51128453e4f2 (patch)
treee61286cb7a401abde389eda3483692f3d8fc2a3f
parentdfa2fb6dcd4e5030d5e1cac52ddbf43c9a181950 (diff)
downloadironic-d6934de3ebf102162678b24c130c51128453e4f2.tar.gz
Fix multitenancy scenario on OneView Driver
Switching from provisioning to tenant network was missed in reboot_and_finish_deploy for OnView Driver. The affected code was completely removed in the Pike release, hence this patch is not a cherry-pick. Change-Id: I36920741640981b5e85bbb08bfc1e2beff0b605f Closes-Bug: #1716023
-rw-r--r--ironic/drivers/modules/oneview/deploy.py3
-rw-r--r--ironic/tests/unit/drivers/modules/oneview/test_deploy.py12
-rw-r--r--releasenotes/notes/fix-multitenancy-oneview-0b7767930f3cd65e.yaml6
3 files changed, 20 insertions, 1 deletions
diff --git a/ironic/drivers/modules/oneview/deploy.py b/ironic/drivers/modules/oneview/deploy.py
index 282fce83c..912a4b58c 100644
--- a/ironic/drivers/modules/oneview/deploy.py
+++ b/ironic/drivers/modules/oneview/deploy.py
@@ -343,6 +343,9 @@ class OneViewAgentDeployMixin(object):
'error': e})
manager_utils.node_power_action(task, states.POWER_OFF)
+ task.driver.network.remove_provisioning_network(task)
+ task.driver.network.configure_tenant_networks(task)
+
manager_utils.node_set_boot_device(task, 'disk',
persistent=True)
manager_utils.node_power_action(task, states.POWER_ON)
diff --git a/ironic/tests/unit/drivers/modules/oneview/test_deploy.py b/ironic/tests/unit/drivers/modules/oneview/test_deploy.py
index db9098f2b..7e4452b46 100644
--- a/ironic/tests/unit/drivers/modules/oneview/test_deploy.py
+++ b/ironic/tests/unit/drivers/modules/oneview/test_deploy.py
@@ -29,6 +29,7 @@ from ironic.conf import CONF
from ironic.drivers.modules import agent
from ironic.drivers.modules import agent_client
from ironic.drivers.modules import iscsi_deploy
+from ironic.drivers.modules.network import flat as flat_network
from ironic.drivers.modules.oneview import common
from ironic.drivers.modules.oneview import deploy
from ironic.drivers.modules.oneview import deploy_utils
@@ -289,8 +290,15 @@ class TestOneViewAgentDeploy(db_base.DbTestCase):
spec=types.FunctionType)
@mock.patch.object(agent_client.AgentClient, 'power_off',
spec=types.FunctionType)
+ @mock.patch.object(flat_network.FlatNetwork, 'remove_provisioning_network',
+ autospec=True)
+ @mock.patch.object(flat_network.FlatNetwork, 'configure_tenant_networks',
+ autospec=True)
@mock.patch('ironic.conductor.utils.node_set_boot_device', autospec=True)
- def test_reboot_and_finish_deploy(self, set_bootdev_mock, power_off_mock,
+ def test_reboot_and_finish_deploy(self, set_bootdev_mock,
+ configure_tenant_mock,
+ remove_provisioning_mock,
+ power_off_mock,
get_power_state_mock,
node_power_action_mock,
mock_get_ov_client):
@@ -302,6 +310,8 @@ class TestOneViewAgentDeploy(db_base.DbTestCase):
get_power_state_mock.side_effect = [states.POWER_ON,
states.POWER_OFF]
task.driver.deploy.reboot_and_finish_deploy(task)
+ remove_provisioning_mock.assert_called_once_with(mock.ANY, task)
+ configure_tenant_mock.assert_called_once_with(mock.ANY, task)
power_off_mock.assert_called_once_with(task.node)
self.assertEqual(2, get_power_state_mock.call_count)
set_bootdev_mock.assert_called_once_with(task, 'disk',
diff --git a/releasenotes/notes/fix-multitenancy-oneview-0b7767930f3cd65e.yaml b/releasenotes/notes/fix-multitenancy-oneview-0b7767930f3cd65e.yaml
new file mode 100644
index 000000000..596978318
--- /dev/null
+++ b/releasenotes/notes/fix-multitenancy-oneview-0b7767930f3cd65e.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+ - |
+ Fixes switching to tenant networks, when using the 'neutron' network
+ interface with the OneView drivers.
+ For more information, see https://bugs.launchpad.net/ironic/+bug/1716023