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
This commit is contained in:
Fellype Cavalcante 2017-09-26 14:17:49 -03:00
parent dfa2fb6dcd
commit d6934de3eb
3 changed files with 20 additions and 1 deletions

View File

@ -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)

View File

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

View File

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