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)
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)
def get_success_signature(cls, instance, serialized_instance, **kwargs): return tasks.DeletionTask().si(serialized_instance)
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)
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), )