Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( SupportedTmplInfo = map[string]template.Info{ samplereport.TemplateName: { Name: samplereport.TemplateName, Impl: "samplereport", CtrCfg: &samplereport.InstanceParam{}, Variety: adptTmpl.TEMPLATE_VARIETY_REPORT, BldrInterfaceName: samplereport.TemplateName + "." + "HandlerBuilder", HndlrInterfaceName: samplereport.TemplateName + "." + "Handler", BuilderSupportsTemplate: func(hndlrBuilder adapter.HandlerBuilder) bool { _, ok := hndlrBuilder.(samplereport.HandlerBuilder) return ok }, HandlerSupportsTemplate: func(hndlr adapter.Handler) bool { _, ok := hndlr.(samplereport.Handler) return ok }, InferType: func(cp proto.Message, tEvalFn template.TypeEvalFn) (proto.Message, error) { var err error = nil cpb := cp.(*samplereport.InstanceParam) infrdType := &samplereport.Type{} if cpb.Value == "" || cpb.Value == emptyQuotes { return nil, errors.New("expression for field Value cannot be empty") } if infrdType.Value, err = tEvalFn(cpb.Value); err != nil { return nil, err } infrdType.Dimensions = make(map[string]istio_mixer_v1_config_descriptor.ValueType, len(cpb.Dimensions)) for k, v := range cpb.Dimensions { if infrdType.Dimensions[k], err = tEvalFn(v); err != nil { return nil, err } } _ = cpb return infrdType, err }, SetType: func(types map[string]proto.Message, builder adapter.HandlerBuilder) { castedBuilder := builder.(samplereport.HandlerBuilder) castedTypes := make(map[string]*samplereport.Type, len(types)) for k, v := range types { v1 := v.(*samplereport.Type) castedTypes[k] = v1 } castedBuilder.SetSampleReportTypes(castedTypes) }, ProcessReport: func(ctx context.Context, insts map[string]proto.Message, attrs attribute.Bag, mapper expr.Evaluator, handler adapter.Handler) error { var instances []*samplereport.Instance for name, inst := range insts { md := inst.(*samplereport.InstanceParam) Value, err := mapper.Eval(md.Value, attrs) if err != nil { msg := fmt.Sprintf("failed to eval Value for instance '%s': %v", name, err) glog.Error(msg) return errors.New(msg) } Dimensions, err := template.EvalAll(md.Dimensions, attrs, mapper) if err != nil { msg := fmt.Sprintf("failed to eval Dimensions for instance '%s': %v", name, err) glog.Error(msg) return errors.New(msg) } instances = append(instances, &samplereport.Instance{ Name: name, Value: Value, Dimensions: Dimensions, }) _ = md } if err := handler.(samplereport.Handler).HandleSampleReport(ctx, instances); err != nil { return fmt.Errorf("failed to report all values: %v", err) } return nil }, }, } )
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.