Add condition for IronicCopyBootstrapKey task

Ironic keys should be copied only ironic nodes.

Change-Id: Icb6c3cc01c194a60bc5324a963e2f30e149b4bcf
Closes-bug: #1536220
(cherry picked from commit a39027150d)
This commit is contained in:
Andrey Shestakov 2016-01-29 13:44:43 +02:00
parent 19fb6afdaf
commit 7d7af2a2b2
2 changed files with 21 additions and 0 deletions

View File

@ -275,6 +275,9 @@ class IronicCopyBootstrapKey(CopyKeys):
identity = 'ironic_copy_bootstrap_key'
def should_execute(self):
return len(self.role_resolver.resolve(['ironic'])) > 0
class RestartRadosGW(GenericRolesHook):

View File

@ -466,6 +466,24 @@ class TestHooksSerializers(BaseTaskSerializationTest):
serialized = list(task.serialize())
self.assertEqual(len(serialized), 0)
def test_serialize_ironic_copy_bootstrap_key(self):
task_config = {'id': 'ironic_copy_bootstrap_key',
'type': 'copy_files',
'role': ['ironic'],
'stage': 'post-deployment',
'parameters': {
'files': [{'src': '/1', 'dst': '/2'}],
'permissions': '0600',
'dir_permissions': '0700'}}
task = tasks_serializer.IronicCopyBootstrapKey(
task_config, self.cluster, self.nodes)
self.assertFalse(task.should_execute())
new_node = self.env.create_node(
roles=['ironic'], cluster_id=self.cluster.id)
task = tasks_serializer.IronicCopyBootstrapKey(
task_config, self.cluster, [new_node])
self.assertTrue(task.should_execute())
class TestPreTaskSerialization(BaseTaskSerializationTestUbuntu):