コード例 #1
0
def cancel_request(request_id: str = None, request: Request = None) -> Request:
    """Mark a Request as CANCELED

    Args:
        request_id: The Request ID to cancel
        request: The Request to cancel

    Returns:
        The modified Request

    Raises:
        ModelValidationError: The Request is already completed

    """
    request = request or db.query_unique(
        Request, raise_missing=True, id=request_id)

    request.status = "CANCELED"
    request = db.update(request)

    # TODO - Metrics here?

    return request
コード例 #2
0
def complete_request(
    request_id: str = None,
    request: Request = None,
    status: str = None,
    output: str = None,
    error_class: str = None,
) -> Request:
    """Mark a Request as completed

    Args:
        request_id: The Request ID to complete
        request: The Request to complete
        status: The status to apply to the Request
        output: The output to apply to the Request
        error_class: The error class to apply to the Request

    Returns:
        The modified Request

    Raises:
        ModelValidationError: The Request is already completed

    """
    request = request or db.query_unique(
        Request, raise_missing=True, id=request_id)

    request.status = status
    request.output = output
    request.error_class = error_class

    request = db.update(request)

    # Metrics
    request_completed(request)

    return request
コード例 #3
0
def start_request(request_id: str = None, request: Request = None) -> Request:
    """Mark a Request as IN PROGRESS

    Args:
        request_id: The Request ID to start
        request: The Request to start

    Returns:
        The modified Request

    Raises:
        ModelValidationError: The Request is already completed

    """
    request = request or db.query_unique(
        Request, raise_missing=True, id=request_id)

    request.status = "IN_PROGRESS"
    request = db.update(request)

    # Metrics
    request_started(request)

    return request
コード例 #4
0
 def test_invalid_status_transitions(self, start, end):
     request = Request(status=start)
     with pytest.raises(RequestStatusTransitionError):
         request.status = end
コード例 #5
0
 def test_set_valid_status(self):
     request = Request(status="CREATED")
     request.status = "RECEIVED"
     request.status = "IN_PROGRESS"
     request.status = "SUCCESS"
コード例 #6
0
def invalid_request(request: Request = None):
    request.status = "INVALID"
    return request
コード例 #7
0
ファイル: models_test.py プロジェクト: hazmat345/brewtils
 def test_set_valid_status(self):
     request = Request(status='CREATED')
     request.status = 'RECEIVED'
     request.status = 'IN_PROGRESS'
     request.status = 'SUCCESS'