-
Notifications
You must be signed in to change notification settings - Fork 3
Description
我们在$GOPATH/src/istio.io/istio/mixer/pkg/server/server.go做过一次静态的校验?
138 tmplRepo := template.NewRepository(a.Templates)
139 adapterMap := config.AdapterInfoMap(a.Adapters, tmplRepo.SupportsTemplate)
为何在初始化runtime或者后端配置存储变化时,需要再做一次全量的校验呢?上面的这次校验不做,不就可以了吗?
$GOPATH/src/istio.io/istio/mixer/pkg/runtime/config/handler.go
76 for handler, instances := range instancesByHandler {
77 createEntry(old, t, handler, instances, snapshot.ID,
78 func(handler hndlr, instances interface{}) (h adapter.Handler, e env, err error) {
79 e = NewEnv(snapshot.ID, handler.GetName(), gp).(env)
80 h, err = config.BuildHandler(handler.(*config.HandlerStatic), instances.([]*config.InstanceStatic),
81 e, snapshot.Templates)
82 return h, e, err
83 })
84 }
85
86 for handler, instances := range instancesByHandlerDynamic {
87 createEntry(old, t, handler, instances, snapshot.ID,
88 func(_ hndlr, _ interface{}) (h adapter.Handler, e env, err error) {
89 e = NewEnv(snapshot.ID, handler.GetName(), gp).(env)
90 tmplCfg := make([]*dynamic.TemplateConfig, 0, len(instances))
91 for _, inst := range instances {
92 tmplCfg = append(tmplCfg, &dynamic.TemplateConfig{
93 Name: inst.Name,
94 TemplateName: inst.Template.Name,
95 FileDescSet: inst.Template.FileDescSet,
96 Variety: inst.Template.Variety,
97 })
98 }