metathings_component

package
v1.2.15 Latest Latest
Warning

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

Go to latest
Published: Aug 8, 2022 License: MIT Imports: 52 Imported by: 14

Documentation

Index

Constants

View Source
const (
	METATHINGS_SODA_MODULE_CLIENT_USERAGENT = "Metathings-Soda-Module-Client"
)

Variables

View Source
var (
	ErrUnknownSodaModuleWrapperDriver      = errors.New("unknown soda module wrapper driver")
	ErrUnknownSodaModuleBackendDriver      = errors.New("unknown soda module backend driver")
	ErrUnknownSodaModuleAuthorizerDriver   = errors.New("unknown soda module authorizer driver")
	ErrRequireSodaModuleAuthorizerSecret   = errors.New("require soda module authorizer secret")
	ErrRequireSodaModuleAuthorizerUsername = errors.New("require soda module authorizer username")
	ErrRequireSodaModuleAuthorizerPassword = errors.New("require soda module authorizer password")
	ErrUnauthorized                        = errors.New("unauthorized")
	ErrUnexpectedTokenFormat               = errors.New("unexpected token format")
	ErrUnaryCallTimeout                    = errors.New("unary call timeout")
	ErrStreamCallConfigAckTimeout          = errors.New("stream call config ack timeout")
	ErrStreamCallConfig                    = errors.New("stream call config error")
	ErrUnexceptedResponse                  = errors.New("unexpected response")
	ErrBadScheme                           = errors.New("bad scheme")
	ErrBadServiceEndpoint                  = errors.New("bad service endpoint")
	ErrDefaultAddressRequired              = errors.New("default address required")
	ErrDeviceAddressRequired               = errors.New("device address required")
	ErrInvalidArguments                    = errors.New("invalid arguments")
	ErrSubscribedSession                   = errors.New("subscribed session")
	ErrUnsubscribedSession                 = errors.New("unsubscribed session")
	ErrStartTimeout                        = errors.New("start timeout")
	ErrDownstreamNotFound                  = errors.New("downstream not found")
)
View Source
var (
	MQTT_UPSTREAM   = "upstream"
	MQTT_DOWNSTREAM = "downstream"
)
View Source
var (
	ErrHandleUnimplemented = errors.New("handle unimplemented")
)
View Source
var (
	ErrUnknownModuleProxyDriver = errors.New("unknown module proxy driver")
)
View Source
var (
	ErrUnknownModuleServerAdapter = errors.New("unknown module server adapter")
)

Functions

func NewDefaultModuleOption added in v1.2.0

func NewDefaultModuleOption() objx.Map

func ToModule

func ToModule(v **Module) func(string, interface{}) error

func WrapHttpAuthContext added in v1.2.11

func WrapHttpAuthContext(r *http.Request, ctx *SodaModuleAuthContext) error

Types

type Endpoint added in v1.0.0

type Endpoint struct {
	*url.URL
}

func ParseEndpoint added in v1.0.0

func ParseEndpoint(ep string) (*Endpoint, error)

func (*Endpoint) GetTransportProtocol added in v1.0.0

func (ep *Endpoint) GetTransportProtocol(defaults ...string) string

func (*Endpoint) IsMetathingsProtocol added in v1.0.0

func (ep *Endpoint) IsMetathingsProtocol() bool

type FrameStream added in v1.1.0

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

func (*FrameStream) Close added in v1.1.0

func (fs *FrameStream) Close() error

func (*FrameStream) Push added in v1.1.0

func (fs *FrameStream) Push(dat interface{}) error

func (*FrameStream) PushFrame added in v1.1.0

func (fs *FrameStream) PushFrame(frm *deviced_pb.OpFrame) error

type GrpcModuleProxy

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

func (*GrpcModuleProxy) Close added in v1.0.0

func (self *GrpcModuleProxy) Close() error

func (*GrpcModuleProxy) StreamCall

func (self *GrpcModuleProxy) StreamCall(ctx context.Context, method string, upstm ModuleProxyStream) error

func (*GrpcModuleProxy) UnaryCall

func (self *GrpcModuleProxy) UnaryCall(ctx context.Context, method string, value *any.Any) (*any.Any, error)

type GrpcModuleProxyFactory

type GrpcModuleProxyFactory struct{}

func (*GrpcModuleProxyFactory) NewModuleProxy

func (self *GrpcModuleProxyFactory) NewModuleProxy(args ...interface{}) (ModuleProxy, error)

type GrpcModuleServer

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

func (*GrpcModuleServer) Serve

func (s *GrpcModuleServer) Serve() error

func (*GrpcModuleServer) Stop

func (s *GrpcModuleServer) Stop()

type GrpcModuleServiceClientFactory

type GrpcModuleServiceClientFactory interface {
	NewModuleServiceClient(opts ...grpc.DialOption) (pb.ModuleServiceClient, client_helper.DoneFn, error)
}

func NewGrpcModuleServiceClientFactory

func NewGrpcModuleServiceClientFactory(addr string) GrpcModuleServiceClientFactory

type GrpcModuleServiceClientFactoryImpl

type GrpcModuleServiceClientFactoryImpl struct {
	Address string
}

func (*GrpcModuleServiceClientFactoryImpl) NewModuleServiceClient

type GrpcModuleWrapper

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

func NewGrpcModuleWrapper

func NewGrpcModuleWrapper(target interface{}, logger log.FieldLogger) *GrpcModuleWrapper

func (*GrpcModuleWrapper) StreamCall

func (self *GrpcModuleWrapper) StreamCall(upstm pb.ModuleService_StreamCallServer) error

func (*GrpcModuleWrapper) UnaryCall

type HttpAuthContextParser added in v1.2.9

type HttpAuthContextParser func(*http.Request) (*SodaModuleAuthContext, error)

type Kernel

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

func NewKernel

func NewKernel(opt *NewKernelOption) (*Kernel, error)

func (*Kernel) Config

func (k *Kernel) Config() *KernelConfig

func (*Kernel) Context

func (k *Kernel) Context() context.Context

func (*Kernel) GetObject

func (k *Kernel) GetObject(name string) (*deviced_pb.Object, error)

func (*Kernel) GetObjectContent

func (k *Kernel) GetObjectContent(name string) ([]byte, error)

func (*Kernel) Heartbeat

func (k *Kernel) Heartbeat() error

func (*Kernel) ListObjects added in v1.2.9

func (k *Kernel) ListObjects(name string, opt *ListObjectsOption) ([]*deviced_pb.Object, error)

func (*Kernel) NewFrameStream added in v1.1.0

func (k *Kernel) NewFrameStream(flow string) (*FrameStream, error)

func (*Kernel) PushFrameToFlowOnce added in v1.2.9

func (k *Kernel) PushFrameToFlowOnce(name string, data interface{}, opt *PushFrameToFlowOnceOption) error

func (*Kernel) PutObject

func (k *Kernel) PutObject(name string, content io.Reader) error

func (*Kernel) PutObjectStreaming added in v1.1.16

func (k *Kernel) PutObjectStreaming(name string, content io.ReadSeeker, opt *PutObjectStreamingOption) error

func (*Kernel) PutObjectStreamingWithCancel added in v1.1.16

func (k *Kernel) PutObjectStreamingWithCancel(name string, content io.ReadSeeker, opt *PutObjectStreamingOption) (cancel context.CancelFunc, errs chan error, err error)

func (*Kernel) PutObjects

func (k *Kernel) PutObjects(objects map[string]io.Reader) error

func (*Kernel) RemoveObject

func (k *Kernel) RemoveObject(name string) error

func (*Kernel) RemoveObjects

func (k *Kernel) RemoveObjects(names []string) error

func (*Kernel) RenameObject

func (k *Kernel) RenameObject(src, dst string) error

func (*Kernel) Show

func (k *Kernel) Show() (*deviced_pb.Module, error)

func (*Kernel) ShowFirmwareDescriptor added in v1.2.0

func (k *Kernel) ShowFirmwareDescriptor() (*deviced_pb.FirmwareDescriptor, error)

type KernelConfig

type KernelConfig struct {
	*viper.Viper
}

func NewKernelConfigFromText

func NewKernelConfigFromText(text string) (*KernelConfig, error)

func (*KernelConfig) Raw

func (kc *KernelConfig) Raw() *viper.Viper

func (*KernelConfig) Sub

func (kc *KernelConfig) Sub(key string) *KernelConfig

type KernelInterface added in v1.2.9

type KernelInterface interface {
	Context() context.Context
	Show() (*deviced_pb.Module, error)
	ShowFirmwareDescriptor() (*deviced_pb.FirmwareDescriptor, error)
	PutObject(name string, content io.Reader) error
	PutObjectStreaming(name string, content io.ReadSeeker, opt *PutObjectStreamingOption) error
	PutObjectStreamingWithCancel(name string, content io.ReadSeeker, opt *PutObjectStreamingOption) (context.CancelFunc, chan error, error)
	PutObjects(objects map[string]io.Reader) error
	GetObject(name string) (*deviced_pb.Object, error)
	GetObjectContent(name string) ([]byte, error)
	RemoveObjct(name string) error
	RemoveObjets(names []string) error
	RenameObject(src, dst string) error
	PushFrameToFlowOnce(name string, data interface{}, opt *PushFrameToFlowOnceOption) error
	Heartbeat() error
}

type ListObjectsOption added in v1.2.9

type ListObjectsOption struct {
	Recursive bool
	Depth     int32
}

type Module

type Module struct {
	version_helper.Versioner
	// contains filtered or unexported fields
}

func NewModule

func NewModule(opts ...NewModuleOption) (*Module, error)

func (*Module) GetObject

func (m *Module) GetObject(name string) (*deviced_pb.Object, error)

func (*Module) GetObjectContent

func (m *Module) GetObjectContent(name string) ([]byte, error)

func (*Module) HeartbeatLoop

func (m *Module) HeartbeatLoop()

func (*Module) Init

func (m *Module) Init() error

func (*Module) IsRunning added in v1.2.9

func (m *Module) IsRunning() bool

func (*Module) Kernel

func (m *Module) Kernel() *Kernel

func (*Module) Launch

func (m *Module) Launch() error

func (*Module) Logger

func (m *Module) Logger() log.FieldLogger

func (*Module) Name

func (m *Module) Name() string

func (*Module) PutObject

func (m *Module) PutObject(name string, content io.Reader) error

func (*Module) PutObjectStreaming added in v1.1.16

func (m *Module) PutObjectStreaming(name string, content io.ReadSeeker, opt *PutObjectStreamingOption) error

func (*Module) PutObjectStreamingWithCancel added in v1.1.16

func (m *Module) PutObjectStreamingWithCancel(name string, content io.ReadSeeker, opt *PutObjectStreamingOption) (context.CancelFunc, chan error, error)

func (*Module) PutObjects

func (m *Module) PutObjects(objects map[string]io.Reader) error

func (*Module) RemoveObject

func (m *Module) RemoveObject(name string) error

func (*Module) RemoveObjects

func (m *Module) RemoveObjects(names []string) error

func (*Module) RenameObject

func (m *Module) RenameObject(src, dst string) error

func (*Module) Serve

func (m *Module) Serve() error

func (*Module) Stop

func (m *Module) Stop()

func (*Module) Target

func (m *Module) Target() interface{}

func (*Module) WithNamespace

func (m *Module) WithNamespace(name string) string

type ModuleOption

type ModuleOption struct {
	Config              string
	CredentialId        string
	CredentialSecret    string
	ServiceEndpoints    map[string]ServiceEndpoint
	TransportCredential TransportCredential
}

type ModuleProxy

type ModuleProxy interface {
	UnaryCall(ctx context.Context, method string, req *any.Any) (*any.Any, error)
	StreamCall(ctx context.Context, method string, stm ModuleProxyStream) error
	Close() error
}

func NewModuleProxy

func NewModuleProxy(name string, args ...interface{}) (ModuleProxy, error)

type ModuleProxyFactory

type ModuleProxyFactory interface {
	NewModuleProxy(args ...interface{}) (ModuleProxy, error)
}

type ModuleProxyStream

type ModuleProxyStream interface {
	Send(*any.Any) error
	Recv() (*any.Any, error)
	grpc.ClientStream
}

type ModuleServer

type ModuleServer interface {
	Stop()
	Serve() error
}

func NewGrpcModuleServer

func NewGrpcModuleServer(m *Module) (ModuleServer, error)

func NewModuleServer

func NewModuleServer(name string, mdl *Module) (ModuleServer, error)

func NewSodaModuleServer added in v1.2.9

func NewSodaModuleServer(m *Module) (ModuleServer, error)

type ModuleServerFactory

type ModuleServerFactory func(*Module) (ModuleServer, error)

type ModuleServiceInitializer

type ModuleServiceInitializer interface {
	InitModuleService(*Module) error
}

type ModuleServiceLookuper

type ModuleServiceLookuper interface {
	LookupUnaryCall()
	LookupStreamCall()
}

type MqttModuleProxy added in v1.0.0

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

func (*MqttModuleProxy) Close added in v1.0.0

func (p *MqttModuleProxy) Close() error

func (*MqttModuleProxy) StreamCall added in v1.0.0

func (p *MqttModuleProxy) StreamCall(ctx context.Context, method string, upstm ModuleProxyStream) error

func (*MqttModuleProxy) UnaryCall added in v1.0.0

func (p *MqttModuleProxy) UnaryCall(ctx context.Context, method string, value *any.Any) (*any.Any, error)

type MqttModuleProxyFactory added in v1.0.0

type MqttModuleProxyFactory struct{}

func (*MqttModuleProxyFactory) NewModuleProxy added in v1.0.0

func (f *MqttModuleProxyFactory) NewModuleProxy(args ...interface{}) (ModuleProxy, error)

type MqttModuleProxyOption added in v1.0.0

type MqttModuleProxyOption struct {
	Module struct {
		Id string
	}
	Session struct {
		Id int64
	}
	Config struct {
		UnaryCallTimeout           time.Duration
		StreamCallConfigAckTimeout time.Duration
		MQTTConnectTimeout         time.Duration
		MQTTDisconnectTimeout      time.Duration
	}
	MQTT struct {
		Address  string
		Username string
		Password string
		ClientId string
		QoS      byte
	}
}

type NewKernelOption

type NewKernelOption struct {
	Credential struct {
		Id     string
		Secret string
	}
	TransportCredential TransportCredential
	ServiceEndpoints    map[string]ServiceEndpoint
	ConfigText          string
}

type NewModuleOption added in v1.2.0

type NewModuleOption func(objx.Map)

func SetArgs added in v1.2.9

func SetArgs(vs []string) NewModuleOption

func SetTarget added in v1.2.9

func SetTarget(v interface{}) NewModuleOption

func SetVersion added in v1.2.0

func SetVersion(v string) NewModuleOption

type PushFrameToFlowOnceOption added in v1.2.9

type PushFrameToFlowOnceOption struct {
	Id *string
	Ts *time.Time
}

type PutObjectStreamingOption added in v1.1.16

type PutObjectStreamingOption struct {
	Sha1   string
	Length int64
}

func NewPutObjectStreamingOptionFromPath added in v1.1.16

func NewPutObjectStreamingOptionFromPath(path string) (*PutObjectStreamingOption, error)

type ServiceEndpoint added in v1.1.10

type ServiceEndpoint struct {
	TransportCredential `mapstructure:",squash"`
	Address             string
}

type SodaModuleAuthContext added in v1.2.9

type SodaModuleAuthContext struct {
	objx.Map
}

func ParseHttpAuthContext added in v1.2.9

func ParseHttpAuthContext(name string, r *http.Request) (*SodaModuleAuthContext, error)

type SodaModuleAuthorizer added in v1.2.9

type SodaModuleAuthorizer interface {
	Sign(*SodaModuleAuthContext) (*SodaModuleAuthContext, error)
	Verify(*SodaModuleAuthContext) error
}

func NewSodaModuleAuthorizer added in v1.2.9

func NewSodaModuleAuthorizer(name string, m *Module) (SodaModuleAuthorizer, error)

func NewSodaModuleBasicAuthorizer added in v1.2.11

func NewSodaModuleBasicAuthorizer(m *Module) (SodaModuleAuthorizer, error)

func NewSodaModuleDummyAuthorizer added in v1.2.9

func NewSodaModuleDummyAuthorizer(m *Module) (SodaModuleAuthorizer, error)

func NewSodaModuleSecretAuthorizer added in v1.2.9

func NewSodaModuleSecretAuthorizer(m *Module) (SodaModuleAuthorizer, error)

type SodaModuleAuthorizerFactory added in v1.2.9

type SodaModuleAuthorizerFactory func(*Module) (SodaModuleAuthorizer, error)

type SodaModuleBackend added in v1.2.9

type SodaModuleBackend interface {
	Start() error
	Stop() error
	Done() <-chan struct{}
	Health() error
}

func NewSodaModuleBackend added in v1.2.9

func NewSodaModuleBackend(name string, mdl *Module) (SodaModuleBackend, error)

func NewSodaModuleHttpBackend added in v1.2.9

func NewSodaModuleHttpBackend(m *Module) (SodaModuleBackend, error)

type SodaModuleBackendFactory added in v1.2.9

type SodaModuleBackendFactory func(*Module) (SodaModuleBackend, error)

type SodaModuleBasicAuthorizer added in v1.2.11

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

func (*SodaModuleBasicAuthorizer) Sign added in v1.2.11

func (*SodaModuleBasicAuthorizer) Verify added in v1.2.11

type SodaModuleDummyAuthorizer added in v1.2.9

type SodaModuleDummyAuthorizer struct{}

func (*SodaModuleDummyAuthorizer) Sign added in v1.2.11

func (*SodaModuleDummyAuthorizer) Verify added in v1.2.11

type SodaModuleHttpBackend added in v1.2.9

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

func (*SodaModuleHttpBackend) Done added in v1.2.9

func (b *SodaModuleHttpBackend) Done() <-chan struct{}

func (*SodaModuleHttpBackend) Health added in v1.2.9

func (b *SodaModuleHttpBackend) Health() error

func (*SodaModuleHttpBackend) Start added in v1.2.9

func (b *SodaModuleHttpBackend) Start() error

func (*SodaModuleHttpBackend) Stop added in v1.2.9

func (b *SodaModuleHttpBackend) Stop() error

type SodaModuleHttpWrapper added in v1.2.9

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

func (*SodaModuleHttpWrapper) StreamCall added in v1.2.9

func (*SodaModuleHttpWrapper) UnaryCall added in v1.2.9

type SodaModuleHttpWrapperFactory added in v1.2.9

type SodaModuleHttpWrapperFactory struct{}

func (*SodaModuleHttpWrapperFactory) NewModuleWrapper added in v1.2.9

func (f *SodaModuleHttpWrapperFactory) NewModuleWrapper(m *Module) (SodaModuleWrapper, error)

type SodaModuleSecretAuthorizer added in v1.2.9

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

func (*SodaModuleSecretAuthorizer) Sign added in v1.2.11

func (*SodaModuleSecretAuthorizer) Verify added in v1.2.11

type SodaModuleServer added in v1.2.9

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

func (*SodaModuleServer) Serve added in v1.2.9

func (s *SodaModuleServer) Serve() error

func (*SodaModuleServer) Start added in v1.2.9

func (s *SodaModuleServer) Start() error

func (*SodaModuleServer) Stop added in v1.2.9

func (s *SodaModuleServer) Stop()

func (*SodaModuleServer) Wait added in v1.2.9

func (s *SodaModuleServer) Wait()

type SodaModuleWrapper added in v1.2.9

type SodaModuleWrapper interface {
	pb.ModuleServiceServer
}

func NewSodaModuleWrapper added in v1.2.9

func NewSodaModuleWrapper(m *Module) (SodaModuleWrapper, error)

type SodaModuleWrapperFactory added in v1.2.9

type SodaModuleWrapperFactory interface {
	NewModuleWrapper(*Module) (SodaModuleWrapper, error)
}

type TransportCredential added in v1.1.10

type TransportCredential struct {
	Insecure  bool
	PlainText bool   `mapstructure:"plain_text"`
	KeyFile   string `mapstructure:"key_file"`
	CertFile  string `mapstructure:"cert_file"`
}

Jump to

Keyboard shortcuts

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