client

package
v0.0.0-...-036eace Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2020 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultTransportTimeout = 30 * time.Second
)

Default value for client requests to wait for a reply

Variables

This section is empty.

Functions

func APIPath

func APIPath(path ...string) string

APIPath prefixes API version to a path

Types

type Client

type Client interface {
	SetTransportTimeout(timeout time.Duration)

	QueryStruct(method, path string, params QueryParams, header http.Header, body io.Reader, ETag string, target interface{}) (etag string, err error)
	QueryOperation(method, path string, params QueryParams, header http.Header, body io.Reader, ETag string) (operation Operation, etag string, err error)
	CallAPI(method, path string, params QueryParams, header http.Header, body io.Reader, ETag string) (response *api.Response, etag string, err error)

	Websocket(resource string) (conn *websocket.Conn, err error)

	// Event handling functions
	GetEvents() (listener *EventListener, err error)
}

The Client interface represents all available REST client operations

func New

func New(addr interface{}, tlsConfig *tls.Config) (Client, error)

New returns a REST client. Depending on provided addr parameter, it connects to a remote network server or through a unix socket

type Doer

type Doer interface {
	Do(*http.Request) (*http.Response, error)
}

Doer is the implementation of the Client engine

type EventListener

type EventListener struct {
	// contains filtered or unexported fields
}

EventListener is the event struct is used to interact with an event stream

func (*EventListener) AddHandler

func (e *EventListener) AddHandler(target Target) (Target, error)

AddHandler adds a function to be called whenever an event is received

func (*EventListener) Disconnect

func (e *EventListener) Disconnect()

Disconnect must be used once done listening for events

func (*EventListener) IsActive

func (e *EventListener) IsActive() bool

IsActive returns true if this listener is still connected, false otherwise.

func (*EventListener) RemoveHandler

func (e *EventListener) RemoveHandler(target Target) error

RemoveHandler removes a function to be called whenever an event is received

func (*EventListener) Wait

func (e *EventListener) Wait() error

Wait hangs until the server disconnects the connection or Disconnect() is called

type MockClient

type MockClient struct {
	Response      *api.Response
	Operation     *MockOperation
	EventListener *EventListener
	ETag          string
}

MockClient mock of Client interface for testing purpose

func (*MockClient) CallAPI

func (c *MockClient) CallAPI(method, path string, params QueryParams, header http.Header, body io.Reader, ETag string) (response *api.Response, etag string, err error)

CallAPI mocked

func (*MockClient) GetEvents

func (c *MockClient) GetEvents() (eventListener *EventListener, err error)

GetEvents mocked

func (*MockClient) QueryOperation

func (c *MockClient) QueryOperation(method, path string, params QueryParams, header http.Header, body io.Reader, ETag string) (op Operation, etag string, err error)

QueryOperation mocked

func (*MockClient) QueryStruct

func (c *MockClient) QueryStruct(method, path string, params QueryParams, header http.Header, body io.Reader, ETag string, target interface{}) (string, error)

QueryStruct mocked

func (*MockClient) SetTransportTimeout

func (c *MockClient) SetTransportTimeout(timeout time.Duration)

SetTransportTimeout mocked

func (*MockClient) Websocket

func (c *MockClient) Websocket(resource string) (conn *websocket.Conn, err error)

Websocket mocked

type MockOperation

type MockOperation struct {
	Operation api.Operation
	Websocket *websocket.Conn

	Targets []Target
}

MockOperation mock of Operation interface

func (*MockOperation) AddHandler

func (op *MockOperation) AddHandler(function func(api.Operation)) (target Target, err error)

AddHandler mocked

func (*MockOperation) Cancel

func (op *MockOperation) Cancel() error

Cancel mocked

func (*MockOperation) Get

func (op *MockOperation) Get() api.Operation

Get mocked

func (*MockOperation) GetWebsocket

func (op *MockOperation) GetWebsocket() (conn *websocket.Conn, err error)

GetWebsocket mocked

func (*MockOperation) Refresh

func (op *MockOperation) Refresh() error

Refresh mocked

func (*MockOperation) RemoveHandler

func (op *MockOperation) RemoveHandler(target Target) error

RemoveHandler mocked

func (*MockOperation) Wait

func (op *MockOperation) Wait(ctx context.Context) error

Wait mocked

type Operation

type Operation interface {
	AddHandler(function func(api.Operation)) (target Target, err error)
	Cancel() (err error)
	Get() (op api.Operation)
	RemoveHandler(target Target) (err error)
	Refresh() (err error)
	Wait(ctx context.Context) (err error)
}

The Operation interface represents a currently running operation.

type Operations

type Operations interface {
	ListOperationUUIDs() (uuids []string, err error)
	ListOperations() (operations []api.Operation, err error)
	RetrieveOperationByID(uuid string) (op *api.Operation, etag string, err error)
	WaitForOperationToFinish(uuid string, timeout time.Duration) (op *api.Operation, err error)
	DeleteOperation(uuid string) (err error)
}

The Operations interface represents operations exposed API methods

func UpgradeToOperationsClient

func UpgradeToOperationsClient(c Client) Operations

UpgradeToOperationsClient wraps generic client to implement Operations interface operations

type QueryParams

type QueryParams map[string]string

QueryParams request query parameter

type Target

type Target func(interface{})

Target is the function receiving events

Jump to

Keyboard shortcuts

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