diff --git a/.gitignore b/.gitignore index 015eb5f2fa1ea9600cff804b300b10c1a121eb16..7a279ffce37bc2a1575f024d227765186d46942e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/PilotGo -.DS_Store -/.vscode \ No newline at end of file + +.vscode/ +!build \ No newline at end of file diff --git a/topology/build b/topology/build new file mode 100644 index 0000000000000000000000000000000000000000..350fd41b77feedc9067f13f66ce56e8f85f07363 --- /dev/null +++ b/topology/build @@ -0,0 +1,34 @@ +#!/bin/bash + + +SERVERMAIN="/home/wjq/a-disk/PilotGo-plugins/topology/server/main.go" +SERVERSCRIPT="/home/wjq/a-disk/PilotGo-plugins/topology/toposerver" +AGENTMAIN="/home/wjq/a-disk/PilotGo-plugins/topology/agent/main.go" +AGENTSCRIPT="/home/wjq/a-disk/PilotGo-plugins/topology/topoagent" +AGENTREMOTE="/opt/topo" + +echo -e "\e[32m build server \e[0m" +go build -o $SERVERSCRIPT ${SERVERMAIN} +echo -e "\e[32m build agent \e[0m" +go build -o $AGENTSCRIPT $AGENTMAIN + +case "x$#" in + x1) + echo -e "\e[32m upload to $1 \e[0m" + scp $AGENTSCRIPT root@192.168.75.$1:$AGENTREMOTE > /dev/null + ;; + x2) + echo -e "\e[32m upload to $1 \e[0m" + scp $AGENTSCRIPT root@192.168.75.$1:$AGENTREMOTE > /dev/null + echo -e "\e[32m upload to $2 \e[0m" + scp $AGENTSCRIPT root@192.168.75.$2:$AGENTREMOTE > /dev/null + ;; + x3) + echo -e "\e[32m upload to $1 \e[0m" + scp $AGENTSCRIPT root@192.168.75.$1:$AGENTREMOTE > /dev/null + echo -e "\e[32m upload to $2 \e[0m" + scp $AGENTSCRIPT root@192.168.75.$2:$AGENTREMOTE > /dev/null + echo -e "\e[32m upload to $3 \e[0m" + scp $AGENTSCRIPT root@192.168.75.$3:$AGENTREMOTE > /dev/null + ;; +esac diff --git a/topology/server/agentmanager/topoclient.go b/topology/server/agentmanager/topoclient.go index 38f367d45b8ea18c27cde374c19461ff0b7de4a9..c855896a0ac8c3e0450b28997ea1f82ba29031dd 100644 --- a/topology/server/agentmanager/topoclient.go +++ b/topology/server/agentmanager/topoclient.go @@ -25,24 +25,28 @@ type Topoclient struct { func (t *Topoclient) InitMachineList() { url := Topo.Sdkmethod.Server + "/api/v1/pluginapi/machine_list" - r, err := httputils.Get(url, nil) + resp, err := httputils.Get(url, nil) if err != nil { - filepath, line, funcname := utils.CallerInfo(err) + filepath, line, funcname := utils.CallerInfo() logger.Error("\n\tfile: %s\n\tline: %d\n\tfunc: %s\n\terr: %s\n", filepath, line, funcname, err.Error()) + return } - results := &struct { - Code int `json:"code"` - Data interface{} `json:"data"` - }{} + statuscode := resp.StatusCode + if statuscode != 200 { + filepath, line, funcname := utils.CallerInfo() + logger.Error("\n\tfile: %s\n\tline: %d\n\tfunc: %s\n\terr: %s\n", filepath, line, funcname, string(resp.Body)) + return + } - err = json.Unmarshal(r.Body, &results) + agents := &[]interface{}{} + err = json.Unmarshal(resp.Body, agents) if err != nil { - filepath, line, funcname := utils.CallerInfo(err) + filepath, line, funcname := utils.CallerInfo() logger.Error("\n\tfile: %s\n\tline: %d\n\tfunc: %s\n\terr: %s\n", filepath, line, funcname, err.Error()) } - for _, m := range results.Data.([]interface{}) { + for _, m := range *agents { p := &Agent_m{} mapstructure.Decode(m, p) p.TAState = 0 @@ -53,7 +57,7 @@ func (t *Topoclient) InitMachineList() { func (t *Topoclient) InitLogger() { err := logger.Init(conf.Config().Logopts) if err != nil { - filepath, line, funcname := utils.CallerInfo(err) + filepath, line, funcname := utils.CallerInfo() logger.Error("\n\tfile: %s\n\tline: %d\n\tfunc: %s\n\terr: %s\n", filepath, line, funcname, err.Error()) os.Exit(1) } @@ -65,7 +69,7 @@ func (t *Topoclient) InitWebServer() { handler.InitRouter(engine) err := engine.Run(conf.Config().Topo.Server_addr) if err != nil { - filepath, line, funcname := utils.CallerInfo(err) + filepath, line, funcname := utils.CallerInfo() logger.Fatal("\n\tfile: %s\n\tline: %d\n\tfunc: %s\n\terr: %s\n", filepath, line, funcname, err.Error()) } } diff --git a/topology/server/collector/collector.go b/topology/server/collector/collector.go index 6559a995d4db76500d18c8cdefe5299ee205f8fd..0b431cda5fdc5608c5457ba8c88593066a92b4a2 100644 --- a/topology/server/collector/collector.go +++ b/topology/server/collector/collector.go @@ -34,7 +34,7 @@ func (d *DataCollector) Collect_instant_data() error { agent.Port = conf.Config().Topo.Agent_port err := d.GetCollectDataFromTopoAgent(agent) if err != nil { - filepath, line, funcname := utils.CallerInfo(err) + filepath, line, funcname := utils.CallerInfo() logger.Error("\n\tfile: %s\n\tline: %d\n\tfunc: %s\n", filepath, line, funcname) } agentmanager.Topo.AddAgent(agent) @@ -56,7 +56,7 @@ func (d *DataCollector) GetCollectDataFromTopoAgent(a *agentmanager.Agent_m) err r, err := httputils.Get(url, nil) if err != nil { - filepath, line, funcname := utils.CallerInfo(err) + filepath, line, funcname := utils.CallerInfo() logger.Error("\n\tfile: %s\n\tline: %d\n\tfunc: %s\n\terr: %s\n", filepath, line, funcname, err.Error()) return fmt.Errorf("file: %s, line: %d, func: %s, err -> %s", filepath, line, funcname, err.Error()) } @@ -69,7 +69,7 @@ func (d *DataCollector) GetCollectDataFromTopoAgent(a *agentmanager.Agent_m) err err = json.Unmarshal(r.Body, &results) if err != nil { - filepath, line, funcname := utils.CallerInfo(err) + filepath, line, funcname := utils.CallerInfo() logger.Error("\n\tfile: %s\n\tline: %d\n\tfunc: %s\n\terr: %s\n", filepath, line, funcname, err.Error()) return fmt.Errorf("file: %s, line: %d, func: %s, err -> %s", filepath, line, funcname, err.Error()) } diff --git a/topology/server/utils/error.go b/topology/server/utils/error.go index 249aeb44d7bb0c2976cedadbd88fc0df0ec55bd3..9d43ae52f270b29261ba8c44076cab2343f24b41 100644 --- a/topology/server/utils/error.go +++ b/topology/server/utils/error.go @@ -2,12 +2,12 @@ package utils import "runtime" -func CallerInfo(err error) (string, int, string) { - if err != nil { - pro_c, filepath, line, ok := runtime.Caller(1) - if ok { - return filepath, line - 2, runtime.FuncForPC(pro_c).Name() - } +func CallerInfo() (string, int, string) { + // if err != nil { + pro_c, filepath, line, ok := runtime.Caller(1) + if ok { + return filepath, line - 2, runtime.FuncForPC(pro_c).Name() } + // } return "", -1, "" }