Skip to content

多次进行templates与adapters之间HandlerBuilder接口实现校验 #7

@1046102779

Description

@1046102779

我们在$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 }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions