client

package
v2.5.0-alpha+incompatible Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2019 License: Apache-2.0 Imports: 38 Imported by: 9

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// DefaultAgentHost defines default host address for agent
	DefaultAgentHost = "127.0.0.1"

	DefaultPortGRPC = 9111
	DefaultPortHTTP = 9191
)

Functions

func ConnectEtcd

func ConnectEtcd(endpoints []string) (keyval.CoreBrokerWatcher, error)

func ErrorConnectionFailed

func ErrorConnectionFailed(host string) error

ErrorConnectionFailed returns an error with host in the error message when connection to agent failed.

func FromEnv

func FromEnv(c *Client) error

FromEnv configures the client with values from environment variables.

Supported environment variables: - AGENT_HOST to set the url to the agent server. - LIGATO_API_VERSION to set the url to the agent server.

func IsErrConnectionFailed

func IsErrConnectionFailed(err error) bool

IsErrConnectionFailed returns true if the error is caused by connection failed.

func ParseHostURL

func ParseHostURL(host string) (*url.URL, error)

ParseHostURL parses a url string, validates the string is a host url, and returns the parsed URL

Types

type APIClient

type APIClient interface {
	InfraAPIClient
	ModelAPIClient
	SchedulerAPIClient
	VppAPIClient
	MetricsAPIClient

	ConfigClient() (client.ConfigClient, error)

	AgentHost() string
	ClientVersion() string
	KVDBClient() (KVDBAPIClient, error)
	GRPCConn() (*grpc.ClientConn, error)
	HTTPClient() *http.Client
	ServerVersion(ctx context.Context) (types.Version, error)
	NegotiateAPIVersion(ctx context.Context)
	NegotiateAPIVersionPing(types.Ping)
	Close() error
}

APIClient is an interface that clients that talk with a agent server must implement.

type Client

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

Client is the API client that performs all operations against a Ligato agent.

func NewClient

func NewClient(host string) (*Client, error)

NewClient returns client with host option.

func NewClientFromEnv

func NewClientFromEnv() (*Client, error)

NewClientFromEnv returns client with options from environment.

func NewClientWithOpts

func NewClientWithOpts(ops ...Opt) (*Client, error)

NewClientWithOpts returns client with ops applied.

func (*Client) AgentHost

func (c *Client) AgentHost() string

func (*Client) ClientVersion

func (c *Client) ClientVersion() string

func (*Client) Close

func (c *Client) Close() error

Close the transport used by the client

func (*Client) ConfigClient

func (c *Client) ConfigClient() (client.ConfigClient, error)

func (*Client) GRPCConn

func (c *Client) GRPCConn() (*grpc.ClientConn, error)

func (*Client) GetMetricData

func (c *Client) GetMetricData(ctx context.Context, metricName string) (map[string]interface{}, error)

func (*Client) HTTPClient

func (c *Client) HTTPClient() *http.Client

func (*Client) KVDBClient

func (c *Client) KVDBClient() (KVDBAPIClient, error)

func (*Client) LoggerList

func (c *Client) LoggerList(ctx context.Context) ([]types.Logger, error)

func (*Client) LoggerSet

func (c *Client) LoggerSet(ctx context.Context, logger, level string) error

func (*Client) ModelList

func (c *Client) ModelList(ctx context.Context, opts types.ModelListOptions) ([]types.Model, error)

func (*Client) NegotiateAPIVersion

func (c *Client) NegotiateAPIVersion(ctx context.Context)

func (*Client) NegotiateAPIVersionPing

func (c *Client) NegotiateAPIVersionPing(p types.Ping)

func (*Client) Ping

func (c *Client) Ping(ctx context.Context) (types.Ping, error)

Ping pings the server and returns the value of the "API-Version" headers.

func (*Client) SchedulerDump

func (c *Client) SchedulerDump(ctx context.Context, opts types.SchedulerDumpOptions) ([]api.KVWithMetadata, error)

func (*Client) SchedulerValues

func (c *Client) SchedulerValues(ctx context.Context, opts types.SchedulerValuesOptions) ([]*api.BaseValueStatus, error)

func (*Client) ServerVersion

func (c *Client) ServerVersion(ctx context.Context) (types.Version, error)

ServerVersion returns information of the client and agent host.

func (*Client) Status

func (c *Client) Status(ctx context.Context) (*probe.ExposedStatus, error)

func (*Client) VppRunCli

func (c *Client) VppRunCli(ctx context.Context, cmd string) (reply string, err error)

type InfraAPIClient

type InfraAPIClient interface {
	Status(ctx context.Context) (*probe.ExposedStatus, error)
	Ping(ctx context.Context) (types.Ping, error)
	LoggerList(ctx context.Context) ([]types.Logger, error)
	LoggerSet(ctx context.Context, logger, level string) error
}

SystemAPIClient defines API client methods for the system

type KVDBAPIClient

type KVDBAPIClient interface {
	keyval.CoreBrokerWatcher
}

type KVDBClient

type KVDBClient struct {
	keyval.CoreBrokerWatcher
	// contains filtered or unexported fields
}

KVDBClient provides client access to the KVDB server.

func NewKVDBClient

func NewKVDBClient(kvdb keyval.CoreBrokerWatcher, serviceLabel string) *KVDBClient

func (*KVDBClient) Delete

func (k *KVDBClient) Delete(key string, opts ...datasync.DelOption) (existed bool, err error)

func (*KVDBClient) GetValue

func (k *KVDBClient) GetValue(key string) (data []byte, found bool, revision int64, err error)

func (*KVDBClient) ListKeys

func (k *KVDBClient) ListKeys(prefix string) (keyval.BytesKeyIterator, error)

func (*KVDBClient) ListValues

func (k *KVDBClient) ListValues(prefix string) (keyval.BytesKeyValIterator, error)

func (*KVDBClient) Put

func (k *KVDBClient) Put(key string, data []byte, opts ...datasync.PutOption) (err error)

type MetricsAPIClient

type MetricsAPIClient interface {
	GetMetricData(ctx context.Context, metricName string) (map[string]interface{}, error)
}

type ModelAPIClient

type ModelAPIClient interface {
	ModelList(ctx context.Context, opts types.ModelListOptions) ([]types.Model, error)
}

ModelAPIClient defines API client methods for the models

type Opt

type Opt func(*Client) error

func WithAPIVersionNegotiation

func WithAPIVersionNegotiation() Opt

WithAPIVersionNegotiation enables automatic API version negotiation for the client. With this option enabled, the client automatically negotiates the API version to use when making requests. API version negotiation is performed on the first request; subsequent requests will not re-negotiate.

func WithEtcdEndpoints

func WithEtcdEndpoints(endpoints []string) Opt

func WithGRPCClient

func WithGRPCClient(client *grpc.ClientConn) Opt

WithGRPCClient overrides the grpc client with the specified one

func WithHTTPClient

func WithHTTPClient(client *http.Client) Opt

WithHTTPClient overrides the http client with the specified one

func WithHTTPHeaders

func WithHTTPHeaders(headers map[string]string) Opt

WithHTTPHeaders overrides the client default http headers

func WithHost

func WithHost(host string) Opt

WithHost overrides the client host with the specified one.

func WithServiceLabel

func WithServiceLabel(label string) Opt

func WithTimeout

func WithTimeout(timeout time.Duration) Opt

WithTimeout configures the time limit for requests made by the HTTP client

func WithVersion

func WithVersion(version string) Opt

WithVersion overrides the client version with the specified one. If an empty version is specified, the value will be ignored to allow version negotiation.

type SchedulerAPIClient

type SchedulerAPIClient interface {
	SchedulerDump(ctx context.Context, opts types.SchedulerDumpOptions) ([]api.KVWithMetadata, error)
	SchedulerValues(ctx context.Context, opts types.SchedulerValuesOptions) ([]*api.BaseValueStatus, error)
}

SchedulerAPIClient defines API client methods for the scheduler

type VppAPIClient

type VppAPIClient interface {
	VppRunCli(ctx context.Context, cmd string) (reply string, err error)
}

VppAPIClient defines API client methods for the VPP

Jump to

Keyboard shortcuts

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