Documentation
¶
Overview ¶
Package rendering provides stateful event rendering service.
State of the rendering service should be set from the main event dispatch thread prior to releasing threads that are registered for the event.
Example of INVOKE event:
[thread] // suspended in READY state
[main] // set renderer for INVOKE event [main] renderingService.SetRenderer(rendering.NewInvokeRenderer()) [main] // release threads registered for INVOKE event
[thread] // receives INVOKE event
Index ¶
- Constants
- Variables
- func RenderAccepted(w http.ResponseWriter, r *http.Request)
- func RenderForbiddenWithTypeMsg(w http.ResponseWriter, r *http.Request, errorType string, format string, ...)
- func RenderInternalServerError(w http.ResponseWriter, r *http.Request)
- func RenderInteropError(writer http.ResponseWriter, request *http.Request, err error)
- func RenderInvalidFunctionResponseMode(w http.ResponseWriter, r *http.Request)
- func RenderInvalidRequestID(w http.ResponseWriter, r *http.Request)
- func RenderJSON(status int, w http.ResponseWriter, r *http.Request, v interface{}) error
- func RenderRequestEntityTooLarge(w http.ResponseWriter, r *http.Request)
- func RenderRuntimeLogsResponse(w http.ResponseWriter, respBody []byte, status int, ...) error
- func RenderTruncatedHTTPRequestError(w http.ResponseWriter, r *http.Request)
- type EventRenderingService
- type InvokeRenderer
- type InvokeRendererMetrics
- type RendererState
- type RestoreRenderer
- type ShutdownRenderer
Constants ¶
const ( // ErrorTypeInternalServerError error type for internal server error ErrorTypeInternalServerError = "InternalServerError" // ErrorTypeInvalidStateTransition error type for invalid state transition ErrorTypeInvalidStateTransition = "InvalidStateTransition" // ErrorTypeInvalidRequestID error type for invalid request ID error ErrorTypeInvalidRequestID = "InvalidRequestID" // ErrorTypeRequestEntityTooLarge error type for payload too large ErrorTypeRequestEntityTooLarge = "RequestEntityTooLarge" // ErrorTypeTruncatedHTTPRequest error type for truncated HTTP request ErrorTypeTruncatedHTTPRequest = "TruncatedHTTPRequest" )
Variables ¶
var ErrRenderingServiceStateNotSet = errors.New("EventRenderingService state not set")
ErrRenderingServiceStateNotSet returned when state not set
Functions ¶
func RenderAccepted ¶
func RenderAccepted(w http.ResponseWriter, r *http.Request)
RenderAccepted method for rendering accepted status response
func RenderForbiddenWithTypeMsg ¶
func RenderForbiddenWithTypeMsg(w http.ResponseWriter, r *http.Request, errorType string, format string, args ...interface{})
RenderForbiddenWithTypeMsg method for rendering error response
func RenderInternalServerError ¶
func RenderInternalServerError(w http.ResponseWriter, r *http.Request)
RenderInternalServerError method for rendering error response
func RenderInteropError ¶
func RenderInteropError(writer http.ResponseWriter, request *http.Request, err error)
RenderInteropError is a convenience method for interpreting interop errors
func RenderInvalidFunctionResponseMode ¶
func RenderInvalidFunctionResponseMode(w http.ResponseWriter, r *http.Request)
RenderInvalidFunctionResponseMode renders invalid function response mode response
func RenderInvalidRequestID ¶
func RenderInvalidRequestID(w http.ResponseWriter, r *http.Request)
RenderInvalidRequestID renders invalid request ID error response
func RenderJSON ¶
RenderJSON: - marshals 'v' to JSON, automatically escaping HTML - sets the Content-Type as application/json - sets the HTTP response status code - returns an error if it occurred before writing to response TODO: r *http.Request is not used, remove it
func RenderRequestEntityTooLarge ¶
func RenderRequestEntityTooLarge(w http.ResponseWriter, r *http.Request)
RenderRequestEntityTooLarge method for rendering error response
func RenderRuntimeLogsResponse ¶
func RenderRuntimeLogsResponse(w http.ResponseWriter, respBody []byte, status int, headers map[string][]string) error
RenderRuntimeLogsResponse renders response from Telemetry API
func RenderTruncatedHTTPRequestError ¶
func RenderTruncatedHTTPRequestError(w http.ResponseWriter, r *http.Request)
RenderTruncatedHTTPRequestError method for rendering error response
Types ¶
type EventRenderingService ¶
type EventRenderingService struct {
// contains filtered or unexported fields
}
EventRenderingService is a state machine for rendering runtime and agent API responses.
func NewRenderingService ¶
func NewRenderingService() *EventRenderingService
NewRenderingService returns new EventRenderingService.
func (*EventRenderingService) RenderAgentEvent ¶
func (s *EventRenderingService) RenderAgentEvent(w http.ResponseWriter, r *http.Request) error
RenderAgentEvent delegates to state implementation.
func (*EventRenderingService) RenderRuntimeEvent ¶
func (s *EventRenderingService) RenderRuntimeEvent(w http.ResponseWriter, r *http.Request) error
RenderRuntimeEvent delegates to state implementation.
func (*EventRenderingService) SetRenderer ¶
func (s *EventRenderingService) SetRenderer(state RendererState)
SetRenderer set current state
type InvokeRenderer ¶
type InvokeRenderer struct {
// contains filtered or unexported fields
}
InvokeRenderer knows how to render invoke event.
func NewInvokeRenderer ¶
func NewInvokeRenderer(ctx context.Context, invoke *interop.Invoke, requestBuffer *bytes.Buffer, traceParser func(context.Context) string) *InvokeRenderer
NewInvokeRenderer returns new invoke event renderer
func (*InvokeRenderer) GetMetrics ¶
func (s *InvokeRenderer) GetMetrics() InvokeRendererMetrics
func (*InvokeRenderer) RenderAgentEvent ¶
func (s *InvokeRenderer) RenderAgentEvent(writer http.ResponseWriter, request *http.Request) error
RenderAgentEvent renders invoke event json for agent.
func (*InvokeRenderer) RenderRuntimeEvent ¶
func (s *InvokeRenderer) RenderRuntimeEvent(writer http.ResponseWriter, request *http.Request) error
RenderRuntimeEvent renders invoke payload for runtime.
type InvokeRendererMetrics ¶
InvokeRendererMetrics contains metrics of invoke request
type RendererState ¶
type RendererState interface {
RenderAgentEvent(w http.ResponseWriter, r *http.Request) error
RenderRuntimeEvent(w http.ResponseWriter, r *http.Request) error
}
RendererState is renderer object state.
type RestoreRenderer ¶
type RestoreRenderer struct{}
func NewRestoreRenderer ¶
func NewRestoreRenderer() *RestoreRenderer
func (*RestoreRenderer) RenderAgentEvent ¶
func (s *RestoreRenderer) RenderAgentEvent(writer http.ResponseWriter, request *http.Request) error
func (*RestoreRenderer) RenderRuntimeEvent ¶
func (s *RestoreRenderer) RenderRuntimeEvent(writer http.ResponseWriter, request *http.Request) error
type ShutdownRenderer ¶
type ShutdownRenderer struct {
AgentEvent model.AgentShutdownEvent
}
ShutdownRenderer renderer for shutdown event.
func (*ShutdownRenderer) RenderAgentEvent ¶
func (s *ShutdownRenderer) RenderAgentEvent(w http.ResponseWriter, r *http.Request) error
RenderAgentEvent renders shutdown event for agent.
func (*ShutdownRenderer) RenderRuntimeEvent ¶
func (s *ShutdownRenderer) RenderRuntimeEvent(w http.ResponseWriter, r *http.Request) error
RenderRuntimeEvent renders shutdown event for runtime.