Skip to content

Commit 12c94c4

Browse files
authored
refactor: isolate filter with appid (#233)
1 parent 31f420e commit 12c94c4

7 files changed

Lines changed: 17 additions & 11 deletions

File tree

cmd/cmd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ var (
9191
if err != nil {
9292
log.Fatal(errors.Wrapf(err, "failed to create filter: %s", filterConf.Name))
9393
}
94-
filter.RegisterFilter(filterConf.Name, f)
94+
filter.RegisterFilter(appid, filterConf.Name, f)
9595
}
9696

9797
resource.RegisterDBManager(appid, dbpackConf.DataSources, func(dbName, dsn string) pools.Factory {

pkg/executor/read_write_splitting.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ func NewReadWriteSplittingExecutor(conf *config.Executor) (proto.Executor, error
9898

9999
for i := 0; i < len(conf.Filters); i++ {
100100
filterName := conf.Filters[i]
101-
f := filter.GetFilter(filterName)
101+
f := filter.GetFilter(conf.AppID, filterName)
102102
if f != nil {
103103
preFilter, ok := f.(proto.DBPreFilter)
104104
if ok {

pkg/executor/sharding.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func NewShardingExecutor(conf *config.Executor) (proto.Executor, error) {
8686

8787
for i := 0; i < len(conf.Filters); i++ {
8888
filterName := conf.Filters[i]
89-
f := filter.GetFilter(filterName)
89+
f := filter.GetFilter(conf.AppID, filterName)
9090
if f != nil {
9191
preFilter, ok := f.(proto.DBPreFilter)
9292
if ok {

pkg/executor/single_db.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ func NewSingleDBExecutor(conf *config.Executor) (proto.Executor, error) {
7373

7474
for i := 0; i < len(conf.Filters); i++ {
7575
filterName := conf.Filters[i]
76-
f := filter.GetFilter(filterName)
76+
f := filter.GetFilter(conf.AppID, filterName)
7777
if f != nil {
7878
preFilter, ok := f.(proto.DBPreFilter)
7979
if ok {

pkg/filter/filters.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@
1616

1717
package filter
1818

19-
import "github.com/cectc/dbpack/pkg/proto"
19+
import (
20+
"strings"
21+
22+
"github.com/cectc/dbpack/pkg/proto"
23+
)
2024

2125
var (
2226
filterFactories = make(map[string]proto.FilterFactory)
@@ -31,10 +35,12 @@ func GetFilterFactory(kind string) proto.FilterFactory {
3135
return filterFactories[kind]
3236
}
3337

34-
func RegisterFilter(name string, filter proto.Filter) {
35-
filters[name] = filter
38+
func RegisterFilter(appid, name string, filter proto.Filter) {
39+
key := strings.Join([]string{appid, name}, "-")
40+
filters[key] = filter
3641
}
3742

38-
func GetFilter(name string) proto.Filter {
39-
return filters[name]
43+
func GetFilter(appid, name string) proto.Filter {
44+
key := strings.Join([]string{appid, name}, "-")
45+
return filters[key]
4046
}

pkg/listener/http.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func NewHttpListener(conf *config.Listener) (proto.Listener, error) {
8686

8787
for i := 0; i < len(conf.Filters); i++ {
8888
filterName := conf.Filters[i]
89-
f := filter.GetFilter(filterName)
89+
f := filter.GetFilter(conf.AppID, filterName)
9090
if f != nil {
9191
preFilter, ok := f.(proto.HttpPreFilter)
9292
if ok {

pkg/resource/data_source.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func RegisterDBManager(appid string, dataSources []*config.DataSource, factory f
5656
db := sql.NewDB(dataSource.Name, dataSource.PingInterval, dataSource.PingTimesForChangeStatus, resourcePool)
5757
for j := 0; j < len(dataSource.Filters); j++ {
5858
filterName := dataSource.Filters[j]
59-
f := filter.GetFilter(filterName)
59+
f := filter.GetFilter(appid, filterName)
6060
if f != nil {
6161
preFilter, ok := f.(proto.DBConnectionPreFilter)
6262
if ok {

0 commit comments

Comments
 (0)