2023-12-31 15:26:53 +08:00
|
|
|
|
package config
|
2023-12-31 11:45:47 +08:00
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"errors"
|
|
|
|
|
"fmt"
|
2024-03-26 14:54:50 +08:00
|
|
|
|
"github.com/aceld/kis-flow/common"
|
2023-12-31 11:45:47 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// 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
|
|
|
|
|
}
|