http

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2021 License: Apache-2.0 Imports: 7 Imported by: 3

Documentation

Overview

Package http provides datatypes that are shared between server and client.

Index

Constants

View Source
const (
	// ListTotalItemsHdr is HTTP header that is set as part of response to filtering methods.
	// It contains number of items that match a filter.
	ListTotalItemsHdr = "Boruta-List-Total"
	// ListRemainingItemsHdr is HTTP header that is set in response to filtering methods. It contains
	// number of items that weren't paged through yet.
	ListRemainingItemsHdr = "Boruta-List-Remaining"
	// ListBatchSizeHdr is HTTP header that is set in responses to filtering methods. It contains
	// number of items in the response.
	ListBatchSizeHdr = "Boruta-List-Batch-Size"
	// RequestStateHdr is HTTP header that is set in responses that (would) carry boruta.ReqInfo.
	// It contains state of the request.
	RequestStateHdr = "Boruta-Request-State"
	// JobTimeoutHdr is HTTP header that is set in responses that (would) carry boruta.ReqInfo
	// of request that is in INPROGRESS state. It denotes when timeout will pass and request will
	// be closed.
	JobTimeoutHdr = "Boruta-Job-Timeout"
	// WorkerStateHdr is HTTP header that is set in responses that (would) carry
	// boruta.WorkerInfo. It contains state of the worker.
	WorkerStateHdr = "Boruta-Worker-State"
	// ServerVersionHdr is HTTP header that is set when Boruta version information is requested.
	// It contains version of the server.
	ServerVersionHdr = "Boruta-Server-Version"
	// APIVersionHdr is HTTP header that is set when Boruta version information is requested. It
	// contains version of the HTTP API.
	APIVersionHdr = "Boruta-Api-Version"
	// APIStateHdr is HTTP header that is set when Boruta version information is requested. It
	// contains state of used API version.
	APIStateHdr = "Boruta-Api-State"
)

Headers returned by Boruta.

View Source
const (
	// Devel means that API is in active development and changes may occur.
	Devel = "devel"
	// Stable means that there won't be any changes in the API.
	Stable = "stable"
	// Deprecated means that there is newer stable version of API and this version may be
	// removed in the future.
	Deprecated = "deprecated"
)

API possible states.

View Source
const (
	// DateFormat denotes layout of timestamps used by Boruta HTTP API.
	DateFormat = time.RFC3339
)

Variables

View Source
var (
	// ErrNotImplemented is returned when requested functionality isn't
	// implemented yet.
	ErrNotImplemented = errors.New("not implemented yet")
	// ErrInternalServerError is returned when serious error in the server
	// occurs which isn't users' fault.
	ErrInternalServerError = errors.New("internal server error")
	// ErrBadRequest is returned when User request is invalid.
	ErrBadRequest = errors.New("invalid request")
	// ErrBadID is returned when User provided ID which can't be parsed into
	// uint.
	ErrBadID = errors.New("ID provided in URL isn't valid")
	// ErrBadUUID is returned when User provided ID which isn't valid UUID.
	ErrBadUUID = errors.New("ID provided in URL isn't valid UUID")
	// ErrIDMismatch is returned when User provided different ID values in
	// URL and JSON.
	ErrIDMismatch = errors.New("request ID set in JSON doesn't match ID from URL")
)

Functions

This section is empty.

Types

type AccessInfo2

type AccessInfo2 struct {
	// Addr is necessary information to connect to a tunnel to Dryad.
	Addr *net.TCPAddr
	// Key is private RSA key in PEM format.
	Key string
	// Username is a login name for the job session.
	Username string
}

AccessInfo2 structure is used by HTTP instead of AccessInfo when acquiring worker. The only difference is that key field is in PEM format instead of rsa.PrivateKey. It is temporary solution - session private keys will be replaces with users' public keys when proper user support is added.

type BorutaVersion

type BorutaVersion struct {
	Server string
	API    string `json:"API_Version"`
	State  string `json:"API_State"`
}

BorutaVersion contains information about server and API version.

type ReqIDPack

type ReqIDPack struct {
	boruta.ReqID
}

ReqIDPack is used for JSON (un)marshaller.

type RequestsListSpec added in v0.2.0

type RequestsListSpec struct {
	// Filter contains information how to filter list of requests.
	Filter *filter.Requests
	// Sorter contains SortInfo data.
	Sorter *boruta.SortInfo
	// Paginator contains RequestsPaginator.
	Paginator *boruta.RequestsPaginator
}

RequestsListSpec is intended for (un)marshaling ListRequests parameters in HTTP API.

type Response added in v0.2.0

type Response struct {
	// Data contains actual content (e.g. pointer to structure, error) that will be marshalled
	// and passed in HTTP response body.
	Data interface{}
	// Additional headers that will be added to HTTP response.
	Headers http.Header
}

Response is desired to be used by HTTP API handlers as a return value.

func NewResponse added in v0.2.0

func NewResponse(data interface{}, headers http.Header) *Response

NewResponse takes data of any type and http.Headers and prepares pointer to Response structure, which should be returned by HTTP API handler function.

type ServerError

type ServerError struct {
	// Err contains general error string.
	Err string `json:"message"`
	// Status contains HTTP error code that should be returned with the error.
	Status int `json:"-"`
}

ServerError represents error that occured while creating response.

func NewServerError

func NewServerError(err error, details ...string) (ret *ServerError)

NewServerError provides pointer to initialized ServerError.

func (*ServerError) Error

func (err *ServerError) Error() string

Error is implementation of error interface (it returns error string).

type WorkerStatePack

type WorkerStatePack struct {
	boruta.WorkerState
}

WorkerStatePack is used by JSON (un)marshaller.

type WorkersListSpec added in v0.2.0

type WorkersListSpec struct {
	// Filter contains information how to filter list of workers.
	Filter *filter.Workers
	// Sorter contains SortInfo data.
	Sorter *boruta.SortInfo
	// Paginator contains WorkersPaginator.
	Paginator *boruta.WorkersPaginator
}

WorkersListSpec is intended for (un)marshaling ListWorkers parameters in HTTP API.

Directories

Path Synopsis
Package client provides methods for interaction with Boruta REST API server.
Package client provides methods for interaction with Boruta REST API server.
server
api
Package api aggregates all availabe Boruta HTTP API versions.
Package api aggregates all availabe Boruta HTTP API versions.
api/v1
Package v1 provides HTTP API version 1 of Boruta.
Package v1 provides HTTP API version 1 of Boruta.

Jump to

Keyboard shortcuts

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