apiserver

package
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 26, 2022 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultAddr = "0.0.0.0:7074"

DefaultAddr is the default address of the APIServer

Variables

View Source
var (
	// ErrDestUnknown is returned when a message is asked to be dispatched to an unknown replicas
	ErrDestUnknown = errors.New("destination unknown")
	// ErrFailedMarshal is returned when the message could not be marshalled
	ErrFailedMarshal = errors.New("failed to marshal data")
	// ErrDuplicateDispatch is returned when a message already sent is being dispatched again
	ErrDuplicateDispatch = errors.New("message already dispatched")
	// ErrSendFailed is returned when the request could not be created
	ErrSendFailed = errors.New("sending failed")
	// ErrResponseReadFail is returned when the response to the request could not be read
	ErrResponseReadFail = errors.New("failed to read response")
	// ErrBadResponse is returned when the request did not receive a 2** response
	ErrBadResponse = errors.New("bad response")
)

Functions

This section is empty.

Types

type APIServer

type APIServer struct {
	*types.BaseService
	// contains filtered or unexported fields
}

APIServer runs a HTTP server to receive messages from the replicas and provide an interactive dashboard

func NewAPIServer

func NewAPIServer(ctx *context.RootContext, messageParser types.MessageParser, dashboard DashboardRouter) *APIServer

NewAPIServer instantiates APIServer

func (*APIServer) ForgetSentMessages added in v0.2.1

func (a *APIServer) ForgetSentMessages()

func (*APIServer) HandleDashboard

func (srv *APIServer) HandleDashboard(c *gin.Context)

HandleDashboard is the handler for the router `/dashboard`

func (*APIServer) HandleDashboardName

func (srv *APIServer) HandleDashboardName(c *gin.Context)

HandleDashboardName is the handler for `/dashboard/name` route of the APIServer

func (*APIServer) HandleEvent

func (srv *APIServer) HandleEvent(c *gin.Context)

HandleEvent is the handler for the router `/event` . The route is used by replicas to send events to the scheduler

func (*APIServer) HandleMessage

func (srv *APIServer) HandleMessage(c *gin.Context)

HandleMessage is the handler for the route `/message` which is used by replicas to send messages

func (*APIServer) HandleReplicaPost

func (srv *APIServer) HandleReplicaPost(c *gin.Context)

HandleReplicaPost is the handler for the route `/replica` for a POST request. The route is used by replicas to register and start communicating with the scheduler

func (*APIServer) RestartAll added in v0.2.1

func (d *APIServer) RestartAll() error

RestartAll restarts all the replicas

func (*APIServer) RestartReplica added in v0.2.1

func (d *APIServer) RestartReplica(replica types.ReplicaID) error

RestartReplica should be called to direct the replica to restart

func (*APIServer) SendMessage added in v0.2.1

func (a *APIServer) SendMessage(msg *types.Message) error

func (*APIServer) SendTimeout added in v0.2.1

func (d *APIServer) SendTimeout(t *types.ReplicaTimeout) error

Send a timeout message to the replica This is the equivalent of ending a timeout at the replica

func (*APIServer) Start

func (a *APIServer) Start()

Start starts the APIServer and implements Service

func (*APIServer) StartReplica added in v0.2.1

func (d *APIServer) StartReplica(replica types.ReplicaID) error

StartReplica should be called to direct the replica to start running

func (*APIServer) Stop

func (a *APIServer) Stop()

Stop stops the APIServer and implements Service

func (*APIServer) StopReplica added in v0.2.1

func (d *APIServer) StopReplica(replica types.ReplicaID) error

StopReplica should be called to direct the replica to stop running

type DashboardRouter

type DashboardRouter interface {
	// Name should return the key for the dashboard type
	Name() string
	// SetupRouter should set up the routes for the dashboard
	SetupRouter(*gin.RouterGroup)
}

DashboardRouter for handling routes that are specific to the dashboard. The APIServer will be initialized with an instance of DashboardRouter. The dashboard routes depends on the mode in which the scheduler is run.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL