From fd480eadbb146ace850b80459d4cab3f3f042e62 Mon Sep 17 00:00:00 2001 From: zhanghan Date: Mon, 25 Nov 2024 16:52:07 +0800 Subject: [PATCH] adjust the code structure;event message notice for add plugin --- cmd/server/app/network/controller/plugin.go | 29 +++++++++++++++++-- cmd/server/app/network/controller/user.go | 6 ++-- .../app/service/{event => plugin}/event.go | 5 ++-- cmd/server/app/service/plugin/plugin.go | 12 ++++---- 4 files changed, 37 insertions(+), 15 deletions(-) rename cmd/server/app/service/{event => plugin}/event.go (92%) diff --git a/cmd/server/app/network/controller/plugin.go b/cmd/server/app/network/controller/plugin.go index 6d5c26a4..9de093aa 100644 --- a/cmd/server/app/network/controller/plugin.go +++ b/cmd/server/app/network/controller/plugin.go @@ -12,7 +12,6 @@ import ( "gitee.com/openeuler/PilotGo/cmd/server/app/network/jwt" "gitee.com/openeuler/PilotGo/cmd/server/app/service/auditlog" "gitee.com/openeuler/PilotGo/cmd/server/app/service/common" - "gitee.com/openeuler/PilotGo/cmd/server/app/service/event" "gitee.com/openeuler/PilotGo/cmd/server/app/service/plugin" commonSDK "gitee.com/openeuler/PilotGo/sdk/common" "gitee.com/openeuler/PilotGo/sdk/logger" @@ -75,11 +74,35 @@ func AddPluginHandler(c *gin.Context) { } auditlog.Add(log) - if err := plugin.AddPlugin(¶m); err != nil { + p, err := plugin.AddPlugin(¶m) + if err != nil { auditlog.UpdateStatus(log, auditlog.StatusFailed) response.Fail(c, nil, "add plugin failed:"+err.Error()) return } + + msgData := commonSDK.MessageData{ + MsgType: eventSDK.MsgPluginRemove, + MessageType: eventSDK.GetMessageTypeString(eventSDK.MsgPluginRemove), + TimeStamp: time.Now(), + Data: eventSDK.MDPluginChange{ + PluginName: p.Name, + Version: p.Version, + Url: p.Url, + Description: p.Description, + }, + } + msgDataString, err := msgData.ToMessageDataString() + if err != nil { + response.Fail(c, nil, err.Error()) + return + } + ms := commonSDK.EventMessage{ + MessageType: eventSDK.MsgUserLogin, + MessageData: msgDataString, + } + plugin.PublishEvent(ms) + response.Success(c, nil, "插件添加成功") } @@ -173,7 +196,7 @@ func UnloadPluginHandler(c *gin.Context) { MessageType: eventSDK.MsgUserLogin, MessageData: msgDataString, } - event.PublishEvent(ms) + plugin.PublishEvent(ms) logger.Info("unload plugin:%s", uuid) if err := plugin.DeletePlugin(uuid, p); err != nil { diff --git a/cmd/server/app/network/controller/user.go b/cmd/server/app/network/controller/user.go index ed3a78c5..0efa42ca 100644 --- a/cmd/server/app/network/controller/user.go +++ b/cmd/server/app/network/controller/user.go @@ -24,7 +24,7 @@ import ( "gitee.com/openeuler/PilotGo/cmd/server/app/network/jwt" "gitee.com/openeuler/PilotGo/cmd/server/app/service/auditlog" "gitee.com/openeuler/PilotGo/cmd/server/app/service/common" - "gitee.com/openeuler/PilotGo/cmd/server/app/service/event" + "gitee.com/openeuler/PilotGo/cmd/server/app/service/plugin" "gitee.com/openeuler/PilotGo/cmd/server/app/service/role" userservice "gitee.com/openeuler/PilotGo/cmd/server/app/service/user" "gitee.com/openeuler/PilotGo/pkg/utils/message/net" @@ -117,7 +117,7 @@ func LoginHandler(c *gin.Context) { MessageType: eventSDK.MsgUserLogin, MessageData: msgDataString, } - event.PublishEvent(ms) + plugin.PublishEvent(ms) departName, departId, roleId, err := userservice.Login(&user) if err != nil { @@ -170,7 +170,7 @@ func Logout(c *gin.Context) { MessageType: eventSDK.MsgUserLogin, MessageData: msgDataString, } - event.PublishEvent(ms) + plugin.PublishEvent(ms) response.Success(c, nil, "退出成功!") } diff --git a/cmd/server/app/service/event/event.go b/cmd/server/app/service/plugin/event.go similarity index 92% rename from cmd/server/app/service/event/event.go rename to cmd/server/app/service/plugin/event.go index 94b68680..ca9d0e69 100644 --- a/cmd/server/app/service/event/event.go +++ b/cmd/server/app/service/plugin/event.go @@ -1,4 +1,4 @@ -package event +package plugin import ( "encoding/json" @@ -6,7 +6,6 @@ import ( "net/http" "strconv" - "gitee.com/openeuler/PilotGo/cmd/server/app/service/plugin" "gitee.com/openeuler/PilotGo/sdk/common" "gitee.com/openeuler/PilotGo/sdk/utils/httputils" ) @@ -55,7 +54,7 @@ func isPluginEventConnected() (string, bool) { var eventServer string var connected bool - plugins, err := plugin.GetPlugins() + plugins, err := GetPlugins() if err != nil { return "", false } diff --git a/cmd/server/app/service/plugin/plugin.go b/cmd/server/app/service/plugin/plugin.go index 341788f2..3e556666 100644 --- a/cmd/server/app/service/plugin/plugin.go +++ b/cmd/server/app/service/plugin/plugin.go @@ -515,31 +515,31 @@ type PluginParam struct { Url string `json:"url"` } -func AddPlugin(param *PluginParam) error { +func AddPlugin(param *PluginParam) (*Plugin, error) { url := param.Url logger.Debug("add plugin from %s", url) ok, err := dao.IsExistCustomName(param.CustomName) if err != nil { - return err + return &Plugin{}, err } if ok { - return errors.New("已存在相同插件名称") + return &Plugin{}, errors.New("已存在相同插件名称") } p, err := globalPluginManager.addPlugin(param) if err != nil { - return err + return p, err } if err := addPluginInRedis(p.UUID); err != nil { logger.Error("failed to add plugin heartbeat in redis:%s", err.Error()) - return err + return p, err } //向数据库添加admin用户的插件权限 err = auth.AddPluginPermission("admin", p.Permissions, p.UUID) - return err + return p, err } func DeletePlugin(uuid string, plugin *Plugin) error { -- Gitee