Check role restriction also before provisioning

Currently the nodes which need provisioning and then deployment avoid role
restrictions check because of their 'not ready for deployment'
status. This commit adds unprovisioned nodes to the list of checked
nodes.

Change-Id: I7b19d1beeb71849e2def465127873821a4f93052
Closes-Bug: #1605472
This commit is contained in:
Georgy Kibardin 2016-07-27 11:33:36 +03:00
parent ed04b0f592
commit bb37dbd4a9
2 changed files with 8 additions and 1 deletions

View File

@ -1517,7 +1517,7 @@ class CheckBeforeDeploymentTask(object):
models = objects.Cluster.get_restrictions_models(cluster)
nodes = TaskHelper.nodes_to_deploy(cluster)
nodes = objects.Cluster.get_nodes_not_for_deletion(cluster)
roles_metadata = objects.Cluster.get_roles(cluster)
for node in nodes:

View File

@ -315,6 +315,13 @@ class TestCheckBeforeDeploymentTask(BaseTestCase):
self.env.db.commit()
self.assertEqual(self.node.error_type, error_type)
@mock.patch('nailgun.task.task.assignment.NodeAssignmentValidator')
def test_not_yet_provisioned_nodes_roles_are_validated(self, validator):
self.set_node_status(consts.NODE_STATUSES.discover)
task.CheckBeforeDeploymentTask._check_nodes_roles(self.task)
validator.check_roles_for_conflicts.assert_called_once()
validator.check_roles_requirement.assert_called_once()
def test_check_nodes_online_raises_exception(self):
self.node.online = False
self.env.db.commit()