MCPcopy
hub / github.com/netdata/netdata / readFunctionPayload

Function readFunctionPayload

src/go/cmd/godplugin/main.go:246–275  ·  view source on GitHub ↗
(raw string)

Source from the content-addressed store, hash-verified

244}
245
246func readFunctionPayload(raw string) ([]byte, time.Duration, error) {
247 if raw == "" {
248 return nil, 0, nil
249 }
250
251 var data []byte
252 var err error
253 if after, ok := strings.CutPrefix(raw, "@"); ok {
254 data, err = os.ReadFile(after)
255 } else {
256 data = []byte(raw)
257 }
258 if err != nil {
259 return nil, 0, fmt.Errorf("read payload: %w", err)
260 }
261
262 var payload map[string]any
263 if err := json.Unmarshal(data, &payload); err != nil {
264 return nil, 0, fmt.Errorf("parse payload JSON: %w", err)
265 }
266
267 timeoutMs, ok, err := parsePayloadTimeout(payload)
268 if err != nil {
269 return nil, 0, err
270 }
271 if ok {
272 return data, time.Duration(timeoutMs) * time.Millisecond, nil
273 }
274 return data, 0, nil
275}
276
277func parsePayloadTimeout(payload map[string]any) (int64, bool, error) {
278 if payload == nil {

Callers 1

runFunctionCLIFunction · 0.85

Calls 4

parsePayloadTimeoutFunction · 0.85
ReadFileMethod · 0.65
ErrorfMethod · 0.65
DurationMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…