factory.py 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. # Copyright 2016 Cloudbase Solutions Srl
  2. # All Rights Reserved.
  3. from coriolis import constants
  4. from coriolis import exception
  5. from coriolis.tasks import migration_tasks
  6. from coriolis.tasks import minion_pool_tasks
  7. from coriolis.tasks import osmorphing_tasks
  8. from coriolis.tasks import replica_tasks
  9. _TASKS_MAP = {
  10. constants.TASK_TYPE_FINALIZE_INSTANCE_DEPLOYMENT:
  11. migration_tasks.FinalizeInstanceDeploymentTask,
  12. constants.TASK_TYPE_CLEANUP_FAILED_INSTANCE_DEPLOYMENT:
  13. migration_tasks.CleanupFailedInstanceDeploymentTask,
  14. constants.TASK_TYPE_GET_OPTIMAL_FLAVOR:
  15. migration_tasks.GetOptimalFlavorTask,
  16. constants.TASK_TYPE_DEPLOY_OS_MORPHING_RESOURCES:
  17. osmorphing_tasks.DeployOSMorphingResourcesTask,
  18. constants.TASK_TYPE_OS_MORPHING:
  19. osmorphing_tasks.OSMorphingTask,
  20. constants.TASK_TYPE_DELETE_OS_MORPHING_RESOURCES:
  21. osmorphing_tasks.DeleteOSMorphingResourcesTask,
  22. constants.TASK_TYPE_GET_INSTANCE_INFO:
  23. replica_tasks.GetInstanceInfoTask,
  24. constants.TASK_TYPE_REPLICATE_DISKS:
  25. replica_tasks.ReplicateDisksTask,
  26. constants.TASK_TYPE_SHUTDOWN_INSTANCE:
  27. replica_tasks.ShutdownInstanceTask,
  28. constants.TASK_TYPE_DEPLOY_TRANSFER_DISKS:
  29. replica_tasks.DeployReplicaDisksTask,
  30. constants.TASK_TYPE_DELETE_TRANSFER_SOURCE_DISK_SNAPSHOTS:
  31. replica_tasks.DeleteReplicaSourceDiskSnapshotsTask,
  32. constants.TASK_TYPE_DELETE_TRANSFER_DISKS:
  33. replica_tasks.DeleteReplicaDisksTask,
  34. constants.TASK_TYPE_DEPLOY_TRANSFER_TARGET_RESOURCES:
  35. replica_tasks.DeployReplicaTargetResourcesTask,
  36. constants.TASK_TYPE_DELETE_TRANSFER_TARGET_RESOURCES:
  37. replica_tasks.DeleteReplicaTargetResourcesTask,
  38. constants.TASK_TYPE_DEPLOY_TRANSFER_SOURCE_RESOURCES:
  39. replica_tasks.DeployReplicaSourceResourcesTask,
  40. constants.TASK_TYPE_DELETE_TRANSFER_SOURCE_RESOURCES:
  41. replica_tasks.DeleteReplicaSourceResourcesTask,
  42. constants.TASK_TYPE_DEPLOY_INSTANCE_RESOURCES:
  43. replica_tasks.DeployReplicaInstanceResourcesTask,
  44. constants.TASK_TYPE_CREATE_TRANSFER_DISK_SNAPSHOTS:
  45. replica_tasks.CreateReplicaDiskSnapshotsTask,
  46. constants.TASK_TYPE_DELETE_TRANSFER_TARGET_DISK_SNAPSHOTS:
  47. replica_tasks.DeleteReplicaTargetDiskSnapshotsTask,
  48. constants.TASK_TYPE_RESTORE_TRANSFER_DISK_SNAPSHOTS:
  49. replica_tasks.RestoreReplicaDiskSnapshotsTask,
  50. constants.TASK_TYPE_VALIDATE_TRANSFER_SOURCE_INPUTS:
  51. replica_tasks.ValidateReplicaExecutionSourceInputsTask,
  52. constants.TASK_TYPE_VALIDATE_TRANSFER_DESTINATION_INPUTS:
  53. replica_tasks.ValidateReplicaExecutionDestinationInputsTask,
  54. constants.TASK_TYPE_VALIDATE_DEPLOYMENT_INPUTS:
  55. replica_tasks.ValidateReplicaDeploymentParametersTask,
  56. constants.TASK_TYPE_UPDATE_SOURCE_TRANSFER:
  57. replica_tasks.UpdateSourceReplicaTask,
  58. constants.TASK_TYPE_UPDATE_DESTINATION_TRANSFER:
  59. replica_tasks.UpdateDestinationReplicaTask,
  60. constants.TASK_TYPE_VALIDATE_SOURCE_MINION_POOL_OPTIONS:
  61. minion_pool_tasks.ValidateSourceMinionPoolOptionsTask,
  62. constants.TASK_TYPE_VALIDATE_DESTINATION_MINION_POOL_OPTIONS:
  63. minion_pool_tasks.ValidateDestinationMinionPoolOptionsTask,
  64. constants.TASK_TYPE_CREATE_SOURCE_MINION_MACHINE:
  65. minion_pool_tasks.CreateSourceMinionMachineTask,
  66. constants.TASK_TYPE_CREATE_DESTINATION_MINION_MACHINE:
  67. minion_pool_tasks.CreateDestinationMinionMachineTask,
  68. constants.TASK_TYPE_DELETE_SOURCE_MINION_MACHINE:
  69. minion_pool_tasks.DeleteSourceMinionMachineTask,
  70. constants.TASK_TYPE_DELETE_DESTINATION_MINION_MACHINE:
  71. minion_pool_tasks.DeleteDestinationMinionMachineTask,
  72. constants.TASK_TYPE_SET_UP_SOURCE_POOL_SHARED_RESOURCES:
  73. minion_pool_tasks.SetUpSourcePoolSupportingResourcesTask,
  74. constants.TASK_TYPE_SET_UP_DESTINATION_POOL_SHARED_RESOURCES:
  75. minion_pool_tasks.SetUpDestinationPoolSupportingResources,
  76. constants.TASK_TYPE_TEAR_DOWN_SOURCE_POOL_SHARED_RESOURCES:
  77. minion_pool_tasks.TearDownSourcePoolSupportingResourcesTask,
  78. constants.TASK_TYPE_TEAR_DOWN_DESTINATION_POOL_SHARED_RESOURCES:
  79. minion_pool_tasks.TearDownDestinationPoolSupportingResources,
  80. constants.TASK_TYPE_ATTACH_VOLUMES_TO_SOURCE_MINION:
  81. minion_pool_tasks.AttachVolumesToSourceMinionTask,
  82. constants.TASK_TYPE_DETACH_VOLUMES_FROM_SOURCE_MINION:
  83. minion_pool_tasks.DetachVolumesFromSourceMinionTask,
  84. constants.TASK_TYPE_ATTACH_VOLUMES_TO_DESTINATION_MINION:
  85. minion_pool_tasks.AttachVolumesToDestinationMinionTask,
  86. constants.TASK_TYPE_DETACH_VOLUMES_FROM_DESTINATION_MINION:
  87. minion_pool_tasks.DetachVolumesFromDestinationMinionTask,
  88. constants.TASK_TYPE_ATTACH_VOLUMES_TO_OSMORPHING_MINION:
  89. minion_pool_tasks.AttachVolumesToOSMorphingMinionTask,
  90. constants.TASK_TYPE_DETACH_VOLUMES_FROM_OSMORPHING_MINION:
  91. minion_pool_tasks.DetachVolumesFromOSMorphingMinionTask,
  92. constants.TASK_TYPE_VALIDATE_SOURCE_MINION_POOL_COMPATIBILITY:
  93. minion_pool_tasks.ValidateSourceMinionCompatibilityTask,
  94. constants.TASK_TYPE_VALIDATE_DESTINATION_MINION_POOL_COMPATIBILITY:
  95. minion_pool_tasks.ValidateDestinationMinionCompatibilityTask,
  96. constants.TASK_TYPE_VALIDATE_OSMORPHING_MINION_POOL_COMPATIBILITY:
  97. minion_pool_tasks.ValidateOSMorphingMinionCompatibilityTask,
  98. constants.TASK_TYPE_RELEASE_SOURCE_MINION:
  99. minion_pool_tasks.ReleaseSourceMinionTask,
  100. constants.TASK_TYPE_RELEASE_DESTINATION_MINION:
  101. minion_pool_tasks.ReleaseDestinationMinionTask,
  102. constants.TASK_TYPE_RELEASE_OSMORPHING_MINION:
  103. minion_pool_tasks.ReleaseOSMorphingMinionTask,
  104. constants.TASK_TYPE_COLLECT_OSMORPHING_INFO:
  105. minion_pool_tasks.CollectOSMorphingInfoTask,
  106. constants.TASK_TYPE_HEALTHCHECK_SOURCE_MINION:
  107. minion_pool_tasks.HealthcheckSourceMinionMachineTask,
  108. constants.TASK_TYPE_HEALTHCHECK_DESTINATION_MINION:
  109. minion_pool_tasks.HealthcheckDestinationMinionTask,
  110. constants.TASK_TYPE_POWER_ON_SOURCE_MINION:
  111. minion_pool_tasks.PowerOnSourceMinionTask,
  112. constants.TASK_TYPE_POWER_OFF_SOURCE_MINION:
  113. minion_pool_tasks.PowerOffSourceMinionTask,
  114. constants.TASK_TYPE_POWER_ON_DESTINATION_MINION:
  115. minion_pool_tasks.PowerOnDestinationMinionTask,
  116. constants.TASK_TYPE_POWER_OFF_DESTINATION_MINION:
  117. minion_pool_tasks.PowerOffDestinationMinionTask
  118. }
  119. def get_task_runner_class(task_type):
  120. cls = _TASKS_MAP.get(task_type)
  121. if not cls:
  122. raise exception.NotFound(
  123. "TaskRunner not found for task type: %s" % task_type)
  124. return cls