def _pre_forward(operation: Operation) -> Operation: """Called before forwarding an operation""" # Validate that the operation can be forwarded if operation.operation_type not in routable_operations: raise RoutingRequestException( f"Operation type '{operation.operation_type}' can not be forwarded" ) if operation.operation_type == "REQUEST_CREATE": operation.model = ( beer_garden.requests.RequestValidator.instance().validate_request( operation.model)) # Save the request so it'll have an ID and we'll have something to update operation.model = db.create(operation.model) # Clear parent before forwarding so the child doesn't freak out about an # unknown request operation.model.parent = None operation.model.has_parent = False beer_garden.files.forward_file(operation) # Pull out and store the wait event, if it exists wait_event = operation.kwargs.pop("wait_event", None) if wait_event: beer_garden.requests.request_map[operation.model.id] = wait_event return operation
def _pre_forward(operation: Operation) -> Operation: """Called before forwarding an operation""" # Validate that the operation can be forwarded if operation.operation_type not in routable_operations: raise RoutingRequestException( f"Operation type '{operation.operation_type}' can not be forwarded" ) if operation.operation_type == "REQUEST_CREATE": # Save the request so it'll have an ID and we'll have something to update local_request = create_request(operation.model) if operation.model.namespace == config.get("garden.name"): operation.model = local_request else: # When the target is a remote garden, just capture the id. We don't # want to replace the entire model, as we'd lose the base64 encoded file # parameter data. operation.model.id = local_request.id # Clear parent before forwarding so the child doesn't freak out about an # unknown request operation.model.parent = None operation.model.has_parent = False # Pull out and store the wait event, if it exists wait_event = operation.kwargs.pop("wait_event", None) if wait_event: beer_garden.requests.request_map[operation.model.id] = wait_event return operation