Esempio n. 1
0
    def get_task_signature(cls, backup, serialized_backup, force=False, **kwargs):
        serialized_snapshots = [
            core_utils.serialize_instance(snapshot)
            for snapshot in backup.snapshots.all()
        ]

        _tasks = [
            core_tasks.StateTransitionTask().si(
                serialized_backup, state_transition='begin_deleting'
            )
        ]
        for serialized_snapshot in serialized_snapshots:
            _tasks.append(
                core_tasks.BackendMethodTask().si(
                    serialized_snapshot,
                    'delete_snapshot',
                    state_transition='begin_deleting',
                )
            )
        for serialized_snapshot in serialized_snapshots:
            _tasks.append(
                core_tasks.PollBackendCheckTask().si(
                    serialized_snapshot, 'is_snapshot_deleted'
                )
            )
            _tasks.append(core_tasks.DeletionTask().si(serialized_snapshot))

        return chain(*_tasks)
Esempio n. 2
0
 def get_failure_signature(cls,
                           instance,
                           serialized_instance,
                           force=False,
                           **kwargs):
     if force:
         return tasks.DeletionTask().si(serialized_instance)
     else:
         return tasks.ErrorStateTransitionTask().s(serialized_instance)
Esempio n. 3
0
 def get_success_signature(cls, instance, serialized_instance, **kwargs):
     return tasks.DeletionTask().si(serialized_instance)
Esempio n. 4
0
 def get_success_signature(cls, instance, serialized_instance, **kwargs):
     # Delete project itself if all task have been completed successfully
     return core_tasks.DeletionTask().si(serialized_instance)
Esempio n. 5
0
 def get_deletion_task(cls, instance, serialized_instance):
     serialized_vm = core_utils.serialize_instance(instance.vm)
     return chain(
         core_tasks.DeletionTask().si(serialized_instance),
         VirtualMachineUpdatedNotificationTask().si(serialized_vm),
     )