master
go 52 lines 1.38 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package jobmgr
4
5 import (
6 "strings"
7
8 "github.com/netdata/netdata/go/plugins/plugin/framework/dyncfg"
9 )
10
11 func (m *Manager) dyncfgConfig(fn dyncfg.Function) {
12 if err := fn.ValidateArgs(2); err != nil {
13 m.Warningf("dyncfg: %v", err)
14 m.dyncfgResponder.SendCodef(fn, 400, "%v", err)
15 return
16 }
17
18 select {
19 case <-m.ctx.Done():
20 m.dyncfgResponder.SendCodef(fn, 503, "Job manager is shutting down.")
21 return
22 default:
23 }
24
25 m.dyncfgQueuedExec(fn)
26 }
27
28 func (m *Manager) dyncfgQueuedExec(fn dyncfg.Function) {
29 switch {
30 case strings.HasPrefix(fn.ID(), m.dyncfgSecretStorePrefixValue()):
31 m.dyncfgSecretStoreExec(fn)
32 case strings.HasPrefix(fn.ID(), m.dyncfgCollectorPrefixValue()):
33 m.dyncfgCollectorExec(fn)
34 case strings.HasPrefix(fn.ID(), m.dyncfgVnodePrefixValue()):
35 m.dyncfgVnodeExec(fn)
36 default:
37 m.dyncfgResponder.SendCodef(fn, 503, "unknown function '%s' (%s).", fn.Fn().Name, fn.ID())
38 }
39 }
40
41 func (m *Manager) dyncfgSeqExec(fn dyncfg.Function) {
42 switch {
43 case strings.HasPrefix(fn.ID(), m.dyncfgSecretStorePrefixValue()):
44 m.dyncfgSecretStoreSeqExec(fn)
45 case strings.HasPrefix(fn.ID(), m.dyncfgCollectorPrefixValue()):
46 m.dyncfgCollectorSeqExec(fn)
47 case strings.HasPrefix(fn.ID(), m.dyncfgVnodePrefixValue()):
48 m.dyncfgVnodeSeqExec(fn)
49 default:
50 m.dyncfgResponder.SendCodef(fn, 503, "unknown function '%s' (%s).", fn.Fn().Name, fn.ID())
51 }
52 }