Merge "Validate the power interface before deployment"
This commit is contained in:
commit
af59e4b313
@ -514,12 +514,13 @@ class ConductorManager(periodic_task.PeriodicTasks):
|
||||
node=node.uuid)
|
||||
|
||||
try:
|
||||
task.driver.power.validate(task)
|
||||
task.driver.deploy.validate(task)
|
||||
except (exception.InvalidParameterValue,
|
||||
exception.MissingParameterValue) as e:
|
||||
raise exception.InstanceDeployFailure(_(
|
||||
"RPC do_node_deploy failed to validate deploy info. "
|
||||
"Error: %(msg)s") % {'msg': e})
|
||||
"RPC do_node_deploy failed to validate deploy or "
|
||||
"power info. Error: %(msg)s") % {'msg': e})
|
||||
|
||||
# Save the previous states so we can rollback the node to a
|
||||
# consistent state in case there's no free workers to do the
|
||||
|
@ -663,8 +663,7 @@ class DoNodeDeployTearDownTestCase(_ServiceSetUpMixin,
|
||||
# Verify reservation has been cleared.
|
||||
self.assertIsNone(node.reservation)
|
||||
|
||||
@mock.patch('ironic.drivers.modules.fake.FakeDeploy.validate')
|
||||
def test_do_node_deploy_validate_fail(self, mock_validate):
|
||||
def _test_do_node_deploy_validate_fail(self, mock_validate):
|
||||
# InvalidParameterValue should be re-raised as InstanceDeployFailure
|
||||
mock_validate.side_effect = exception.InvalidParameterValue('error')
|
||||
node = obj_utils.create_test_node(self.context, driver='fake')
|
||||
@ -678,6 +677,14 @@ class DoNodeDeployTearDownTestCase(_ServiceSetUpMixin,
|
||||
# Verify reservation has been cleared.
|
||||
self.assertIsNone(node.reservation)
|
||||
|
||||
@mock.patch('ironic.drivers.modules.fake.FakeDeploy.validate')
|
||||
def test_do_node_deploy_validate_fail(self, mock_validate):
|
||||
self._test_do_node_deploy_validate_fail(mock_validate)
|
||||
|
||||
@mock.patch('ironic.drivers.modules.fake.FakePower.validate')
|
||||
def test_do_node_deploy_power_validate_fail(self, mock_validate):
|
||||
self._test_do_node_deploy_validate_fail(mock_validate)
|
||||
|
||||
@mock.patch('ironic.drivers.modules.fake.FakeDeploy.deploy')
|
||||
def test__do_node_deploy_driver_raises_error(self, mock_deploy):
|
||||
# test when driver.deploy.deploy raises an exception
|
||||
|
Loading…
x
Reference in New Issue
Block a user