예제 #1
0
파일: api.py 프로젝트: joylhx/Rally
    def task_delete(self, uuid, status=None):
        session = get_session()
        with session.begin():
            query = base_query = (self.model_query(
                models.Task).filter_by(uuid=uuid))
            if status is not None:
                query = base_query.filter_by(status=status)

            (self.model_query(models.WorkloadData).filter_by(
                task_uuid=uuid).delete(synchronize_session=False))

            (self.model_query(models.Workload).filter_by(
                task_uuid=uuid).delete(synchronize_session=False))

            (self.model_query(models.Subtask).filter_by(task_uuid=uuid).delete(
                synchronize_session=False))

            (self.model_query(models.Tag).filter_by(
                uuid=uuid,
                type=consts.TagType.TASK).delete(synchronize_session=False))

            count = query.delete(synchronize_session=False)
            if not count:
                if status is not None:
                    task = base_query.first()
                    if task:
                        raise exceptions.TaskInvalidStatus(uuid=uuid,
                                                           require=status,
                                                           actual=task.status)
                raise exceptions.TaskNotFound(uuid=uuid)
예제 #2
0
    def task_delete(self, uuid, status=None):
        session = get_session()
        with session.begin():
            query = base_query = self.model_query(models.Task).\
                                        filter_by(uuid=uuid)
            if status is not None:
                query = base_query.filter_by(status=status)

            self.model_query(models.TaskResult).\
                filter_by(task_uuid=uuid).\
                delete(synchronize_session=False)

            count = query.delete(synchronize_session=False)
            if not count:
                if status is not None:
                    task = base_query.first()
                    if task:
                        raise exceptions.TaskInvalidStatus(uuid=uuid,
                                                           require=status,
                                                           actual=task.status)
                raise exceptions.TaskNotFound(uuid=uuid)