db

package
v0.0.0-...-1242a22 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

README

db

This library holds all the DB related interfaces and functions

Documentation

Index

Constants

View Source
const (
	UspParamCollection       = "params"
	UspDmCollection          = "datamodel"
	UspInstanceCollection    = "instances"
	UspCfgInstanceCollection = "cfginstances" // DefaultConfig Instance collection
	UspCfgParamCollection    = "cfgparams"    //  DefaultConfig Param collection
)

Variables

This section is empty.

Functions

func Connect

func Connect() (*mongo.Client, error)

func ConnectCache

func ConnectCache(addr string, timeout time.Duration) (*redis.Client, error)

Types

type CfgInstance

type CfgInstance struct {
	Dev    DevType
	Path   string
	Level  int
	Key    string
	Params map[string]string
}

type CfgParamNode

type CfgParamNode struct {
	Dev    DevType
	Path   string
	Params map[string]string
}

Node is for single instance objects for which path for each device is unique, e.g. IP

type DevType

type DevType struct {
	ProductClass string `bson:"product_class"`
	Manufacturer string `bson:"manufacturer"`
	ModelName    string `bson:"model_name"`
}

type DmCommand

type DmCommand struct {
	Name    string   `json:"name" bson:"name"`
	Inputs  []string `json:"inputs" bson:"inputs"`
	Outputs []string `json:"outputs" bson:"outputs"`
}

type DmEvent

type DmEvent struct {
	Name string   `json:"name" bson:"name"`
	Args []string `json:"args" bson:"args"`
}

type DmObject

type DmObject struct {
	EndpointId    string      `json:"endpoint_id" bson:"endpoint_id"`
	Path          string      `json:"path" bson:"path"`
	MultiInstance bool        `json:"multi_instance" bson:"multi_instance"`
	Access        string      `json:"access" bson:"access"`
	Params        []DmParam   `json:"params" bson:"params"`
	Events        []DmEvent   `json:"events" bson:"events"`
	Cmds          []DmCommand `json:"cmds" bson:"cmds"`
}

type DmParam

type DmParam struct {
	Name   string `json:"name" bson:"name"`
	Access string `json:"access" bson:"access"`
}

type Instance

type Instance struct {
	EndpointId string            `json:"endpoint_id" bson:"endpoint_id"`
	Path       string            `json:"path" bson:"path"`
	UniqueKeys map[string]string `json:"unique_keys" bson:"unique_keys"`
}

type Param

type Param struct {
	EndpointId string `json:"endpoint_id" bson:"endpoint_id"`
	Path       string `json:"path" bson:"path"`
	Value      string `json:"value" bson:"value"`
}

type UspDb

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

func (*UspDb) DeleteCfgInstance

func (u *UspDb) DeleteCfgInstance(dev *DevType, path string, key string) error

func (*UspDb) DeleteCfgInstancesByDevType

func (u *UspDb) DeleteCfgInstancesByDevType(dev *DevType) error

func (*UspDb) DeleteCfgInstancesByRegex

func (u *UspDb) DeleteCfgInstancesByRegex(dev *DevType, path string) error

func (*UspDb) DeleteCfgParamNode

func (u *UspDb) DeleteCfgParamNode(dev *DevType, path string) error

func (*UspDb) DeleteCfgParamNodesByRegex

func (u *UspDb) DeleteCfgParamNodesByRegex(dev *DevType, path string) error

func (*UspDb) DeleteCollection

func (u *UspDb) DeleteCollection(collName string) error

func (*UspDb) DeleteDmObjectManyFromDb

func (u *UspDb) DeleteDmObjectManyFromDb(epId string, path string) error

func (*UspDb) DeleteInstanceByUniqueKey

func (u *UspDb) DeleteInstanceByUniqueKey(epId string, key string, value string) error

func (*UspDb) DeleteInstanceFromDb

func (u *UspDb) DeleteInstanceFromDb(epId string, path string) error

func (*UspDb) DeleteInstancesByRegex

func (u *UspDb) DeleteInstancesByRegex(epId string, path string) error

func (*UspDb) DeleteParamManyFromDb

func (u *UspDb) DeleteParamManyFromDb(epId string, path string) error

func (*UspDb) GetAllEndpoints

func (u *UspDb) GetAllEndpoints() ([]string, error)

func (*UspDb) GetCfgInstances

func (u *UspDb) GetCfgInstances(dev *DevType) ([]*CfgInstance, error)

func (*UspDb) GetCfgInstancesByPath

func (u *UspDb) GetCfgInstancesByPath(dev *DevType, path string) ([]*CfgInstance, error)

func (*UspDb) GetCfgInstancesByRegex

func (u *UspDb) GetCfgInstancesByRegex(dev *DevType, path string) ([]*CfgInstance, error)

func (*UspDb) GetCfgParamNodes

func (u *UspDb) GetCfgParamNodes(dev *DevType) ([]*CfgParamNode, error)

func (*UspDb) GetCfgParams

func (u *UspDb) GetCfgParams(dev *DevType, path string) (map[string]string, error)

func (*UspDb) GetCfgParamsByRegex

func (u *UspDb) GetCfgParamsByRegex(dev *DevType, path string) ([]*CfgParamNode, error)

func (*UspDb) GetDm

func (u *UspDb) GetDm(epId string, path string) (*DmObject, error)

func (*UspDb) GetDmByRegex

func (u *UspDb) GetDmByRegex(epId string, path string) ([]*DmObject, error)

func (*UspDb) GetInstances

func (u *UspDb) GetInstances(epId string, path string) ([]*Instance, error)

func (*UspDb) GetInstancesByRegex

func (u *UspDb) GetInstancesByRegex(epId string, path string) ([]*Instance, error)

func (*UspDb) GetInstancesByUniqueKeys

func (u *UspDb) GetInstancesByUniqueKeys(epId string, key string, value string) (*Instance, error)

func (*UspDb) GetParamObjByValue

func (u *UspDb) GetParamObjByValue(epId string, path string, name string, value string) ([]*Param, error)

func (*UspDb) GetParams

func (u *UspDb) GetParams(epId string, path string) ([]*Param, error)

func (*UspDb) GetParamsByRegex

func (u *UspDb) GetParamsByRegex(epId string, path string) ([]*Param, error)

func (*UspDb) Init

func (u *UspDb) Init(client *mongo.Client) error

func (*UspDb) WriteCfgInstance

func (u *UspDb) WriteCfgInstance(inst *CfgInstance) error

func (*UspDb) WriteCfgParamNode

func (u *UspDb) WriteCfgParamNode(p *CfgParamNode) error

func (*UspDb) WriteDmObjectToDb

func (u *UspDb) WriteDmObjectToDb(dm *DmObject) error

func (*UspDb) WriteInstanceToDb

func (u *UspDb) WriteInstanceToDb(inst Instance) error

func (*UspDb) WriteParamToDb

func (u *UspDb) WriteParamToDb(p *Param) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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