api

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2019 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type API

type API interface {
	// Addr is the address of the API service.
	Addr() string
	// Start starts the API. To stop the API, cancel the context.
	Start(context.Context) error
}

API controlls the dashboard API service.

func New

func New(service Service) (API, error)

New creates a new API instance for DashService.

type Client

type Client struct {
	DashboardConnection DashboardConnection
}

Client is a dashboard service API client.

func NewClient

func NewClient(address string, options ...ClientOption) (*Client, error)

NewClient creates an instance of the API client. It requires the address of the API.

func (*Client) CancelPortForward

func (c *Client) CancelPortForward(ctx context.Context, id string)

CancelPortForward cancels a port forward.

func (*Client) Close

func (c *Client) Close() error

Close closes the client's connection.

func (*Client) ForceFrontendUpdate

func (c *Client) ForceFrontendUpdate(ctx context.Context) error

ForceFrontendUpdate forces the frontend to update itself.

func (*Client) Get

Get retrieves an object from the dashboard's objectStore.

func (*Client) List

List lists objects in the dashboard's object store.

func (*Client) PortForward

func (c *Client) PortForward(ctx context.Context, req PortForwardRequest) (PortForwardResponse, error)

PortForward creates a port forward.

func (*Client) Update

func (c *Client) Update(ctx context.Context, object *unstructured.Unstructured) error

Update updates an object in the store.

type ClientOption

type ClientOption func(c *Client)

type DashboardConnection

type DashboardConnection interface {
	Close() error
	Client() proto.DashboardClient
}

type FrontendProxy

type FrontendProxy struct {
	FrontendUpdateController FrontendUpdateController
}

FrontendProxy is a proxy for messaging the frontend.

func (*FrontendProxy) ForceFrontendUpdate

func (proxy *FrontendProxy) ForceFrontendUpdate() error

ForceFrontendUpdate forces the frontend to update

type FrontendUpdateController

type FrontendUpdateController interface {
	ForceUpdate() error
}

FrontendUpdateController can control the frontend. ie. the web gui

type GRPCService

type GRPCService struct {
	ObjectStore   store.Store
	PortForwarder portforward.PortForwarder
	FrontendProxy FrontendProxy
}

GRPCService is an implementation of the dashboard service based on GRPC.

func (*GRPCService) CancelPortForward

func (s *GRPCService) CancelPortForward(ctx context.Context, id string)

CancelPortForward cancels a port forward

func (*GRPCService) ForceFrontendUpdate

func (s *GRPCService) ForceFrontendUpdate(ctx context.Context) error

func (*GRPCService) Get

Get retrieves an object.

func (*GRPCService) List

List lists objects.

func (*GRPCService) PortForward

PortForward creates a port forward.

func (*GRPCService) Update

func (s *GRPCService) Update(ctx context.Context, object *unstructured.Unstructured) error

type PortForwardRequest

type PortForwardRequest struct {
	Namespace     string
	PodName       string
	ContainerName string
	Port          uint16
}

PortForwardRequest describes a port forward request.

type PortForwardResponse

type PortForwardResponse struct {
	ID   string
	Port uint16
}

PortForwardResponse is the response from a port forward request.

type Service

type Service interface {
	List(ctx context.Context, key store.Key) (*unstructured.UnstructuredList, error)
	Get(ctx context.Context, key store.Key) (*unstructured.Unstructured, bool, error)
	PortForward(ctx context.Context, req PortForwardRequest) (PortForwardResponse, error)
	CancelPortForward(ctx context.Context, id string)
	Update(ctx context.Context, object *unstructured.Unstructured) error
	ForceFrontendUpdate(ctx context.Context) error
}

Service is the dashboard service.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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