add local config
This commit is contained in:
parent
de01fa5d80
commit
ec6ea9aded
@ -493,6 +493,9 @@ func (a *Agent) GetWMIInfo() map[string]interface{} {
|
||||
}
|
||||
|
||||
// windows only below TODO add into stub file
|
||||
func (a *Agent) GetAgentCheckInConfig(ret AgentCheckInConfig) AgentCheckInConfig {
|
||||
return ret
|
||||
}
|
||||
|
||||
func (a *Agent) PlatVer() (string, error) { return "", nil }
|
||||
|
||||
|
@ -863,6 +863,43 @@ func (a *Agent) InstallService() error {
|
||||
return service.Control(s, "install")
|
||||
}
|
||||
|
||||
func (a *Agent) GetAgentCheckInConfig(ret AgentCheckInConfig) AgentCheckInConfig {
|
||||
// if local config present, overwrite
|
||||
k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\TacticalRMM`, registry.ALL_ACCESS)
|
||||
if err == nil {
|
||||
if checkInHello, _, err := k.GetStringValue("CheckInHello"); err == nil {
|
||||
ret.Hello = regRangeToInt(checkInHello)
|
||||
}
|
||||
if checkInAgentInfo, _, err := k.GetStringValue("CheckInAgentInfo"); err == nil {
|
||||
ret.AgentInfo = regRangeToInt(checkInAgentInfo)
|
||||
}
|
||||
if checkInWinSvc, _, err := k.GetStringValue("CheckInWinSvc"); err == nil {
|
||||
ret.WinSvc = regRangeToInt(checkInWinSvc)
|
||||
}
|
||||
if checkInPubIP, _, err := k.GetStringValue("CheckInPubIP"); err == nil {
|
||||
ret.PubIP = regRangeToInt(checkInPubIP)
|
||||
}
|
||||
if checkInDisks, _, err := k.GetStringValue("CheckInDisks"); err == nil {
|
||||
ret.Disks = regRangeToInt(checkInDisks)
|
||||
}
|
||||
if checkInSW, _, err := k.GetStringValue("CheckInSW"); err == nil {
|
||||
ret.SW = regRangeToInt(checkInSW)
|
||||
}
|
||||
if checkInWMI, _, err := k.GetStringValue("CheckInWMI"); err == nil {
|
||||
ret.WMI = regRangeToInt(checkInWMI)
|
||||
}
|
||||
if checkInSyncMesh, _, err := k.GetStringValue("CheckInSyncMesh"); err == nil {
|
||||
ret.SyncMesh = regRangeToInt(checkInSyncMesh)
|
||||
}
|
||||
if checkInLimitData, _, err := k.GetStringValue("CheckInLimitData"); err == nil {
|
||||
if checkInLimitData == "true" {
|
||||
ret.LimitData = true
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
// TODO add to stub
|
||||
func (a *Agent) NixMeshNodeID() string {
|
||||
return "not implemented"
|
||||
|
10
agent/svc.go
10
agent/svc.go
@ -55,7 +55,8 @@ func (a *Agent) AgentSvc(nc *nats.Conn) {
|
||||
a.Logger.Debugf("AgentSvc() sleeping for %v seconds", sleepDelay)
|
||||
time.Sleep(time.Duration(sleepDelay) * time.Second)
|
||||
|
||||
conf := a.GetAgentCheckInConfig()
|
||||
conf := a.GetAgentCheckInConfig(a.GetCheckInConfFromAPI())
|
||||
a.Logger.Debugf("+%v\n", conf)
|
||||
for _, s := range natsCheckin {
|
||||
if conf.LimitData && stringInSlice(s, limitNatsData) {
|
||||
continue
|
||||
@ -113,7 +114,7 @@ func (a *Agent) AgentStartup() {
|
||||
}
|
||||
}
|
||||
|
||||
func (a *Agent) GetAgentCheckInConfig() AgentCheckInConfig {
|
||||
func (a *Agent) GetCheckInConfFromAPI() AgentCheckInConfig {
|
||||
ret := AgentCheckInConfig{}
|
||||
url := fmt.Sprintf("/api/v3/%s/config/", a.AgentID)
|
||||
r, err := a.rClient.R().SetResult(&AgentCheckInConfig{}).Get(url)
|
||||
@ -128,8 +129,7 @@ func (a *Agent) GetAgentCheckInConfig() AgentCheckInConfig {
|
||||
ret.WMI = randRange(3000, 4000)
|
||||
ret.SyncMesh = randRange(800, 1200)
|
||||
ret.LimitData = false
|
||||
return ret
|
||||
}
|
||||
} else {
|
||||
ret.Hello = r.Result().(*AgentCheckInConfig).Hello
|
||||
ret.AgentInfo = r.Result().(*AgentCheckInConfig).AgentInfo
|
||||
ret.WinSvc = r.Result().(*AgentCheckInConfig).WinSvc
|
||||
@ -139,6 +139,6 @@ func (a *Agent) GetAgentCheckInConfig() AgentCheckInConfig {
|
||||
ret.WMI = r.Result().(*AgentCheckInConfig).WMI
|
||||
ret.SyncMesh = r.Result().(*AgentCheckInConfig).SyncMesh
|
||||
ret.LimitData = r.Result().(*AgentCheckInConfig).LimitData
|
||||
a.Logger.Debugf("%+v\n", r)
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ import (
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
goDebug "runtime/debug"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@ -331,3 +332,10 @@ func stringInSlice(a string, list []string) bool {
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func regRangeToInt(s string) int {
|
||||
split := strings.Split(s, ",")
|
||||
min, _ := strconv.Atoi(split[0])
|
||||
max, _ := strconv.Atoi(split[1])
|
||||
return randRange(min, max)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user