Exemplo n.º 1
0
async def handle_delete_runs(
        project_id: str,
        deployment_id: str,
        run_id: str,
        session: Session = Depends(database.session_scope),
        kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles DELETE requests to /<run_id>.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    run_id : str
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    str
    """
    project_controller = ProjectController(session,
                                           kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    run_controller = RunController(session)
    run = run_controller.terminate_run(deployment_id=deployment_id)
    return run
Exemplo n.º 2
0
async def handle_post_responses(project_id: str,
                                deployment_id: str,
                                body: dict = Body(...),
                                session: Session = Depends(session_scope)):
    """
    Handles POST requests to /.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    body : fastapi.body
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    fastapi.responses.JSONResponse
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    response_controller = ResponseController(session)
    response_controller.create_response(project_id=project_id,
                                        deployment_id=deployment_id,
                                        body=body)

    return JSONResponse(
        status_code=200,
        content={"message": "OK"},
    )
Exemplo n.º 3
0
async def handle_patch_comparisons(
        project_id: str,
        comparison_id: str,
        comparison: projects.schemas.comparison.ComparisonUpdate,
        session: Session = Depends(database.session_scope),
        kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles PATCH requests to /<comparison_id>.

    Parameters
    ----------
    project_id : str
    comparison_id : str
    comparison : projects.schemas.comparison.ComparisonUpdate
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    projects.schemas.comparison.Comparison
    """
    project_controller = ProjectController(session,
                                           kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    comparison_controller = ComparisonController(session)
    comparison = comparison_controller.update_comparison(
        comparison_id=comparison_id,
        project_id=project_id,
        comparison=comparison,
    )
    return comparison
Exemplo n.º 4
0
async def handle_delete_monitorings(project_id: str,
                                    deployment_id: str,
                                    monitoring_id: str,
                                    session: Session = Depends(session_scope)):
    """
    Handles DELETE requests to /<monitoring_id>.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    monitoring_id : str
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    projects.schemas.message.Message
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    monitoring_controller = MonitoringController(session)
    response = monitoring_controller.delete_monitoring(
        uuid=monitoring_id, project_id=project_id, deployment_id=deployment_id)
    return response
Exemplo n.º 5
0
async def handle_list_operators(project_id: str,
                                deployment_id: str,
                                session: Session = Depends(session_scope)):
    """
    Handles GET requests to /.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    projects.schemas.operator.OperatorList
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    operator_controller = OperatorController(session)
    operators = operator_controller.list_operators(project_id=project_id,
                                                   deployment_id=deployment_id)
    return operators
Exemplo n.º 6
0
async def handle_post_monitorings(
    project_id: str,
    deployment_id: str,
    monitoring: projects.schemas.monitoring.MonitoringCreate,
    background_tasks: BackgroundTasks,
    session: Session = Depends(database.session_scope),
    kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles POST requests to /.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    monitoring : projects.schemas.monitoring.MonitoringCreate
    background_tasks : fastapi.BackgroundTasks
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    projects.schemas.monitoring.Monitoring
    """
    project_controller = ProjectController(session, kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    monitoring_controller = MonitoringController(session, background_tasks)
    monitoring = monitoring_controller.create_monitoring(
        deployment_id=deployment_id, monitoring=monitoring
    )
    return monitoring
Exemplo n.º 7
0
async def handle_get_run(project_id: str,
                         experiment_id: str,
                         run_id: str,
                         session: Session = Depends(session_scope)):
    """
    Handles GET requests to /<run_id>.

    Parameters
    ----------
    project_id : str
    experiment_id : str
    run_id : str
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    projects.schemas.run.Run
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    experiment_controller = ExperimentController(session)
    experiment_controller.raise_if_experiment_does_not_exist(experiment_id)

    run_controller = RunController(session)
    run = run_controller.get_run(project_id=project_id,
                                 experiment_id=experiment_id,
                                 run_id=run_id)
    return run
Exemplo n.º 8
0
async def handle_post_operator(
        project_id: str,
        experiment_id: str,
        operator: projects.schemas.operator.OperatorCreate,
        session: Session = Depends(database.session_scope),
        kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles POST requests to /.

    Parameters
    ----------
    project_id : str
    experiment_id : str
    operator : projects.schemas.operator.OperatorCreate
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    projects.schemas.operator.Operator
    """
    project_controller = ProjectController(session,
                                           kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    experiment_controller = ExperimentController(session)
    experiment_controller.raise_if_experiment_does_not_exist(experiment_id)

    operator_controller = OperatorController(session)
    operator = operator_controller.create_operator(project_id=project_id,
                                                   experiment_id=experiment_id,
                                                   operator=operator)
    return operator
Exemplo n.º 9
0
async def handle_delete_deployment(
        project_id: str,
        deployment_id: str,
        background_tasks: BackgroundTasks,
        session: Session = Depends(database.session_scope),
        kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles DELETE requests to /<deployment_id>.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    projects.schemas.message.Message
    """
    project_controller = ProjectController(session,
                                           kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(
        session, background_tasks, kubeflow_userid=kubeflow_userid)
    deployment = deployment_controller.delete_deployment(
        deployment_id=deployment_id, project_id=project_id)
    return deployment
Exemplo n.º 10
0
async def handle_get_run(session, project_id: str, deployment_id: str,
                         run_id: str):
    """
    Handles GET requests to /<run_id>.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    run_id : str
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    str
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    run_controller = RunController(session)
    run = run_controller.get_run(project_id=project_id,
                                 deployment_id=deployment_id,
                                 run_id=run_id)
    return run
Exemplo n.º 11
0
async def handle_delete_operator(
        project_id: str,
        experiment_id: str,
        operator_id: str,
        session: Session = Depends(database.session_scope),
        kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles DELETE requests to /<operator_id>.

    Parameters
    ----------
    project_id : str
    experiment_id : str
    operator_id : str
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    projects.schemas.message.Message
    """
    project_controller = ProjectController(session,
                                           kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    experiment_controller = ExperimentController(session)
    experiment_controller.raise_if_experiment_does_not_exist(experiment_id)

    operator_controller = OperatorController(session)
    operator = operator_controller.delete_operator(operator_id=operator_id,
                                                   project_id=project_id,
                                                   experiment_id=experiment_id)
    return operator
Exemplo n.º 12
0
async def handle_post_runs(project_id: str,
                           deployment_id: str,
                           background_tasks: BackgroundTasks,
                           session: Session = Depends(session_scope)):
    """
    Handles POST requests to /.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    str
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    run_controller = RunController(session, background_tasks)
    run = run_controller.create_run(project_id=project_id,
                                    deployment_id=deployment_id)
    return run
Exemplo n.º 13
0
async def handle_list_runs(project_id: str,
                           deployment_id: str,
                           session: Session = Depends(session_scope)):
    """
    Handles GET requests to /.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    str
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    run_controller = RunController(session)
    runs = run_controller.list_runs(project_id=project_id,
                                    deployment_id=deployment_id)
    return runs
Exemplo n.º 14
0
async def handle_post_runs(
        project_id: str,
        deployment_id: str,
        background_tasks: BackgroundTasks,
        session: Session = Depends(database.session_scope),
        kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles POST requests to /.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    background_tasks : fastapi.BackgroundTasks
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    str
    """
    project_controller = ProjectController(session,
                                           kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    run_controller = RunController(session)
    run = run_controller.create_run(deployment_id=deployment_id)
    return run
Exemplo n.º 15
0
async def handle_post_operator(
    project_id: str,
    experiment_id: str,
    operator: projects.schemas.operator.OperatorCreate,
    session: Session = Depends(session_scope)):
    """
    Handles POST requests to /.

    Parameters
    ----------
    project_id : str
    experiment_id : str
    operator : projects.schemas.operator.OperatorCreate
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    projects.schemas.operator.Operator
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    experiment_controller = ExperimentController(session)
    experiment_controller.raise_if_experiment_does_not_exist(experiment_id)

    operator_controller = OperatorController(session)
    operator = operator_controller.create_operator(project_id=project_id,
                                                   experiment_id=experiment_id,
                                                   operator=operator)
    return operator
Exemplo n.º 16
0
async def handle_post_deployments(
        project_id: str,
        deployment: projects.schemas.deployment.DeploymentCreate,
        background_tasks: BackgroundTasks,
        session: Session = Depends(database.session_scope),
        kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles POST requests to /.

    Parameters
    ----------
    project_id : str
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    projects.schemas.deployment.Deployment
    """
    project_controller = ProjectController(session,
                                           kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(
        session, background_tasks, kubeflow_userid=kubeflow_userid)
    deployments = deployment_controller.create_deployment(
        project_id=project_id, deployment=deployment)
    return deployments
Exemplo n.º 17
0
async def handle_list_monitorings(
    project_id: str,
    deployment_id: str,
    session: Session = Depends(database.session_scope),
    kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles GET requests to /.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    projects.schemas.monitoring.MonitoringList
    """
    project_controller = ProjectController(session, kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    monitoring_controller = MonitoringController(session)
    monitorings = monitoring_controller.list_monitorings(deployment_id=deployment_id)
    return monitorings
Exemplo n.º 18
0
async def handle_get_deployment(
        project_id: str,
        deployment_id: str,
        session: Session = Depends(database.session_scope),
        kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles GET requests to /<deployment_id>.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    projects.schemas.deployment.Deployment
    """
    project_controller = ProjectController(session,
                                           kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(
        session, kubeflow_userid=kubeflow_userid)
    deployment = deployment_controller.get_deployment(
        deployment_id=deployment_id)
    return deployment
Exemplo n.º 19
0
async def handle_delete_monitorings(
    project_id: str,
    deployment_id: str,
    monitoring_id: str,
    session: Session = Depends(database.session_scope),
    kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles DELETE requests to /<monitoring_id>.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    monitoring_id : str
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    projects.schemas.message.Message
    """
    project_controller = ProjectController(session, kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    monitoring_controller = MonitoringController(session)
    response = monitoring_controller.delete_monitoring(uuid=monitoring_id)
    return response
Exemplo n.º 20
0
async def handle_patch_comparisons(project_id: str,
                                   comparison_id: str,
                                   comparison: projects.schemas.comparison.ComparisonUpdate,
                                   session: Session = Depends(session_scope)):
    """
    Handles PATCH requests to /<comparison_id>.

    Parameters
    ----------
    project_id : str
    comparison_id : str
    comparison : projects.schemas.comparison.ComparisonUpdate
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    projects.schemas.comparison.Comparison
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    comparison_controller = ComparisonController(session)
    comparison = comparison_controller.update_comparison(
        comparison_id=comparison_id,
        project_id=project_id,
        comparison=comparison,
    )
    return comparison
Exemplo n.º 21
0
async def handle_post_monitorings(
    project_id: str,
    deployment_id: str,
    monitoring: projects.schemas.monitoring.MonitoringCreate,
    session: Session = Depends(session_scope)):
    """
    Handles POST requests to /.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    monitoring : projects.schemas.monitoring.MonitoringCreate
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    projects.schemas.monitoring.Monitoring
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    monitoring_controller = MonitoringController(session)
    monitoring = monitoring_controller.create_monitoring(
        project_id=project_id,
        deployment_id=deployment_id,
        monitoring=monitoring)
    return monitoring
Exemplo n.º 22
0
async def handle_delete_comparisons(project_id: str,
                                    comparison_id: str,
                                    session: Session = Depends(session_scope)):
    """
    Handles DELETE requests to /<comparison_id>.

    Parameters
    ----------
    project_id : str
    comparison_id : str
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    projects.schemas.message.Message
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    comparison_controller = ComparisonController(session)
    comparison = comparison_controller.delete_comparison(
        comparison_id=comparison_id,
        project_id=project_id,
    )
    return comparison
Exemplo n.º 23
0
async def handle_list_logs(
        project_id: str,
        deployment_id: str,
        run_id: str,
        session: Session = Depends(database.session_scope),
        kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles GET requests to /.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    run_id : str
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    str
    """
    project_controller = ProjectController(session,
                                           kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    log_controller = LogController()
    logs = log_controller.list_logs(project_id=project_id,
                                    deployment_id=deployment_id,
                                    run_id=run_id)
    return logs
Exemplo n.º 24
0
async def handle_list_projects(request: Request,
                               session: Session = Depends(session_scope)):
    """
    Handles GET requests to /.

    Parameters
    ----------
    request : fastapi.Request
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    projects.schemas.project.ProjectList
    """
    project_controller = ProjectController(session)
    filters = format_query_params(str(request.query_params))
    order_by = filters.pop("order", None)
    page = filters.pop("page", 1)
    if page:
        page = int(page)
    page_size = filters.pop("page_size", 10)
    if page_size:
        page_size = int(page_size)
    projects = project_controller.list_projects(page=page,
                                                page_size=page_size,
                                                order_by=order_by,
                                                **filters)
    return projects
Exemplo n.º 25
0
async def handle_patch_operator(project_id: str,
                                deployment_id: str,
                                operator_id: str,
                                operator: projects.schemas.operator.OperatorUpdate,
                                session: Session = Depends(session_scope)):
    """
    Handles PATCH requests to /<deployment_id>/operators/<operator_id>.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    operator_id : str
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    projects.schemas.operator.Operator
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    operator_controller = OperatorController(session)
    operator = operator_controller.update_operator(operator_id=operator_id,
                                                   project_id=project_id,
                                                   deployment_id=deployment_id,
                                                   operator=operator)
    return operator
Exemplo n.º 26
0
async def handle_post_prediction(project_id: str,
                                 deployment_id: str,
                                 file: UploadFile = File(...),
                                 session: Session = Depends(session_scope)):
    """
    Handles POST request to /.

    Parameters
    -------
    project_id : str
    deployment_id : str
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    dict
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment_controller.raise_if_deployment_does_not_exist(deployment_id)

    prediction_controller = PredictionController(session)
    prediction = prediction_controller.create_prediction(
        project_id=project_id, deployment_id=deployment_id, file=file.file)
    return prediction
Exemplo n.º 27
0
async def handle_list_comparisons(
        project_id: str,
        session: Session = Depends(database.session_scope),
        kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles GET requests to /.

    Parameters
    ----------
    project_id : str
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    projects.schemas.comparison.ComparisonList
    """
    project_controller = ProjectController(session,
                                           kubeflow_userid=kubeflow_userid)
    project_controller.raise_if_project_does_not_exist(project_id)

    comparison_controller = ComparisonController(session)
    comparisons = comparison_controller.list_comparisons(project_id=project_id)
    return comparisons
Exemplo n.º 28
0
async def handle_delete_operator(project_id: str,
                                 experiment_id: str,
                                 operator_id: str,
                                 session: Session = Depends(session_scope)):
    """
    Handles DELETE requests to /<operator_id>.

    Parameters
    ----------
    project_id : str
    experiment_id : str
    operator_id : str
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    projects.schemas.message.Message
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    experiment_controller = ExperimentController(session)
    experiment_controller.raise_if_experiment_does_not_exist(experiment_id)

    operator_controller = OperatorController(session)
    operator = operator_controller.delete_operator(operator_id=operator_id,
                                                   project_id=project_id,
                                                   experiment_id=experiment_id)
    return operator
Exemplo n.º 29
0
async def handle_list_metrics(project_id: str,
                              experiment_id: str,
                              run_id: str,
                              operator_id: str,
                              session: Session = Depends(session_scope)):
    """
    Handles GET requests to /.

    Parameters
    ----------
    project_id : str
    experiment_id : str
    run_id : str
    operator_id : str
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    list
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    experiment_controller = ExperimentController(session)
    experiment_controller.raise_if_experiment_does_not_exist(experiment_id)

    run_controller = RunController(session)
    run_controller.raise_if_run_does_not_exist(run_id, experiment_id)

    metric_controller = MetricController(session)
    metrics = metric_controller.list_metrics(project_id=project_id,
                                             experiment_id=experiment_id,
                                             operator_id=operator_id,
                                             run_id=run_id)
    return metrics
Exemplo n.º 30
0
async def handle_patch_deployment(project_id: str,
                                  deployment_id: str,
                                  deployment: projects.schemas.deployment.DeploymentUpdate,
                                  session: Session = Depends(session_scope)):
    """
    Handles PATCH requests to /<deployment_id>.

    Parameters
    ----------
    project_id : str
    deployment_id : str
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    projects.schemas.deployment.Deployment
    """
    project_controller = ProjectController(session)
    project_controller.raise_if_project_does_not_exist(project_id)

    deployment_controller = DeploymentController(session)
    deployment = deployment_controller.update_deployment(deployment_id=deployment_id,
                                                         project_id=project_id,
                                                         deployment=deployment)
    return deployment