kis-flow/config/kis_conn_config.go

55 lines
1.4 KiB
Go
Raw Normal View History

2023-12-31 15:26:53 +08:00
package config
2023-12-31 11:45:47 +08:00
import (
"errors"
"fmt"
"kis-flow/common"
)
// KisConnConfig KisConnector 策略配置
type KisConnConfig struct {
//配置类型
KisType string `yaml:"kistype"`
//唯一描述标识
CName string `yaml:"cname"`
//基础存储媒介地址
AddrString string `yaml:"addrs"`
//存储媒介引擎类型"Mysql" "Redis" "Kafka"等
Type common.KisConnType `yaml:"type"`
//一次存储的标识如Redis为Key名称、Mysql为Table名称,Kafka为Topic名称等
Key string `yaml:"key"`
//配置信息中的自定义参数
Params map[string]string `yaml:"params"`
//存储读取所绑定的NsFuncionID
Load []string `yaml:"load"`
Save []string `yaml:"save"`
}
// NewConnConfig 创建一个KisConnector策略配置对象, 用于描述一个KisConnector信息
2024-01-03 10:16:54 +08:00
func NewConnConfig(cName string, addr string, t common.KisConnType, key string, param FParam) *KisConnConfig {
2023-12-31 11:45:47 +08:00
strategy := new(KisConnConfig)
strategy.CName = cName
strategy.AddrString = addr
strategy.Type = t
strategy.Key = key
strategy.Params = param
return strategy
}
// WithFunc Connector与Function进行关系绑定
func (cConfig *KisConnConfig) WithFunc(fConfig *KisFuncConfig) error {
2024-01-03 10:16:54 +08:00
switch common.KisMode(fConfig.FMode) {
2023-12-31 11:45:47 +08:00
case common.S:
2024-01-03 10:16:54 +08:00
cConfig.Save = append(cConfig.Save, fConfig.FName)
2023-12-31 11:45:47 +08:00
case common.L:
2024-01-03 10:16:54 +08:00
cConfig.Load = append(cConfig.Load, fConfig.FName)
2023-12-31 11:45:47 +08:00
default:
2024-01-03 10:16:54 +08:00
return errors.New(fmt.Sprintf("Wrong KisMode %s", fConfig.FMode))
2023-12-31 11:45:47 +08:00
}
return nil
}