diff --git a/cmd/server/app/agentmanager/cmd.go b/cmd/server/app/agentmanager/cmd.go index ff904fb9f366bb656c07ad7946b43589e5dbc0b9..a12ff7dc56f0458044bab7f0c8c6536078991a84 100644 --- a/cmd/server/app/agentmanager/cmd.go +++ b/cmd/server/app/agentmanager/cmd.go @@ -8,8 +8,6 @@ package agentmanager import ( - "fmt" - "gitee.com/openeuler/PilotGo/pkg/utils" "gitee.com/openeuler/PilotGo/pkg/utils/message/protocol" ) @@ -21,8 +19,8 @@ func (a *Agent) RunCommand(cmd string) (*utils.CmdResult, error) { }{ Command: cmd, } - responseMessage, _ := a.SendMessageWrapper(protocol.RunCommand, data, "failed to run command on agent", 0, nil, "") - return nil, fmt.Errorf("agent returned error: %s", responseMessage.(*protocol.Message).Error) + responseMessage, err := a.SendMessageWrapper(protocol.RunCommand, data, "failed to run command on agent", 0, nil, "") + return responseMessage.(*utils.CmdResult), err } // 远程在agent上运行脚本文件 @@ -34,8 +32,8 @@ func (a *Agent) RunScript(script string, params []string) (*utils.CmdResult, err Script: script, Params: params, } - responseMessage, _ := a.SendMessageWrapper(protocol.RunScript, data, "failed to run script on agent", 0, nil, "") - return nil, fmt.Errorf("agent returned error: %s", responseMessage.(*protocol.Message).Error) + responseMessage, err := a.SendMessageWrapper(protocol.RunScript, data, "failed to run script on agent", 0, nil, "") + return responseMessage.(*utils.CmdResult), err } // chmod [-R] 权限值 文件名 diff --git a/cmd/server/app/network/controller/pluginWebsocketProxy.go b/cmd/server/app/network/controller/pluginWebsocketProxy.go index f50729ac77296c0f237006e59b4fa418b6bc144e..9b4c2e4296ef480c04bde97e429c72d3f671424c 100644 --- a/cmd/server/app/network/controller/pluginWebsocketProxy.go +++ b/cmd/server/app/network/controller/pluginWebsocketProxy.go @@ -139,7 +139,7 @@ func PluginWebsocketGatewayHandler(c *gin.Context) { go transferMessages(target_wsconn, client_wsconn, errChan, &wg, doneChan) err = <-errChan - logger.Error(err.Error()) + logger.Error("%s", err.Error()) wserr := err.(*WebsocketError) switch wserr.Code { case WebsocketProxyReadError: diff --git a/cmd/server/app/network/controller/pushalarm.go b/cmd/server/app/network/controller/pushalarm.go index 6c623d170a70982537d8b2dddf71b4c883c41e56..d387ac5dedc9f548485dfc569037b3aa5b85f0c4 100644 --- a/cmd/server/app/network/controller/pushalarm.go +++ b/cmd/server/app/network/controller/pushalarm.go @@ -18,7 +18,7 @@ import ( func PushAlarmHandler(c *gin.Context) { conn, err := websocket.Upgrader.Upgrade(c.Writer, c.Request, nil) if err != nil { - logger.Error(err.Error()) + logger.Error("%s", err.Error()) return } logger.Debug("webSocket 建立连接: %s", conn.RemoteAddr().String()) diff --git a/cmd/server/app/network/controller/user.go b/cmd/server/app/network/controller/user.go index b949b647e1cfd969a69815652ec64863a55214a9..3c336e2ea2df8a1425ac74b793827fa9c776504b 100644 --- a/cmd/server/app/network/controller/user.go +++ b/cmd/server/app/network/controller/user.go @@ -380,7 +380,7 @@ func DeleteUserHandler(c *gin.Context) { status := auditlog.BatchActionStatus(statuscodes) if err := auditlog.UpdateStatus(log, status); err != nil { - logger.Error(err.Error()) + logger.Error("%s", err.Error()) } switch strings.Split(status, ",")[2] { diff --git a/cmd/server/app/network/controller/web_terminal.go b/cmd/server/app/network/controller/webTerminal.go similarity index 98% rename from cmd/server/app/network/controller/web_terminal.go rename to cmd/server/app/network/controller/webTerminal.go index 17af58dfac59ffa630d8ef862292bddfa796845a..899f767dc394977ae40030be91ce7ac58d41fd9a 100644 --- a/cmd/server/app/network/controller/web_terminal.go +++ b/cmd/server/app/network/controller/webTerminal.go @@ -19,7 +19,7 @@ import ( ) // 终端连接功能删除 -func WS(c *gin.Context) { +func WebTerminal(c *gin.Context) { // 升级协议并获得socket连接 conn, err := Websocket.Upgrader.Upgrade(c.Writer, c.Request, nil) if err != nil { diff --git a/cmd/server/app/network/httpserver.go b/cmd/server/app/network/httpserver.go index ac763ebfadccc847a99bc25118ee2544ad926eb0..aed78d46268af79242b547a047aa37e066c1464b 100644 --- a/cmd/server/app/network/httpserver.go +++ b/cmd/server/app/network/httpserver.go @@ -126,7 +126,6 @@ func SetupRouter() *gin.Engine { } func registerAPIs(router *gin.Engine) { - router.GET("/ws", controller.WS) router.GET("/event", controller.PushAlarmHandler) api := router.Group("/api/v1") @@ -139,6 +138,8 @@ func registerAPIs(router *gin.Engine) { noTokenApi.GET("/user/logout", controller.Logout) noTokenApi.GET("/download/:filename", controller.Download) + + noTokenApi.GET("/webterminal", controller.WebTerminal) } authenApi := api.Group("") // 按钮权限,是否显示 diff --git a/cmd/server/app/service/auth/casbin.go b/cmd/server/app/service/auth/casbin.go index 0b696f07720e95d2b30c74f163090aff9fd15062..9d813bf1ec227c834b7115bdd2ccfe46c18e0a6c 100644 --- a/cmd/server/app/service/auth/casbin.go +++ b/cmd/server/app/service/auth/casbin.go @@ -10,7 +10,6 @@ package auth import ( "errors" "fmt" - "sync" "gitee.com/openeuler/PilotGo/cmd/server/app/cmd/options" suser "gitee.com/openeuler/PilotGo/cmd/server/app/service/user" @@ -30,10 +29,6 @@ type CasbinRule struct { Method string `json:"method"` } -var ( - once sync.Once -) - const ( DomainPilotGo = "PilotGo-server" ) @@ -123,6 +118,7 @@ var ( "rolemanager", "audit", "plugin", + "terminal", } ) diff --git a/cmd/server/app/service/plugin/event.go b/cmd/server/app/service/plugin/event.go index d10f550337b702f965ad80db95e30bf92c5875a1..b34e00c395c2dc5d95e93b0e6c587180c1060f17 100644 --- a/cmd/server/app/service/plugin/event.go +++ b/cmd/server/app/service/plugin/event.go @@ -74,7 +74,7 @@ func isPluginEventConnected() (string, bool) { } } - if eventServer == "" || connected == false { + if eventServer == "" || !connected { return "", false } return eventServer, connected diff --git a/cmd/server/app/service/plugin/plugin.go b/cmd/server/app/service/plugin/plugin.go index 3f74dd4290ec66524ccfcccf46826b59ee305ea2..72dc3de664271424fc2799365c975bab2b7ad11c 100644 --- a/cmd/server/app/service/plugin/plugin.go +++ b/cmd/server/app/service/plugin/plugin.go @@ -59,6 +59,7 @@ type Plugin struct { Author string `json:"author"` Email string `json:"email"` Url string `json:"url"` + Icon string `json:"icon"` PluginType string `json:"plugin_type"` ConnectStatus bool `json:"status"` LastHeartbeatTime string `json:"lastheatbeat"` @@ -77,6 +78,7 @@ func (p *Plugin) Clone() *Plugin { Author: p.Author, Email: p.Email, Url: p.Url, + Icon: p.Icon, PluginType: p.PluginType, Enabled: p.Enabled, Permissions: p.Permissions, @@ -165,6 +167,7 @@ func (m *PluginManager) updatePlugin(uuid string, pp *PluginParam, enabled int) Author: info.Author, Email: info.Email, Url: pp.Url, + Icon: info.Icon, PluginType: info.PluginType, Enabled: enabled, Extentions: info.Extentions, @@ -445,6 +448,7 @@ func requestPluginInfo(plugin *PluginParam) (*Plugin, error) { Author: PluginInfo.Author, Email: PluginInfo.Email, Url: url, + Icon: PluginInfo.Icon, PluginType: PluginInfo.PluginType, Extentions: extentions, Permissions: permissions.Permissions, diff --git a/cmd/server/app/service/user/user.go b/cmd/server/app/service/user/user.go index 0998eb2d8333bad6d9f6695bb3645b7c77669ba3..069c176ad27910f926682b7072f1748faeb2bd56 100644 --- a/cmd/server/app/service/user/user.go +++ b/cmd/server/app/service/user/user.go @@ -175,7 +175,7 @@ func UserSearchPaged(email string, offset, size int) (int64, []ReturnUser, error for _, user := range users { depart, err := dao.GetDepartById(user.DepartId) if err != nil { - logger.Error(errors.New("不存在此部门").Error()) + logger.Error("%s", errors.New("不存在此部门").Error()) } userinfo := ReturnUser{ ID: user.ID, @@ -187,11 +187,11 @@ func UserSearchPaged(email string, offset, size int) (int64, []ReturnUser, error } roleids, err := dao.GetRolesByUid(user.ID) if err != nil { - logger.Error(err.Error()) + logger.Error("%s", err.Error()) } userinfo.Roles, err = dao.GetNamesByRoleIds(roleids) if err != nil { - logger.Error(err.Error()) + logger.Error("%s", err.Error()) } returnUsers = append(returnUsers, userinfo) } @@ -232,7 +232,7 @@ func GetUserByEmail(email string) (*ReturnUser, error) { } depart, err := dao.GetDepartById(user.DepartId) if err != nil { - logger.Error(errors.New("不存在此部门").Error()) + logger.Error("%s", errors.New("不存在此部门").Error()) } userinfo := &ReturnUser{ ID: user.ID, @@ -266,7 +266,7 @@ func GetUserPaged(offset, size int) (int64, []ReturnUser, error) { for _, user := range users { depart, err := dao.GetDepartById(user.DepartId) if err != nil { - logger.Error(errors.New("不存在此部门").Error()) + logger.Error("%s", errors.New("不存在此部门").Error()) } userinfo := ReturnUser{ ID: user.ID, @@ -278,11 +278,11 @@ func GetUserPaged(offset, size int) (int64, []ReturnUser, error) { } roleids, err := dao.GetRolesByUid(user.ID) if err != nil { - logger.Error(err.Error()) + logger.Error("%s", err.Error()) } userinfo.Roles, err = dao.GetNamesByRoleIds(roleids) if err != nil { - logger.Error(err.Error()) + logger.Error("%s", err.Error()) } returnUsers = append(returnUsers, userinfo) } @@ -304,7 +304,7 @@ func ReadFile(xlFile *xlsx.File, UserExit []string) ([]string, error) { EmailBool, err := dao.IsEmailExist(email) if err != nil { UserExit = append(UserExit, email+"邮箱错误"+err.Error()) - logger.Error("邮箱错误" + err.Error()) + logger.Error("%s", "邮箱错误"+err.Error()) continue } if EmailBool { @@ -315,14 +315,14 @@ func ReadFile(xlFile *xlsx.File, UserExit []string) ([]string, error) { _, id, err := dao.GetPidAndId(departName) // 部门对应的PId和Id if err != nil { UserExit = append(UserExit, email+"部门错误"+err.Error()) - logger.Error("部门错误" + err.Error()) + logger.Error("%s", "部门错误"+err.Error()) continue } userRole := row.Cells[4].Value // 5:角色 roleId, err := dao.GetRoleId(userRole) //角色对应id和用户类型 if err != nil { UserExit = append(UserExit, email+"角色错误"+err.Error()) - logger.Error("角色错误" + err.Error()) + logger.Error("%s", "角色错误"+err.Error()) continue } password := strings.Split(email, "@")[0] @@ -337,7 +337,7 @@ func ReadFile(xlFile *xlsx.File, UserExit []string) ([]string, error) { err = dao.AddUser(u) if err != nil { UserExit = append(UserExit, email+"添加用户错误"+err.Error()) - logger.Error("添加用户错误" + err.Error()) + logger.Error("%s", "添加用户错误"+err.Error()) continue } ur := &dao.UserRole{ @@ -347,7 +347,7 @@ func ReadFile(xlFile *xlsx.File, UserExit []string) ([]string, error) { err = ur.Add() if err != nil { UserExit = append(UserExit, email+"添加角色关系错误"+err.Error()) - logger.Error("添加角色关系错误" + err.Error()) + logger.Error("%s", "添加角色关系错误"+err.Error()) continue } } diff --git a/scripts/service/PilotGo-agent.service b/scripts/service/PilotGo-agent.service index 416e25bdd52a2f205a8a5b0a95e22615f5e96f12..21028b45ec38b6e01ee87dd92510a2c9563fbdae 100644 --- a/scripts/service/PilotGo-agent.service +++ b/scripts/service/PilotGo-agent.service @@ -5,8 +5,11 @@ After=network-online.target [Service] Type=simple -Restart=always -RestartSec=3s +Restart=on-failure +RestartSec=5s +StartLimitInterval=30s +StartLimitBurst=3 + WorkingDirectory=/opt/PilotGo/agent ExecStart=/opt/PilotGo/agent/PilotGo-agent diff --git a/scripts/service/PilotGo-server.service b/scripts/service/PilotGo-server.service index 64070293904c8e4f57cf72c353d13585f1425b42..b219ec43e3baa3c862037d055004533076013a52 100644 --- a/scripts/service/PilotGo-server.service +++ b/scripts/service/PilotGo-server.service @@ -5,8 +5,11 @@ After=network-online.target [Service] Type=simple -Restart=always -RestartSec=3s +Restart=on-failure +RestartSec=5s +StartLimitInterval=30s +StartLimitBurst=3 + WorkingDirectory=/opt/PilotGo/server ExecStart=/opt/PilotGo/server/PilotGo-server diff --git a/sdk/plugin/client/plugin.go b/sdk/plugin/client/plugin.go index 299ab8f1b4a9efe4249644d8019c5cd3b3e68359..bd0f7ff300e9d5565146458fd2cd06ebebc1505d 100644 --- a/sdk/plugin/client/plugin.go +++ b/sdk/plugin/client/plugin.go @@ -23,6 +23,7 @@ type PluginInfo struct { Author string `json:"author"` Email string `json:"email"` Url string `json:"url"` + Icon string `json:"icon"` PluginType string `json:"plugin_type"` ReverseDest string `json:"reverse_dest"` }