rmmagent/agent/tactical/mesh/mesh.go
2022-06-22 15:40:42 -07:00

52 lines
No EOL
990 B
Go

package mesh
import (
"errors"
"strings"
"github.com/amidaware/rmmagent/agent/system"
"github.com/amidaware/rmmagent/agent/tactical/api"
"github.com/amidaware/rmmagent/agent/tactical/config"
"github.com/amidaware/rmmagent/agent/utils"
)
func SyncMeshNodeID() error {
config := config.NewAgentConfig()
id, err := GetMeshNodeID()
if err != nil {
return err
}
payload := MeshNodeID{
Func: "syncmesh",
Agentid: config.AgentID,
NodeID: utils.StripAll(id),
}
err = api.PostPayload(payload, "/api/v3/syncmesh/")
if err != nil {
return err
}
return nil
}
func GetMeshNodeID() (string, error) {
out, err := system.CMD(GetMeshBinLocation(), []string{"-nodeid"}, 10, false)
if err != nil {
return "", err
}
stdout := out[0]
stderr := out[1]
if stderr != "" {
return "", err
}
if stdout == "" || strings.Contains(strings.ToLower(utils.StripAll(stdout)), "not defined") {
return "", errors.New("failed to get mesh node id")
}
return stdout, nil
}