MCPcopy Create free account
hub / github.com/apache/camel-k / parseErrorHandler

Function parseErrorHandler

pkg/controller/pipe/error_handler.go:72–106  ·  view source on GitHub ↗
(rawMessage *v1.RawMessage)

Source from the content-addressed store, hash-verified

70}
71
72func parseErrorHandler(rawMessage *v1.RawMessage) (v1.ErrorHandler, error) {
73 var properties map[v1.ErrorHandlerType]v1.RawMessage
74 err := json.Unmarshal(*rawMessage, &properties)
75 if err != nil {
76 return nil, err
77 }
78 if len(properties) > 1 {
79 return nil, fmt.Errorf("you must provide just 1 error handler, provided %d", len(properties))
80 }
81
82 for errHandlType, errHandlValue := range properties {
83 var dst v1.ErrorHandler
84 switch errHandlType {
85 case v1.ErrorHandlerTypeNone:
86 dst = new(v1.ErrorHandlerNone)
87 case v1.ErrorHandlerTypeLog:
88 dst = new(v1.ErrorHandlerLog)
89 case v1.ErrorHandlerTypeSink:
90 dst = new(v1.ErrorHandlerSink)
91 default:
92 return nil, fmt.Errorf("unknown error handler type %s", errHandlType)
93 }
94
95 if err = json.Unmarshal(errHandlValue, dst); err != nil {
96 return nil, err
97 }
98 if err = dst.Validate(); err != nil {
99 return nil, err
100 }
101
102 return dst, nil
103 }
104
105 return nil, errors.New("you must provide any supported error handler")
106}
107
108func setErrorHandlerConfiguration(errorHandlerBinding *bindings.Binding, errorHandler v1.ErrorHandler) error {
109 properties, err := errorHandler.Configuration()

Calls 2

ValidateMethod · 0.95
ErrorfMethod · 0.80