mirror of
https://github.com/eolinker/apinto
synced 2025-10-16 22:00:52 +08:00
templater
This commit is contained in:
@@ -31,7 +31,7 @@ func (a *aksk) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *aksk) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (a *aksk) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
c, ok := conf.(*Config)
|
c, ok := conf.(*Config)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
||||||
|
@@ -26,7 +26,7 @@ func (d *driver) ConfigType() reflect.Type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Create 创建aksk鉴权驱动实例
|
//Create 创建aksk鉴权驱动实例
|
||||||
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
a := &aksk{
|
a := &aksk{
|
||||||
id: id,
|
id: id,
|
||||||
}
|
}
|
||||||
|
@@ -150,7 +150,7 @@ func (a *apikey) Start() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Reset 重新加载配置
|
//Reset 重新加载配置
|
||||||
func (a *apikey) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (a *apikey) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
cfg, ok := conf.(*Config)
|
cfg, ok := conf.(*Config)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
||||||
|
@@ -24,7 +24,7 @@ func (d *driver) ConfigType() reflect.Type {
|
|||||||
return d.configType
|
return d.configType
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
w := &apikey{
|
w := &apikey{
|
||||||
id: id,
|
id: id,
|
||||||
}
|
}
|
||||||
|
@@ -58,7 +58,7 @@ func (b *basic) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *basic) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (b *basic) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
cfg, ok := conf.(*Config)
|
cfg, ok := conf.(*Config)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
||||||
|
@@ -26,7 +26,7 @@ func (d *driver) ConfigType() reflect.Type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Create 创建http_proxy驱动的实例
|
//Create 创建http_proxy驱动的实例
|
||||||
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
w := &basic{
|
w := &basic{
|
||||||
id: id,
|
id: id,
|
||||||
}
|
}
|
||||||
|
@@ -26,7 +26,7 @@ func (d *driver) ConfigType() reflect.Type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Create 创建jwt鉴权驱动实例
|
//Create 创建jwt鉴权驱动实例
|
||||||
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
a := &jwt{
|
a := &jwt{
|
||||||
id: id,
|
id: id,
|
||||||
}
|
}
|
||||||
|
@@ -33,7 +33,7 @@ func (j *jwt) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (j *jwt) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (j *jwt) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
c, ok := conf.(*Config)
|
c, ok := conf.(*Config)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
||||||
|
@@ -65,7 +65,7 @@ func (c *consul) Start() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Reset 重置consul实例配置
|
//Reset 重置consul实例配置
|
||||||
func (c *consul) Reset(cfg interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (c *consul) Reset(cfg interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
workerConfig, ok := cfg.(*Config)
|
workerConfig, ok := cfg.(*Config)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(cfg))
|
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(cfg))
|
||||||
|
@@ -31,7 +31,7 @@ func (d *driver) ConfigType() reflect.Type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Create 创建consul驱动实例
|
//Create 创建consul驱动实例
|
||||||
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
workerConfig, ok := v.(*Config)
|
workerConfig, ok := v.(*Config)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(v))
|
return nil, fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(v))
|
||||||
|
@@ -30,7 +30,7 @@ func (d *driver) ConfigType() reflect.Type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Create 创建eureka驱动实例
|
//Create 创建eureka驱动实例
|
||||||
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
cfg, ok := v.(*Config)
|
cfg, ok := v.(*Config)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(v))
|
return nil, fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(v))
|
||||||
|
@@ -105,7 +105,7 @@ func (e *eureka) Start() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Reset 重置eureka实例配置
|
//Reset 重置eureka实例配置
|
||||||
func (e *eureka) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (e *eureka) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
cfg, ok := conf.(*Config)
|
cfg, ok := conf.(*Config)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
||||||
|
@@ -31,7 +31,7 @@ func (d *driver) ConfigType() reflect.Type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Create 创建nacos驱动实例
|
//Create 创建nacos驱动实例
|
||||||
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
cfg, ok := v.(*Config)
|
cfg, ok := v.(*Config)
|
||||||
if !ok {
|
if !ok {
|
||||||
val := reflect.ValueOf(v)
|
val := reflect.ValueOf(v)
|
||||||
|
@@ -89,7 +89,7 @@ func (n *nacos) Start() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Reset 重置nacos实例配置
|
//Reset 重置nacos实例配置
|
||||||
func (n *nacos) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (n *nacos) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
cfg, ok := conf.(*Config)
|
cfg, ok := conf.(*Config)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
||||||
|
@@ -27,7 +27,7 @@ func (d *driver) ConfigType() reflect.Type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Create 创建静态服务发现驱动的实例
|
//Create 创建静态服务发现驱动的实例
|
||||||
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
s := &static{
|
s := &static{
|
||||||
id: id,
|
id: id,
|
||||||
}
|
}
|
||||||
|
@@ -78,7 +78,7 @@ func (s *static) reset(cfg *Config) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Reset 重置静态服务发现实例配置
|
//Reset 重置静态服务发现实例配置
|
||||||
func (s *static) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (s *static) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
cfg, ok := conf.(*Config)
|
cfg, ok := conf.(*Config)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("need %s,now %s:%w", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf), errorStructType)
|
return fmt.Errorf("need %s,now %s:%w", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf), errorStructType)
|
||||||
|
@@ -48,7 +48,7 @@ func (d *Driver) Check(v interface{}) (*Config, error) {
|
|||||||
return conf, nil
|
return conf, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
worker := &FileOutput{
|
worker := &FileOutput{
|
||||||
Driver: d,
|
Driver: d,
|
||||||
id: id,
|
id: id,
|
||||||
|
@@ -38,7 +38,7 @@ func (a *FileOutput) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *FileOutput) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) (err error) {
|
func (a *FileOutput) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) (err error) {
|
||||||
cfg, err := a.Driver.Check(conf)
|
cfg, err := a.Driver.Check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -53,7 +53,7 @@ func (d *Driver) Check(v interface{}) (*Config, error) {
|
|||||||
return httpConf, nil
|
return httpConf, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
worker := &HttpOutput{
|
worker := &HttpOutput{
|
||||||
Driver: d,
|
Driver: d,
|
||||||
id: id,
|
id: id,
|
||||||
|
@@ -36,7 +36,7 @@ func (h *HttpOutput) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *HttpOutput) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) (err error) {
|
func (h *HttpOutput) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) (err error) {
|
||||||
config, err := h.Driver.Check(conf)
|
config, err := h.Driver.Check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -27,7 +27,7 @@ func (d *Driver) check(v interface{}) (*ProducerConfig, error) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
worker := &Output{
|
worker := &Output{
|
||||||
Driver: d,
|
Driver: d,
|
||||||
id: id,
|
id: id,
|
||||||
|
@@ -52,7 +52,7 @@ func (o *Output) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *Output) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (o *Output) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
cfg, err := o.Driver.check(conf)
|
cfg, err := o.Driver.check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -47,7 +47,7 @@ func (d *Driver) Check(v interface{}) (*Config, error) {
|
|||||||
return nsqConf, nil
|
return nsqConf, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
worker := &NsqOutput{
|
worker := &NsqOutput{
|
||||||
Driver: d,
|
Driver: d,
|
||||||
id: id,
|
id: id,
|
||||||
|
@@ -25,7 +25,7 @@ func (n *NsqOutput) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *NsqOutput) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (n *NsqOutput) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
config, err := n.Driver.Check(conf)
|
config, err := n.Driver.Check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -27,7 +27,7 @@ func (d *Driver) check(v interface{}) (*Config, error) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
cfg, err := d.check(v)
|
cfg, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -61,7 +61,7 @@ func (s *SysWriter) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SysWriter) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (s *SysWriter) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
cfg, err := s.Driver.check(conf)
|
cfg, err := s.Driver.check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -32,7 +32,7 @@ func (s *SysWriter) Start() error {
|
|||||||
return fmt.Errorf("can not create syslog transporterReset in windows system")
|
return fmt.Errorf("can not create syslog transporterReset in windows system")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SysWriter) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (s *SysWriter) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
return fmt.Errorf("can not create syslog transporterReset in windows system")
|
return fmt.Errorf("can not create syslog transporterReset in windows system")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -18,7 +18,7 @@ type Driver struct {
|
|||||||
configType reflect.Type
|
configType reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
_, err := d.check(v)
|
_, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -57,7 +57,7 @@ func (d *Driver) getList(auths []eosc.RequireId) ([]output.IEntryOutput, error)
|
|||||||
return ls, nil
|
return ls, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
conf, err := d.check(v)
|
conf, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -50,7 +50,7 @@ func (l *accessLog) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *accessLog) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (l *accessLog) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
c, err := l.check(conf)
|
c, err := l.check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -69,7 +69,7 @@ func (a *Auth) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Auth) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (a *Auth) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
confObj, err := a.check(conf)
|
confObj, err := a.check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -17,7 +17,7 @@ type Driver struct {
|
|||||||
configType reflect.Type
|
configType reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
_, err := d.check(v)
|
_, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -50,7 +50,7 @@ func (d *Driver) getList(auths []eosc.RequireId) ([]auth.IAuth, error) {
|
|||||||
}
|
}
|
||||||
return ls, nil
|
return ls, nil
|
||||||
}
|
}
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
conf, err := d.check(v)
|
conf, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -33,7 +33,7 @@ func (c *CircuitBreaker) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *CircuitBreaker) Reset(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (c *CircuitBreaker) Reset(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
conf, err := c.check(v)
|
conf, err := c.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -13,7 +13,7 @@ type Driver struct {
|
|||||||
configType reflect.Type
|
configType reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
_, err := d.check(v)
|
_, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -39,7 +39,7 @@ func (d *Driver) ConfigType() reflect.Type {
|
|||||||
return d.configType
|
return d.configType
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
conf, err := d.check(v)
|
conf, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -124,7 +124,7 @@ func (c *CorsFilter) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *CorsFilter) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (c *CorsFilter) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
cfg, err := c.check(conf)
|
cfg, err := c.check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -13,7 +13,7 @@ type Driver struct {
|
|||||||
configType reflect.Type
|
configType reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
_, err := d.check(v)
|
_, err := d.check(v)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -34,7 +34,7 @@ func (d *Driver) ConfigType() reflect.Type {
|
|||||||
return d.configType
|
return d.configType
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
conf, err := d.check(v)
|
conf, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -14,7 +14,7 @@ type Driver struct {
|
|||||||
configType reflect.Type
|
configType reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
_, err := d.check(v)
|
_, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -39,7 +39,7 @@ func (d *Driver) ConfigType() reflect.Type {
|
|||||||
return d.configType
|
return d.configType
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
conf, err := d.check(v)
|
conf, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -114,7 +114,7 @@ func (e *ExtraParams) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *ExtraParams) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (e *ExtraParams) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
confObj, err := e.check(conf)
|
confObj, err := e.check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -13,7 +13,7 @@ type Driver struct {
|
|||||||
configType reflect.Type
|
configType reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
_, err := d.check(v)
|
_, err := d.check(v)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -34,7 +34,7 @@ func (d *Driver) ConfigType() reflect.Type {
|
|||||||
return d.configType
|
return d.configType
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
conf, err := d.check(v)
|
conf, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -95,7 +95,7 @@ func (g *Gzip) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Gzip) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (g *Gzip) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
cfg, err := g.check(conf)
|
cfg, err := g.check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -13,7 +13,7 @@ type Driver struct {
|
|||||||
configType reflect.Type
|
configType reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
_, err := d.check(v)
|
_, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -36,7 +36,7 @@ func (d *Driver) ConfigType() reflect.Type {
|
|||||||
return d.configType
|
return d.configType
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
conf, err := d.check(v)
|
conf, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -40,7 +40,7 @@ func (I *IPHandler) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (I *IPHandler) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (I *IPHandler) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
confObj, err := I.check(conf)
|
confObj, err := I.check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -14,7 +14,7 @@ type Driver struct {
|
|||||||
configType reflect.Type
|
configType reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
_, err := d.check(v)
|
_, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -40,7 +40,7 @@ func (d *Driver) ConfigType() reflect.Type {
|
|||||||
return d.configType
|
return d.configType
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (interface{}, error) {
|
||||||
conf, err := d.check(v)
|
conf, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -193,7 +193,7 @@ func (p *ParamsTransformer) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *ParamsTransformer) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (p *ParamsTransformer) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
confObj, err := p.check(conf)
|
confObj, err := p.check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -15,7 +15,7 @@ type Driver struct {
|
|||||||
configType reflect.Type
|
configType reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
_, err := d.check(v)
|
_, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -41,7 +41,7 @@ func (d *Driver) ConfigType() reflect.Type {
|
|||||||
return d.configType
|
return d.configType
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
conf, err := d.check(v)
|
conf, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
package proxy_rewrite
|
package proxy_rewrite
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"github.com/eolinker/eosc/eocontext"
|
"github.com/eolinker/eosc/eocontext"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
|
||||||
@@ -73,7 +72,7 @@ func (p *ProxyRewrite) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *ProxyRewrite) Reset(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (p *ProxyRewrite) Reset(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
conf, err := p.check(v)
|
conf, err := p.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -15,7 +15,7 @@ type Driver struct {
|
|||||||
configType reflect.Type
|
configType reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
_, err := d.check(v)
|
_, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -41,7 +41,7 @@ func (d *Driver) ConfigType() reflect.Type {
|
|||||||
return d.configType
|
return d.configType
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
conf, err := d.check(v)
|
conf, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -110,7 +110,7 @@ func (p *ProxyRewrite) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *ProxyRewrite) Reset(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (p *ProxyRewrite) Reset(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
conf, err := p.check(v)
|
conf, err := p.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -13,7 +13,7 @@ type Driver struct {
|
|||||||
configType reflect.Type
|
configType reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
_, err := d.check(v)
|
_, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -32,7 +32,7 @@ func (d *Driver) check(v interface{}) (*Config, error) {
|
|||||||
return conf, nil
|
return conf, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
conf, err := d.check(v)
|
conf, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -101,7 +101,7 @@ func (r *RateLimiting) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RateLimiting) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (r *RateLimiting) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
confObj, err := r.check(conf)
|
confObj, err := r.check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -14,7 +14,7 @@ type Driver struct {
|
|||||||
configType reflect.Type
|
configType reflect.Type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
_, err := d.check(v)
|
_, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -40,7 +40,7 @@ func (d *Driver) ConfigType() reflect.Type {
|
|||||||
return d.configType
|
return d.configType
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
conf, err := d.check(v)
|
conf, err := d.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@@ -4,7 +4,6 @@ import (
|
|||||||
"github.com/eolinker/eosc/eocontext"
|
"github.com/eolinker/eosc/eocontext"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/eolinker/apinto/utils"
|
|
||||||
"github.com/eolinker/eosc"
|
"github.com/eolinker/eosc"
|
||||||
http_service "github.com/eolinker/eosc/eocontext/http-context"
|
http_service "github.com/eolinker/eosc/eocontext/http-context"
|
||||||
)
|
)
|
||||||
@@ -33,7 +32,7 @@ func (r *ResponseRewrite) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *ResponseRewrite) Reset(v interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (r *ResponseRewrite) Reset(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
conf, err := r.check(v)
|
conf, err := r.check(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -30,7 +30,7 @@ func NewHTTPRouter() *HTTPRouterDriver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Create 创建一个http路由驱动实例
|
//Create 创建一个http路由驱动实例
|
||||||
func (h *HTTPRouterDriver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (h *HTTPRouterDriver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
|
|
||||||
conf, iService, err := h.check(v, workers)
|
conf, iService, err := h.check(v, workers)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -44,7 +44,7 @@ func (h *HTTPRouterDriver) Create(id, name string, v interface{}, workers map[eo
|
|||||||
}
|
}
|
||||||
|
|
||||||
//check 检查http路由驱动配置
|
//check 检查http路由驱动配置
|
||||||
func (h *HTTPRouterDriver) check(v interface{}, workers map[eosc.RequireId]interface{}) (*DriverConfig, service.IServiceCreate, error) {
|
func (h *HTTPRouterDriver) check(v interface{}, workers map[eosc.RequireId]eosc.IWorker) (*DriverConfig, service.IServiceCreate, error) {
|
||||||
conf, ok := v.(*DriverConfig)
|
conf, ok := v.(*DriverConfig)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, nil, fmt.Errorf("get %s but %s %w", config.TypeNameOf(v), config.TypeNameOf(new(DriverConfig)), eosc.ErrorRequire)
|
return nil, nil, fmt.Errorf("get %s but %s %w", config.TypeNameOf(v), config.TypeNameOf(new(DriverConfig)), eosc.ErrorRequire)
|
||||||
|
@@ -30,7 +30,7 @@ func (r *Router) create(cf *DriverConfig, target service.IServiceCreate) (*Route
|
|||||||
handler := NewRouterHandler(newConf, serviceHandler)
|
handler := NewRouterHandler(newConf, serviceHandler)
|
||||||
return handler, nil
|
return handler, nil
|
||||||
}
|
}
|
||||||
func (r *Router) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (r *Router) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
cf, ser, err := r.driver.check(conf, workers)
|
cf, ser, err := r.driver.check(conf, workers)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@@ -21,7 +21,7 @@ func (d *driver) ConfigType() reflect.Type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Create 创建service_http驱动的实例
|
//Create 创建service_http驱动的实例
|
||||||
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (d *driver) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
|
|
||||||
w := &serviceWorker{
|
w := &serviceWorker{
|
||||||
id: id,
|
id: id,
|
||||||
|
@@ -36,7 +36,7 @@ func (s *serviceWorker) Start() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Reset 重置服务实例的配置
|
//Reset 重置服务实例的配置
|
||||||
func (s *serviceWorker) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (s *serviceWorker) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
data, ok := conf.(*Config)
|
data, ok := conf.(*Config)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
return fmt.Errorf("need %s,now %s", config.TypeNameOf((*Config)(nil)), config.TypeNameOf(conf))
|
||||||
|
@@ -8,15 +8,7 @@ type IChainReset interface {
|
|||||||
Reset(filters ...eocontext.IFilter)
|
Reset(filters ...eocontext.IFilter)
|
||||||
}
|
}
|
||||||
|
|
||||||
type IChain interface {
|
|
||||||
eocontext.IChain
|
|
||||||
ToFilter() eocontext.IFilter
|
|
||||||
Append(filters ...eocontext.IFilter) IChain
|
|
||||||
Insert(filters ...eocontext.IFilter) IChain
|
|
||||||
}
|
|
||||||
|
|
||||||
type IChainHandler interface {
|
type IChainHandler interface {
|
||||||
IChain
|
|
||||||
IChainReset
|
IChainReset
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2,85 +2,34 @@ package filter
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/eolinker/eosc/eocontext"
|
"github.com/eolinker/eosc/eocontext"
|
||||||
"github.com/eolinker/eosc/log"
|
|
||||||
"github.com/eolinker/eosc/utils/config"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ IChainHandler = (*_ChainHandler)(nil)
|
var _ IChainHandler = (*_ChainHandler)(nil)
|
||||||
|
|
||||||
type _ChainHandler struct {
|
type _ChainHandler struct {
|
||||||
orgFilter *_ChainFilter
|
filters eocontext.Filters
|
||||||
resetHandler IChainReset
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *_ChainHandler) Destroy() {
|
func (c *_ChainHandler) Destroy() {
|
||||||
orgFilter := c.orgFilter
|
c.filters.Destroy()
|
||||||
if orgFilter != nil {
|
|
||||||
c.orgFilter = nil
|
|
||||||
orgFilter.Destroy()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func createHandler(filters []eocontext.IFilter) *_ChainHandler {
|
func createHandler(filters []eocontext.IFilter) *_ChainHandler {
|
||||||
orgFilter := ToFilter(filters)
|
|
||||||
return &_ChainHandler{
|
return &_ChainHandler{
|
||||||
orgFilter: orgFilter,
|
filters: filters,
|
||||||
resetHandler: orgFilter,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *_ChainHandler) ToFilter() eocontext.IFilter {
|
|
||||||
return c.orgFilter
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *_ChainHandler) DoChain(ctx eocontext.EoContext) error {
|
func (c *_ChainHandler) DoChain(ctx eocontext.EoContext) error {
|
||||||
log.Debug("do chain handler: ", c, config.TypeNameOf(c.orgFilter))
|
|
||||||
orgFilter := c.orgFilter
|
|
||||||
if orgFilter != nil {
|
|
||||||
return orgFilter.DoFilter(ctx, nil)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *_ChainHandler) Append(filters ...eocontext.IFilter) IChain {
|
orgFilter := c.filters
|
||||||
pre := c.ToFilter()
|
|
||||||
fs := make([]eocontext.IFilter, 0, len(filters)+1)
|
|
||||||
if pre != nil {
|
|
||||||
fs = append(fs, pre)
|
|
||||||
}
|
|
||||||
fs = append(fs, filters...)
|
|
||||||
n := createHandler(fs)
|
|
||||||
n.resetHandler = c.resetHandler
|
|
||||||
return n
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *_ChainHandler) Insert(filters ...eocontext.IFilter) IChain {
|
return orgFilter.DoChain(ctx)
|
||||||
pre := c.ToFilter()
|
|
||||||
|
|
||||||
fs := make([]eocontext.IFilter, 0, len(filters)+1)
|
|
||||||
fs = append(fs, filters...)
|
|
||||||
if pre != nil {
|
|
||||||
fs = append(fs, pre)
|
|
||||||
}
|
|
||||||
n := createHandler(fs)
|
|
||||||
n.resetHandler = c.resetHandler
|
|
||||||
return n
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *_ChainHandler) Reset(filters ...eocontext.IFilter) {
|
func (c *_ChainHandler) Reset(filters ...eocontext.IFilter) {
|
||||||
|
c.filters = filters
|
||||||
if c.resetHandler != nil {
|
|
||||||
|
|
||||||
c.resetHandler.Reset(filters...)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
filter := c.orgFilter
|
|
||||||
if filter != nil {
|
|
||||||
filter.Reset(filters...)
|
|
||||||
} else {
|
|
||||||
c.orgFilter = ToFilter(filters)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
@@ -52,7 +52,7 @@ func (f *finishHttp) Finish(ctx eoscContext.EoContext) error {
|
|||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
target.finish()
|
target.FastFinish()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,7 +155,7 @@ func (ctx *Context) RequestId() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Finish finish
|
//Finish finish
|
||||||
func (ctx *Context) finish() {
|
func (ctx *Context) FastFinish() {
|
||||||
if ctx.response.responseError != nil {
|
if ctx.response.responseError != nil {
|
||||||
ctx.fastHttpRequestCtx.SetStatusCode(504)
|
ctx.fastHttpRequestCtx.SetStatusCode(504)
|
||||||
ctx.fastHttpRequestCtx.SetBodyString(ctx.response.responseError.Error())
|
ctx.fastHttpRequestCtx.SetBodyString(ctx.response.responseError.Error())
|
||||||
|
@@ -40,7 +40,7 @@ func (p *PluginManager) ConfigType() reflect.Type {
|
|||||||
return reflect.TypeOf(new(PluginWorkerConfig))
|
return reflect.TypeOf(new(PluginWorkerConfig))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PluginManager) Create(id, name string, v interface{}, workers map[eosc.RequireId]interface{}) (eosc.IWorker, error) {
|
func (p *PluginManager) Create(id, name string, v interface{}, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
|
||||||
p.Reset(v, workers)
|
p.Reset(v, workers)
|
||||||
return p, nil
|
return p, nil
|
||||||
}
|
}
|
||||||
|
@@ -4,18 +4,12 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/eolinker/eosc/eocontext"
|
|
||||||
"reflect"
|
|
||||||
|
|
||||||
"github.com/eolinker/apinto/plugin"
|
"github.com/eolinker/apinto/plugin"
|
||||||
|
|
||||||
"github.com/eolinker/eosc/common/bean"
|
|
||||||
|
|
||||||
"github.com/eolinker/eosc"
|
"github.com/eolinker/eosc"
|
||||||
|
"github.com/eolinker/eosc/common/bean"
|
||||||
"github.com/eolinker/apinto/filter"
|
"github.com/eolinker/eosc/eocontext"
|
||||||
|
|
||||||
"github.com/eolinker/eosc/log"
|
"github.com/eolinker/eosc/log"
|
||||||
|
"reflect"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -35,7 +29,7 @@ type PluginManager struct {
|
|||||||
workers eosc.IWorkers
|
workers eosc.IWorkers
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PluginManager) CreateRequest(id string, conf map[string]*plugin.Config) plugin.IPlugin {
|
func (p *PluginManager) CreateRequest(id string, conf map[string]*plugin.Config) eocontext.IChain {
|
||||||
return p.createChain(id, conf)
|
return p.createChain(id, conf)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,7 +41,7 @@ func (p *PluginManager) Start() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PluginManager) Reset(conf interface{}, workers map[eosc.RequireId]interface{}) error {
|
func (p *PluginManager) Reset(conf interface{}, workers map[eosc.RequireId]eosc.IWorker) error {
|
||||||
|
|
||||||
plugins, err := p.check(conf)
|
plugins, err := p.check(conf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -62,7 +56,7 @@ func (p *PluginManager) Reset(conf interface{}, workers map[eosc.RequireId]inter
|
|||||||
if !ok {
|
if !ok {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
v.IChainHandler.Reset(p.createFilters(v.conf)...)
|
v.Filters = p.createFilters(v.conf)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@@ -80,23 +74,19 @@ func (p *PluginManager) createFilters(conf map[string]*plugin.Config) []eocontex
|
|||||||
filters := make([]eocontext.IFilter, 0, len(conf))
|
filters := make([]eocontext.IFilter, 0, len(conf))
|
||||||
plugins := p.plugins
|
plugins := p.plugins
|
||||||
for _, plg := range plugins {
|
for _, plg := range plugins {
|
||||||
if plg.Status == StatusDisable || plg.Status == "" {
|
if plg.Status == StatusDisable {
|
||||||
// 当插件类型不匹配,跳过
|
// 禁用插件,跳过
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
c := plg.Config
|
c := plg.Config
|
||||||
if v, ok := conf[plg.Name]; ok {
|
if v, ok := conf[plg.Name]; ok {
|
||||||
if v.Disable {
|
if v.Disable {
|
||||||
// 不启用该插件
|
// 局部禁用
|
||||||
continue
|
|
||||||
}
|
|
||||||
if plg.Status != StatusGlobal && plg.Status != StatusEnable {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if v.Config == nil && plg.Status != StatusGlobal {
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
if v.Config != nil {
|
||||||
c = v.Config
|
c = v.Config
|
||||||
|
}
|
||||||
} else if plg.Status != StatusGlobal {
|
} else if plg.Status != StatusGlobal {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -120,15 +110,15 @@ func (p *PluginManager) createFilters(conf map[string]*plugin.Config) []eocontex
|
|||||||
return filters
|
return filters
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PluginManager) createChain(id string, conf map[string]*plugin.Config) plugin.IPlugin {
|
func (p *PluginManager) createChain(id string, conf map[string]*plugin.Config) *PluginObj {
|
||||||
chain := filter.NewChain(p.createFilters(conf))
|
chain := p.createFilters(conf)
|
||||||
|
obj, has := p.pluginObjs.Get(id)
|
||||||
obj, has := p.pluginObjs.Del(id)
|
if !has {
|
||||||
if has {
|
obj = NewPluginObj(chain, id, conf)
|
||||||
o := obj.(*PluginObj)
|
p.pluginObjs.Set(id, obj)
|
||||||
o.Destroy()
|
} else {
|
||||||
|
obj.(*PluginObj).Filters = chain
|
||||||
}
|
}
|
||||||
obj = NewPluginObj(chain, id, conf, p.pluginObjs)
|
|
||||||
|
|
||||||
return obj.(*PluginObj)
|
return obj.(*PluginObj)
|
||||||
}
|
}
|
||||||
|
@@ -1,33 +1,25 @@
|
|||||||
package plugin_manager
|
package plugin_manager
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/eolinker/apinto/filter"
|
|
||||||
"github.com/eolinker/apinto/plugin"
|
"github.com/eolinker/apinto/plugin"
|
||||||
"github.com/eolinker/eosc"
|
eoscContext "github.com/eolinker/eosc/eocontext"
|
||||||
)
|
)
|
||||||
|
|
||||||
type PluginObj struct {
|
type PluginObj struct {
|
||||||
filter.IChainHandler
|
eoscContext.Filters
|
||||||
id string
|
id string
|
||||||
conf map[string]*plugin.Config
|
conf map[string]*plugin.Config
|
||||||
manager eosc.IUntyped
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewPluginObj(handler filter.IChainHandler, id string, conf map[string]*plugin.Config, manager eosc.IUntyped) *PluginObj {
|
func NewPluginObj(filters eoscContext.Filters, id string, conf map[string]*plugin.Config) *PluginObj {
|
||||||
obj := &PluginObj{IChainHandler: handler, id: id, conf: conf, manager: manager}
|
obj := &PluginObj{Filters: filters, id: id, conf: conf}
|
||||||
|
|
||||||
manager.Set(id, obj)
|
|
||||||
|
|
||||||
return obj
|
return obj
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PluginObj) Destroy() {
|
func (p *PluginObj) Destroy() {
|
||||||
manager := p.manager
|
|
||||||
if manager != nil {
|
handler := p.Filters
|
||||||
p.manager = nil
|
|
||||||
manager.Del(p.id)
|
|
||||||
}
|
|
||||||
handler := p.IChainHandler
|
|
||||||
if handler != nil {
|
if handler != nil {
|
||||||
handler.Destroy()
|
handler.Destroy()
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
package plugin
|
package plugin
|
||||||
|
|
||||||
import "github.com/eolinker/apinto/filter"
|
import "github.com/eolinker/eosc/eocontext"
|
||||||
|
|
||||||
//Config 普通插件配置,在router、service、upstream的插件格式
|
//Config 普通插件配置,在router、service、upstream的插件格式
|
||||||
type Config struct {
|
type Config struct {
|
||||||
@@ -12,12 +12,8 @@ type IPluginConfigMerge interface {
|
|||||||
Merge(high map[string]*Config) map[string]*Config
|
Merge(high map[string]*Config) map[string]*Config
|
||||||
}
|
}
|
||||||
|
|
||||||
type IPlugin interface {
|
|
||||||
filter.IChain
|
|
||||||
Destroy()
|
|
||||||
}
|
|
||||||
type IPluginManager interface {
|
type IPluginManager interface {
|
||||||
CreateRequest(id string, conf map[string]*Config) IPlugin
|
CreateRequest(id string, conf map[string]*Config) eocontext.IChain
|
||||||
//CreateUpstream(id string, conf map[string]*Config) IPlugin
|
//CreateUpstream(id string, conf map[string]*Config) IPlugin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user