예제 #1
0
파일: api.py 프로젝트: mwbutcher/rally
def env_set_status(session, uuid, old_status, new_status):
    count = (session.query(models.Env).filter_by(
        uuid=uuid, status=old_status).update({"status": new_status}))
    if count:
        return True
    raise exceptions.DBConflict("Env %s should be in status %s actual %s" %
                                (uuid, old_status, env_get_status(uuid)))
예제 #2
0
파일: api.py 프로젝트: mwbutcher/rally
def task_delete(session, uuid, status=None):
    (session.query(models.WorkloadData).filter_by(task_uuid=uuid).delete(
        synchronize_session=False))

    (session.query(models.Workload).filter_by(task_uuid=uuid).delete(
        synchronize_session=False))

    (session.query(models.Subtask).filter_by(task_uuid=uuid).delete(
        synchronize_session=False))

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

    query = session.query(models.Task).filter_by(uuid=uuid)
    if status:
        count = query.filter_by(status=status).delete(
            synchronize_session="fetch")
    else:
        count = query.delete(synchronize_session="fetch")
    if not count:
        if status is not None:
            task = query.first()
            if task:
                raise exceptions.DBConflict(
                    "Task `%(uuid)s` in `%(actual)s` status but "
                    "`%(require)s` is required." % {
                        "uuid": uuid,
                        "require": status,
                        "actual": task.status
                    })

        raise exceptions.DBRecordNotFound(criteria="uuid: %s" % uuid,
                                          table="tasks")
예제 #3
0
파일: api.py 프로젝트: ktibi/rally
    def platform_set_status(self, uuid, old_status, new_status):
        count = (self.model_query(models.Platform).filter_by(
            uuid=uuid, status=old_status).update({"status": new_status}))
        if count:
            return True

        platform = self.platform_get(uuid)
        raise exceptions.DBConflict(
            "Platform %s should be in status %s actual %s" %
            (uuid, old_status, platform["status"]))
예제 #4
0
파일: api.py 프로젝트: ktibi/rally
    def deployment_delete(self, uuid):
        session = get_session()
        with session.begin():
            count = (self.model_query(
                models.Resource,
                session=session).filter_by(deployment_uuid=uuid).count())
            if count:
                raise exceptions.DBConflict(
                    "There are allocated resources for the deployment %s" %
                    uuid)

            count = (self.model_query(
                models.Deployment, session=session).filter_by(
                    uuid=uuid).delete(synchronize_session=False))
            if not count:
                raise exceptions.DBRecordNotFound(criteria="uuid: %s" % uuid,
                                                  table="deployments")