master
go 47 lines 1.14 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package jobmgr
4
5 import (
6 "fmt"
7
8 "github.com/netdata/netdata/go/plugins/plugin/framework/confgroup"
9 "github.com/netdata/netdata/go/plugins/plugin/framework/dyncfg"
10 "github.com/netdata/netdata/go/plugins/plugin/framework/vnodes"
11 )
12
13 func (m *Manager) dyncfgVnodePrefixValue() string {
14 return m.vnodesCtl.Prefix()
15 }
16
17 func (m *Manager) dyncfgVnodeExec(fn dyncfg.Function) {
18 switch fn.Command() {
19 case dyncfg.CommandSchema, dyncfg.CommandUserconfig:
20 m.dyncfgVnodeSeqExec(fn)
21 return
22 }
23 m.enqueueDyncfgFunction(fn)
24 }
25
26 func (m *Manager) dyncfgVnodeSeqExec(fn dyncfg.Function) {
27 m.vnodesCtl.SeqExec(fn)
28 }
29
30 func (m *Manager) affectedVnodeJobs(vnode string) []string {
31 var jobs []string
32 m.collectorExposed.ForEach(func(_ string, entry *dyncfg.Entry[confgroup.Config]) bool {
33 if entry.Cfg.Vnode() == vnode {
34 jobs = append(jobs, fmt.Sprintf("%s:%s", entry.Cfg.Module(), entry.Cfg.Name()))
35 }
36 return true
37 })
38 return jobs
39 }
40
41 func (m *Manager) applyVnodeUpdate(name string, cfg *vnodes.VirtualNode) {
42 for _, job := range m.runningJobs.snapshot() {
43 if job.Vnode().Name == name {
44 job.UpdateVnode(cfg)
45 }
46 }
47 }