From fc77781b7a90217a0619037ae32d70d659c7b434 Mon Sep 17 00:00:00 2001 From: zhanghan Date: Thu, 19 Dec 2024 18:12:26 +0800 Subject: [PATCH] fix get network info failed and get rpm info; adjust the router --- cmd/server/app/agentmanager/agent.go | 6 +- cmd/server/app/agentmanager/cmd.go | 10 +- cmd/server/app/agentmanager/file.go | 8 +- cmd/server/app/agentmanager/firewall.go | 22 +- cmd/server/app/agentmanager/host.go | 10 +- cmd/server/app/agentmanager/network.go | 8 +- cmd/server/app/agentmanager/rpm.go | 8 +- cmd/server/app/agentmanager/service.go | 6 +- cmd/server/app/agentmanager/user.go | 4 +- cmd/server/app/cmd/commands/server.go | 18 +- cmd/server/app/config/config.go | 58 ---- cmd/server/app/docs/docs.go | 8 + .../controller/agentcontroller/agent.go | 1 - .../controller/agentcontroller/file.go | 21 -- cmd/server/app/network/controller/config.go | 137 ---------- cmd/server/app/network/controller/machine.go | 18 -- cmd/server/app/network/controller/user.go | 4 +- cmd/server/app/network/httpserver.go | 254 +++++++++--------- .../app/service/machine/machinemanager.go | 5 - cmd/server/main.go | 2 +- 20 files changed, 186 insertions(+), 422 deletions(-) delete mode 100644 cmd/server/app/network/controller/config.go diff --git a/cmd/server/app/agentmanager/agent.go b/cmd/server/app/agentmanager/agent.go index 8504c1a0..8ec011ff 100644 --- a/cmd/server/app/agentmanager/agent.go +++ b/cmd/server/app/agentmanager/agent.go @@ -232,19 +232,19 @@ func (a *Agent) SendMessageWrapper(protocolType int, msgData interface{}, errorM // 心跳 func (a *Agent) HeartBeat() (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.Heartbeat, "connection is normal", "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), err + return responseMessage.(*protocol.Message).Data.(string), err } // 开启定时任务 func (a *Agent) CronStart(id int, spec string, command string) (string, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.CronStart, strconv.Itoa(id)+","+spec+","+command, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(string), responseMessage.(*protocol.Message).Error, err } // 暂停定时任务 func (a *Agent) CronStopAndDel(id int) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.CronStopAndDel, strconv.Itoa(id), "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), err + return responseMessage.(*protocol.Message).Data.(string), err } // 监控配置文件 diff --git a/cmd/server/app/agentmanager/cmd.go b/cmd/server/app/agentmanager/cmd.go index 69d9e031..ff904fb9 100644 --- a/cmd/server/app/agentmanager/cmd.go +++ b/cmd/server/app/agentmanager/cmd.go @@ -22,7 +22,7 @@ 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) + return nil, fmt.Errorf("agent returned error: %s", responseMessage.(*protocol.Message).Error) } // 远程在agent上运行脚本文件 @@ -35,23 +35,23 @@ func (a *Agent) RunScript(script string, params []string) (*utils.CmdResult, err 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) + return nil, fmt.Errorf("agent returned error: %s", responseMessage.(*protocol.Message).Error) } // chmod [-R] 权限值 文件名 func (a *Agent) ChangePermission(permission, file string) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.ChangePermission, permission+","+file, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), err + return responseMessage.(*protocol.Message).Data.(string), err } // chown [-R] 所有者 文件或目录 func (a *Agent) ChangeFileOwner(user, file string) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.ChangeFileOwner, user+","+file, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), err + return responseMessage.(*protocol.Message).Data.(string), err } // 临时修改agent端系统参数 func (a *Agent) ChangeSysctl(args string) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.SysctlChange, args, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), err + return responseMessage.(*protocol.Message).Data.(string), err } diff --git a/cmd/server/app/agentmanager/file.go b/cmd/server/app/agentmanager/file.go index dac361aa..e3e1a79b 100644 --- a/cmd/server/app/agentmanager/file.go +++ b/cmd/server/app/agentmanager/file.go @@ -23,7 +23,7 @@ func (a *Agent) ReadFilePattern(filepath, pattern string) ([]sdkcommon.File, str data, ok := responseMessage.(protocol.Message).Data.([]interface{}) if !ok { logger.Error("failed to get msg data on agent: %s", responseMessage.(protocol.Message).Error) - return nil, responseMessage.(protocol.Message).Error, errors.New("failed to get msg data") + return nil, responseMessage.(*protocol.Message).Error, errors.New("failed to get msg data") } var files []sdkcommon.File @@ -39,7 +39,7 @@ func (a *Agent) ReadFilePattern(filepath, pattern string) ([]sdkcommon.File, str logger.Error("failed to get file from data") } } - return files, responseMessage.(protocol.Message).Error, err + return files, responseMessage.(*protocol.Message).Error, err } // 更新配置文件 @@ -51,7 +51,7 @@ func (a *Agent) UpdateFile(filepath string, filename string, text string) (*comm } info := &common.UpdateFile{} responseMessage, err := a.SendMessageWrapper(protocol.EditFile, updatefile, "failed to run script on agent", -1, info, "UpdateFile") - return info, responseMessage.(protocol.Message).Error, err + return info, responseMessage.(*protocol.Message).Error, err } // 存储配置文件 @@ -63,5 +63,5 @@ func (a *Agent) SaveFile(filepath string, filename string, text string) (*common } info := &common.UpdateFile{} responseMessage, err := a.SendMessageWrapper(protocol.SaveFile, updatefile, "failed to run script on agent", -1, info, "UpdateFile") - return info, responseMessage.(protocol.Message).Error, err + return info, responseMessage.(*protocol.Message).Error, err } diff --git a/cmd/server/app/agentmanager/firewall.go b/cmd/server/app/agentmanager/firewall.go index 04782729..3776675b 100644 --- a/cmd/server/app/agentmanager/firewall.go +++ b/cmd/server/app/agentmanager/firewall.go @@ -16,66 +16,66 @@ import ( func (a *Agent) FirewalldConfig() (*common.FireWalldConfig, string, error) { info := &common.FireWalldConfig{} responseMessage, err := a.SendMessageWrapper(protocol.FirewalldConfig, struct{}{}, "failed to run script on agent", -1, info, "FirewalldConfig") - return info, responseMessage.(protocol.Message).Error, err + return info, responseMessage.(*protocol.Message).Error, err } // 更改防火墙默认区域 func (a *Agent) FirewalldSetDefaultZone(zone string) (string, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.FirewalldDefaultZone, zone, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(string), responseMessage.(*protocol.Message).Error, err } // 查看防火墙指定区域配置 func (a *Agent) FirewalldZoneConfig(zone string) (*common.FirewalldCMDList, string, error) { info := &common.FirewalldCMDList{} responseMessage, err := a.SendMessageWrapper(protocol.FirewalldZoneConfig, zone, "failed to run script on agent", -1, info, "FirewalldConfig") - return info, responseMessage.(protocol.Message).Error, err + return info, responseMessage.(*protocol.Message).Error, err } // 添加防火墙服务 func (a *Agent) FirewalldServiceAdd(zone, service string) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.FirewalldServiceAdd, zone+","+service, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Error, err } // 移除防火墙服务 func (a *Agent) FirewalldServiceRemove(zone, service string) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.FirewalldServiceRemove, zone+","+service, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Error, err } // 防火墙添加允许来源地址 func (a *Agent) FirewalldSourceAdd(zone, source string) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.FirewalldSourceAdd, zone+","+source, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Error, err } // 防火墙移除允许来源地址 func (a *Agent) FirewalldSourceRemove(zone, source string) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.FirewalldSourceRemove, zone+","+source, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Error, err } // 重启防火墙 func (a *Agent) FirewalldRestart() (bool, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.FirewalldRestart, struct{}{}, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(bool), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(bool), responseMessage.(*protocol.Message).Error, err } // 关闭防火墙 func (a *Agent) FirewalldStop() (bool, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.FirewalldStop, struct{}{}, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(bool), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(bool), responseMessage.(*protocol.Message).Error, err } // 防火墙指定区域添加端口 func (a *Agent) FirewalldZonePortAdd(zone, port, proto string) (string, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.FirewalldZonePortAdd, zone+","+port+","+proto, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(string), responseMessage.(*protocol.Message).Error, err } // 防火墙指定区域删除端口 func (a *Agent) FirewalldZonePortDel(zone, port, proto string) (string, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.FirewalldZonePortDel, zone+","+port+","+proto, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(string), responseMessage.(*protocol.Message).Error, err } diff --git a/cmd/server/app/agentmanager/host.go b/cmd/server/app/agentmanager/host.go index 9b8d9d7b..270695f6 100644 --- a/cmd/server/app/agentmanager/host.go +++ b/cmd/server/app/agentmanager/host.go @@ -64,7 +64,7 @@ func (a *Agent) GetSysctlInfo() (*map[string]string, error) { // 查看某个内核参数的值 func (a *Agent) SysctlView(args string) (string, error) { responseMessage, _ := a.SendMessageWrapper(protocol.SysctlView, args, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), nil + return responseMessage.(*protocol.Message).Data.(string), nil } // 获取磁盘的使用情况 @@ -88,17 +88,17 @@ func (a *Agent) DiskInfo() (*common.DiskIOInfo, error) { */ func (a *Agent) DiskMount(sourceDisk, destPath string) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.DiskMount, sourceDisk+","+destPath, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), err + return responseMessage.(*protocol.Message).Data.(string), err } func (a *Agent) DiskUMount(diskPath string) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.DiskUMount, diskPath, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), err + return responseMessage.(*protocol.Message).Data.(string), err } func (a *Agent) DiskFormat(fileType, diskPath string) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.DiskFormat, fileType+","+diskPath, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), err + return responseMessage.(*protocol.Message).Data.(string), err } // 获取当前TCP网络连接信息 @@ -146,5 +146,5 @@ func (a *Agent) GetRepoSource() ([]*common.RepoSource, error) { // 远程获取agent端的时间信息 func (a *Agent) GetTimeInfo() (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.AgentTime, struct{}{}, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), err + return responseMessage.(*protocol.Message).Data.(string), err } diff --git a/cmd/server/app/agentmanager/network.go b/cmd/server/app/agentmanager/network.go index c7f1f59d..d958a4fa 100644 --- a/cmd/server/app/agentmanager/network.go +++ b/cmd/server/app/agentmanager/network.go @@ -16,24 +16,24 @@ import ( func (a *Agent) GetNetWorkConnectInfo() (*map[string]string, string, error) { info := &map[string]string{} responseMessage, err := a.SendMessageWrapper(protocol.GetNetWorkConnectInfo, struct{}{}, "failed to run script on agent", -1, info, "GetNetWorkConnectInfo") - return info, responseMessage.(protocol.Message).Error, err + return info, responseMessage.(*protocol.Message).Error, err } // 获取agent的基础网络配置 func (a *Agent) GetNetWorkConnInfo() (*common.NetworkConfig, string, error) { info := &common.NetworkConfig{} responseMessage, err := a.SendMessageWrapper(protocol.GetNetWorkConnInfo, struct{}{}, "failed to run script on agent", -1, info, "GetNetWorkConnInfo") - return info, responseMessage.(protocol.Message).Error, err + return info, responseMessage.(*protocol.Message).Error, err } // 获取网卡名字 func (a *Agent) GetNICName() (string, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.GetNICName, struct{}{}, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(string), responseMessage.(*protocol.Message).Error, err } // 重启网卡配置 func (a *Agent) RestartNetWork(NIC string) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.RestartNetWork, NIC, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Error, err } diff --git a/cmd/server/app/agentmanager/rpm.go b/cmd/server/app/agentmanager/rpm.go index 9f0d1781..a421a271 100644 --- a/cmd/server/app/agentmanager/rpm.go +++ b/cmd/server/app/agentmanager/rpm.go @@ -18,7 +18,7 @@ import ( func (a *Agent) AllRpm() ([]string, error) { responseMessage, err := a.SendMessageWrapper(protocol.AllRpm, struct{}{}, "failed to run script on agent", -1, nil, "") - if v, ok := responseMessage.(protocol.Message).Data.([]interface{}); ok { + if v, ok := responseMessage.(*protocol.Message).Data.([]interface{}); ok { result := make([]string, len(v)) for i, item := range v { if str, ok := item.(string); ok { @@ -41,17 +41,17 @@ func (a *Agent) RpmSource(rpm string) (*common.RpmSrc, error) { func (a *Agent) RpmInfo(rpm string) (*common.RpmInfo, string, error) { info := &common.RpmInfo{} responseMessage, err := a.SendMessageWrapper(protocol.RpmInfo, rpm, "failed to run script on agent", -1, info, "RpmInfo") - return info, responseMessage.(protocol.Message).Error, err + return info, responseMessage.(*protocol.Message).Error, err } // 安装软件包 func (a *Agent) InstallRpm(rpm string) (string, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.InstallRpm, rpm, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(string), responseMessage.(*protocol.Message).Error, err } // 卸载软件包 func (a *Agent) RemoveRpm(rpm string) (string, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.RemoveRpm, rpm, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(string), responseMessage.(*protocol.Message).Error, err } diff --git a/cmd/server/app/agentmanager/service.go b/cmd/server/app/agentmanager/service.go index 3da5cf12..21b51c0c 100644 --- a/cmd/server/app/agentmanager/service.go +++ b/cmd/server/app/agentmanager/service.go @@ -29,17 +29,17 @@ func (a *Agent) GetService(service string) (*common.ServiceInfo, error) { // 重启服务 func (a *Agent) ServiceRestart(service string) (string, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.ServiceRestart, service, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(string), responseMessage.(*protocol.Message).Error, err } // 关闭服务 func (a *Agent) ServiceStop(service string) (string, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.ServiceStop, service, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(string), responseMessage.(*protocol.Message).Error, err } // 启动服务 func (a *Agent) ServiceStart(service string) (string, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.ServiceStart, service, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(string), responseMessage.(*protocol.Message).Error, err } diff --git a/cmd/server/app/agentmanager/user.go b/cmd/server/app/agentmanager/user.go index 3e6061ff..2399358b 100644 --- a/cmd/server/app/agentmanager/user.go +++ b/cmd/server/app/agentmanager/user.go @@ -29,11 +29,11 @@ func (a *Agent) AllUser() ([]*common.AllUserInfo, error) { // 创建新的用户,并新建家目录 func (a *Agent) AddLinuxUser(username, password string) (string, error) { responseMessage, err := a.SendMessageWrapper(protocol.AddLinuxUser, username+","+password, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), err + return responseMessage.(*protocol.Message).Data.(string), err } // 删除用户 func (a *Agent) DelUser(username string) (string, string, error) { responseMessage, err := a.SendMessageWrapper(protocol.DelUser, username, "failed to run script on agent", -1, nil, "") - return responseMessage.(protocol.Message).Data.(string), responseMessage.(protocol.Message).Error, err + return responseMessage.(*protocol.Message).Data.(string), responseMessage.(*protocol.Message).Error, err } diff --git a/cmd/server/app/cmd/commands/server.go b/cmd/server/app/cmd/commands/server.go index facd2705..f06f4356 100644 --- a/cmd/server/app/cmd/commands/server.go +++ b/cmd/server/app/cmd/commands/server.go @@ -87,7 +87,7 @@ func run(opts *options.ServerOptions, ctx context.Context, _ *cobra.Command) err } logger.Info("Thanks to choose PilotGo!") - // redis db初始化 + // redis db initialize if err := dbmanager.RedisdbInit(config.RedisDBinfo, ctx.Done()); err != nil { if err == context.Canceled { return nil @@ -96,45 +96,45 @@ func run(opts *options.ServerOptions, ctx context.Context, _ *cobra.Command) err return err } - // mysql db初始化 + // mysql db initialize if err := dbmanager.MysqldbInit(config.MysqlDBinfo); err != nil { logger.Error("mysql db init failed, please check again: %s", err) return err } - // 启动agent socket server + // start agent socket server if err := network.SocketServerInit(config.SocketServer, ctx.Done()); err != nil { logger.Error("socket server init failed, error:%v", err) return err } - //此处启动前端及REST http server + //start http server,and bind the plugin api、static file err := network.HttpServerInit(config.HttpServer, ctx.Done()) if err != nil { logger.Error("HttpServerInit socket server init failed, error:%v", err) return err } - // 启动所有功能模块服务 + // start other services if err := startServices(config.MysqlDBinfo, ctx.Done()); err != nil { logger.Error("start services error: %s", err) return err } - // 前端推送告警 + // the platform push errors or warns to web go websocket.SendWarnMsgToWeb(ctx.Done()) logger.Info("start to serve") atomic.AddInt64(&conut, -1) - // 信号监听 redis + return nil } func startServices(mysqlInfo *options.MysqlDBInfo, stopCh <-chan struct{}) error { - // 鉴权模块初始化 + // verify permission initialize auth.Casbin(mysqlInfo) - // 初始化plugin服务 + // plugin server initialize plugin.Init(stopCh) return nil diff --git a/cmd/server/app/config/config.go b/cmd/server/app/config/config.go index 47ae750d..2d8fb7f5 100644 --- a/cmd/server/app/config/config.go +++ b/cmd/server/app/config/config.go @@ -9,62 +9,4 @@ package config import "gitee.com/openeuler/PilotGo/cmd/server/app/cmd/options" -// type HttpServer struct { -// Addr string `yaml:"addr"` -// SessionCount int `yaml:"session_count"` -// SessionMaxAge int `yaml:"session_max_age"` -// Debug bool `yaml:"debug"` -// UseHttps bool `yaml:"use_https"` -// CertFile string `yaml:"cert_file"` -// KeyFile string `yaml:"key_file"` -// } - -// type SocketServer struct { -// Addr string `yaml:"addr"` -// } - -// type JWTConfig struct { -// SecretKey string `yaml:"secret_key"` -// } - -// type MysqlDBInfo struct { -// HostName string `yaml:"host_name"` -// UserName string `yaml:"user_name"` -// Password string `yaml:"password"` -// DataBase string `yaml:"data_base"` -// Port int `yaml:"port"` -// } - -// type RedisDBInfo struct { -// RedisConn string `yaml:"redis_conn"` -// UseTLS bool `yaml:"use_tls"` -// RedisPwd string `yaml:"redis_pwd"` -// DefaultDB int `yaml:"defaultDB"` -// DialTimeout time.Duration `yaml:"dialTimeout"` -// EnableRedis bool `yaml:"enableRedis"` -// } - -// type Storage struct { -// Path string `yaml:"path"` -// } - -// type ServerConfig struct { -// HttpServer HttpServer `yaml:"http_server"` -// SocketServer SocketServer `yaml:"socket_server"` -// JWT JWTConfig `api:"jwt"` -// Logopts logger.LogOpts `yaml:"log"` -// MysqlDBinfo MysqlDBInfo `yaml:"mysql"` -// RedisDBinfo RedisDBInfo `yaml:"redis"` -// Storage Storage `yaml:"storage"` -// } - -// var global_config ServerConfig - -// func Init(path string) error { -// return config.Load(path, &global_config) -// } - -// func Config() *ServerConfig { -// return &global_config -// } var OptionsConfig *options.ServerConfig diff --git a/cmd/server/app/docs/docs.go b/cmd/server/app/docs/docs.go index 3070ea6f..704a6186 100644 --- a/cmd/server/app/docs/docs.go +++ b/cmd/server/app/docs/docs.go @@ -1,3 +1,11 @@ +/* + * Copyright (c) KylinSoft Co., Ltd. 2024.All rights reserved. + * PilotGo licensed under the Mulan Permissive Software License, Version 2. + * See LICENSE file for more details. + * Author: wubijie + * Date: Thu Jul 25 16:18:53 2024 +0800 + */ + // Package docs Code generated by swaggo/swag. DO NOT EDIT package docs diff --git a/cmd/server/app/network/controller/agentcontroller/agent.go b/cmd/server/app/network/controller/agentcontroller/agent.go index b68a1c42..d84542a3 100644 --- a/cmd/server/app/network/controller/agentcontroller/agent.go +++ b/cmd/server/app/network/controller/agentcontroller/agent.go @@ -18,7 +18,6 @@ import ( ) func AgentOverviewHandler(c *gin.Context) { - logger.Debug("process get agent overview request") uuid := c.Query("uuid") agent := agentmanager.GetAgent(uuid) if agent == nil { diff --git a/cmd/server/app/network/controller/agentcontroller/file.go b/cmd/server/app/network/controller/agentcontroller/file.go index ecb7ac7e..e0bbd755 100644 --- a/cmd/server/app/network/controller/agentcontroller/file.go +++ b/cmd/server/app/network/controller/agentcontroller/file.go @@ -16,33 +16,12 @@ import ( "gitee.com/openeuler/PilotGo/cmd/server/app/service/auditlog" batchservice "gitee.com/openeuler/PilotGo/cmd/server/app/service/batch" userservice "gitee.com/openeuler/PilotGo/cmd/server/app/service/user" - "gitee.com/openeuler/PilotGo/sdk/common" "gitee.com/openeuler/PilotGo/sdk/logger" "gitee.com/openeuler/PilotGo/sdk/response" "github.com/gin-gonic/gin" uuidservice "github.com/google/uuid" ) -func ReadFile(c *gin.Context) { - uuid := c.Query("uuid") - agent := agentmanager.GetAgent(uuid) - if agent == nil { - response.Fail(c, nil, "获取uuid失败!") - return - } - file := common.File{} - if err := c.Bind(&file); err != nil { - response.Fail(c, nil, "parameter error") - return - } - result, Err, err := agent.ReadFilePattern(file.Path, file.Name) - if err != nil { - response.Fail(c, nil, Err) - return - } - response.Success(c, gin.H{"file": result}, "Success") -} - func GetAgentRepo(c *gin.Context) { uuid := c.Query("uuid") agent := agentmanager.GetAgent(uuid) diff --git a/cmd/server/app/network/controller/config.go b/cmd/server/app/network/controller/config.go deleted file mode 100644 index f328790b..00000000 --- a/cmd/server/app/network/controller/config.go +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (c) KylinSoft Co., Ltd. 2024.All rights reserved. - * PilotGo licensed under the Mulan Permissive Software License, Version 2. - * See LICENSE file for more details. - * Author: linjieren - * Date: Thu Jul 25 16:18:53 2024 +0800 - */ -package controller - -import ( - "strconv" - - config "gitee.com/openeuler/PilotGo/cmd/server/app/service/configmanage" - "gitee.com/openeuler/PilotGo/sdk/response" - "github.com/gin-gonic/gin" -) - -func SaveConfigFileToDatabaseHandler(c *gin.Context) { - var file config.ConfigFiles - if err := c.Bind(&file); err != nil { - response.Fail(c, nil, "parameter error") - return - } - err := config.SaveToDatabase(&file) - if err != nil { - response.Fail(c, nil, err.Error()) - return - } - response.Success(c, nil, "文件保存成功") -} - -func DeleteConfigFileHandler(c *gin.Context) { - var files config.DeleteConfigFiles - if err := c.Bind(&files); err != nil { - response.Fail(c, nil, "parameter error") - return - } - fileids := files.FileIDs - err := config.DeleteConfig(fileids) - if err != nil { - response.Fail(c, nil, err.Error()) - return - } - response.Success(c, nil, "储存的文件已从数据库中删除") -} - -func UpdateConfigFileHandler(c *gin.Context) { - var file config.ConfigFiles - if err := c.Bind(&file); err != nil { - response.Fail(c, nil, "parameter error") - return - } - err := config.UpdateConfig(&file) - if err != nil { - response.Fail(c, nil, err.Error()) - return - } - response.Success(c, nil, "配置文件修改成功") -} - -func AllConfigFiles(c *gin.Context) { - query := &response.PaginationQ{} - err := c.ShouldBindQuery(query) - if err != nil { - response.Fail(c, gin.H{"status": false}, err.Error()) - return - } - - num := query.PageSize * (query.Page - 1) - total, data, err := config.GetConfigFilesPaged(num, query.PageSize) - if err != nil { - response.Fail(c, gin.H{"status": false}, err.Error()) - return - } - response.DataPagination(c, data, int(total), query) -} - -func ConfigFileSearchHandler(c *gin.Context) { - var file config.SearchConfigFile - if err := c.Bind(&file); err != nil { - response.Fail(c, nil, "parameter error") - return - } - - query := &response.PaginationQ{} - err := c.ShouldBindQuery(query) - if err != nil { - response.Fail(c, gin.H{"status": false}, err.Error()) - return - } - num := query.PageSize * (query.Page - 1) - total, data, err := file.ConfigFileSearchPaged(file.Search, num, query.PageSize) - if err != nil { - response.Fail(c, gin.H{"status": false}, err.Error()) - return - } - response.DataPagination(c, data, int(total), query) -} - -func HistoryConfigFilesHandler(c *gin.Context) { - query := &response.PaginationQ{} - err := c.ShouldBindQuery(query) - if err != nil { - response.Fail(c, gin.H{"status": false}, err.Error()) - return - } - - fileId := c.Query("id") - FileId, err := strconv.Atoi(fileId) - if err != nil { - response.Fail(c, nil, "文件ID输入格式有误") - return - } - - files := config.HistoryConfigFiles{} - num := query.PageSize * (query.Page - 1) - total, data, err := files.HistoryConfigFilesPaged(FileId, num, query.PageSize) - if err != nil { - response.Fail(c, gin.H{"status": false}, err.Error()) - return - } - response.DataPagination(c, data, int(total), query) -} - -func LastConfigFileRollBackHandler(c *gin.Context) { - var file config.RollBackConfigFiles - if err := c.Bind(&file); err != nil { - response.Fail(c, nil, "parameter error") - return - } - err := config.LastConfigFileRollBack(&file) - if err != nil { - response.Fail(c, nil, err.Error()) - return - } - response.Success(c, nil, "已回退到历史版本") -} diff --git a/cmd/server/app/network/controller/machine.go b/cmd/server/app/network/controller/machine.go index 7916ec87..8ca12d76 100644 --- a/cmd/server/app/network/controller/machine.go +++ b/cmd/server/app/network/controller/machine.go @@ -9,7 +9,6 @@ package controller import ( machineservice "gitee.com/openeuler/PilotGo/cmd/server/app/service/machine" - "gitee.com/openeuler/PilotGo/pkg/global" "gitee.com/openeuler/PilotGo/sdk/response" "github.com/gin-gonic/gin" ) @@ -42,23 +41,6 @@ func MachineInfoHandler(c *gin.Context) { response.DataPagination(c, data, int(total), query) } -// 资源池返回接口,查询没分配的机器,即departid=1,应该修改成维护状态的机器 -func FreeMachineSource(c *gin.Context) { - query := &response.PaginationQ{} - err := c.ShouldBindQuery(query) - if err != nil { - response.Fail(c, gin.H{"status": false}, err.Error()) - return - } - num := query.PageSize * (query.Page - 1) - total, data, err := machineservice.ReturnMachinePaged(global.UncateloguedDepartId, num, query.PageSize) - if err != nil { - response.Fail(c, gin.H{"status": false}, err.Error()) - return - } - response.DataPagination(c, data, int(total), query) -} - // 返回所有机器指定字段,供插件使用 func MachineAllDataHandler(c *gin.Context) { datas, err := machineservice.MachineAllData() diff --git a/cmd/server/app/network/controller/user.go b/cmd/server/app/network/controller/user.go index fddd260e..b949b647 100644 --- a/cmd/server/app/network/controller/user.go +++ b/cmd/server/app/network/controller/user.go @@ -302,7 +302,7 @@ func UpdatePasswordHandler(c *gin.Context) { func ResetPasswordHandler(c *gin.Context) { var user userservice.UserInfo if c.Bind(&user) != nil { - response.Fail(c, nil, "parameter error") + response.Fail(c, nil, "参数错误") return } @@ -327,7 +327,7 @@ func ResetPasswordHandler(c *gin.Context) { response.Fail(c, nil, err.Error()) return } - response.Success(c, nil, "密码重置成功!") + response.Success(c, nil, "密码重置成功! 初始密码为邮箱用户名") } // 删除用户 diff --git a/cmd/server/app/network/httpserver.go b/cmd/server/app/network/httpserver.go index 6b4ad178..ac763ebf 100644 --- a/cmd/server/app/network/httpserver.go +++ b/cmd/server/app/network/httpserver.go @@ -33,7 +33,7 @@ func HttpServerInit(conf *options.HttpServer, stopCh <-chan struct{}) error { go func() { r := SetupRouter() - // 启动websocket服务 + // start websocket server go websocket.CliManager.Start(stopCh) shutdownCtx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -46,7 +46,7 @@ func HttpServerInit(conf *options.HttpServer, stopCh <-chan struct{}) error { klog.Warningln("httpserver prepare stop") _ = srv.Shutdown(shutdownCtx) }() - // 启动http server服务 + // start http server if conf.UseHttps { if conf.CertFile == "" || conf.KeyFile == "" { logger.Error("https cert or key not configd") @@ -75,7 +75,7 @@ func HttpServerInit(conf *options.HttpServer, stopCh <-chan struct{}) error { if conf.Debug { go func() { - // 分解字符串然后添加后缀6060 + // pprof portIndex := strings.Index(conf.Addr, ":") addr := conf.Addr[:portIndex] + ":6060" logger.Debug("start pprof service on: %s", addr) @@ -113,13 +113,12 @@ func SetupRouter() *gin.Engine { // 绑定 http api handler registerAPIs(router) + // 对插件提供的api接口 + registerPluginApi(router) + // 绑定插件接口反向代理handler registerPluginGateway(router) - // 全局通用接口 - router.GET("/ws", controller.WS) - router.GET("/event", controller.PushAlarmHandler) - // 绑定前端静态资源handler resource.StaticRouter(router) @@ -127,17 +126,22 @@ func SetupRouter() *gin.Engine { } func registerAPIs(router *gin.Engine) { - noAuthenApis := router.Group("/api/v1") + router.GET("/ws", controller.WS) + router.GET("/event", controller.PushAlarmHandler) + + api := router.Group("/api/v1") + + noTokenApi := api.Group("") // 首页登录、退出 { - noAuthenApis.GET("/version", controller.VersionHandler) + noTokenApi.GET("/version", controller.VersionHandler) - noAuthenApis.POST("/user/login", controller.LoginHandler) - noAuthenApis.GET("/user/logout", controller.Logout) + noTokenApi.POST("/user/login", controller.LoginHandler) + noTokenApi.GET("/user/logout", controller.Logout) - noAuthenApis.GET("/download/:filename", controller.Download) + noTokenApi.GET("/download/:filename", controller.Download) } - authenApi := router.Group("/api/v1") + authenApi := api.Group("") // 按钮权限,是否显示 { { macBasicModify := authenApi.Group("/agent") @@ -145,13 +149,13 @@ func registerAPIs(router *gin.Engine) { macBasicModify.POST("/rpm_remove", middleware.NeedPermission("rpm_uninstall", "button"), agentcontroller.RemoveRpmHandler) } { - batchmanager := authenApi.Group("batchmanager") - batchmanager.POST("/updatebatch", middleware.NeedPermission("batch_update", "button"), controller.UpdateBatchHandler) - batchmanager.POST("/deletebatch", middleware.NeedPermission("batch_delete", "button"), controller.DeleteBatchHandler) - batchmanager.POST("/createbatch", middleware.NeedPermission("batch_create", "button"), controller.CreateBatchHandler) + batch := authenApi.Group("/batchmanager") + batch.POST("/updatebatch", middleware.NeedPermission("batch_update", "button"), controller.UpdateBatchHandler) + batch.POST("/deletebatch", middleware.NeedPermission("batch_delete", "button"), controller.DeleteBatchHandler) + batch.POST("/createbatch", middleware.NeedPermission("batch_create", "button"), controller.CreateBatchHandler) } { - user := authenApi.Group("user") + user := authenApi.Group("/user") user.POST("/register", middleware.NeedPermission("user_add", "button"), controller.RegisterHandler) user.POST("/reset", middleware.NeedPermission("user_reset", "button"), controller.ResetPasswordHandler) user.POST("/delete", middleware.NeedPermission("user_del", "button"), controller.DeleteUserHandler) @@ -164,75 +168,89 @@ func registerAPIs(router *gin.Engine) { user.POST("/roleChange", middleware.NeedPermission("role_modify", "button"), controller.RolePermissionChangeHandler) } { - macList := authenApi.Group("/macList") - macList.POST("/deletedepartdata", middleware.NeedPermission("dept_delete", "button"), controller.DeleteDepartDataHandler) - macList.POST("/adddepart", middleware.NeedPermission("dept_add", "button"), controller.AddDepartHandler) - macList.POST("/updatedepart", middleware.NeedPermission("dept_update", "button"), controller.UpdateDepartHandler) - macList.POST("/modifydepart", middleware.NeedPermission("dept_change", "button"), controller.ModifyMachineDepartHandler) - macList.POST("/deletemachine", middleware.NeedPermission("machine_delete", "button"), controller.DeleteMachineHandler) - } - { - userLog := authenApi.Group("/log") // 日志管理 - userLog.GET("/log_all", middleware.NeedPermission("audit", "menu"), controller.LogAllHandler) - // TODO: 界面未调用该接口 - userLog.GET("/log_child", middleware.NeedPermission("audit", "menu"), controller.GetAuditLogByIdHandler) + system := authenApi.Group("/macList") + system.POST("/deletedepartdata", middleware.NeedPermission("dept_delete", "button"), controller.DeleteDepartDataHandler) + system.POST("/adddepart", middleware.NeedPermission("dept_add", "button"), controller.AddDepartHandler) + system.POST("/updatedepart", middleware.NeedPermission("dept_update", "button"), controller.UpdateDepartHandler) + system.POST("/modifydepart", middleware.NeedPermission("dept_change", "button"), controller.ModifyMachineDepartHandler) + system.POST("/deletemachine", middleware.NeedPermission("machine_delete", "button"), controller.DeleteMachineHandler) } - /* - { - configmanager := authenApi.Group("config") - configmanager.POST("/file_broadcast", middleware.NeedPermission("config_install", "button"), agentcontroller.ConfigFileBroadcastToAgents) - } - */ } - tokenApi := router.Group("/api/v1") + tokenApi := api.Group("") // web页面显示 tokenApi.Use(middleware.TokenCheckMiddleware) - overview := tokenApi.Group("/overview") // 机器概览 + + overview := tokenApi.Group("/overview") // 概览 { overview.GET("/info", controller.ClusterInfoHandler) overview.GET("/depart_info", controller.DepartClusterInfoHandler) } - macList := tokenApi.Group("/macList") // 机器管理 + system := tokenApi.Group("") // 系统 { - macList.POST("/script_save", controller.AddScriptHandler) - macList.GET("/depart", controller.DepartHandler) - macList.GET("/selectmachine", controller.MachineListHandler) - macList.GET("/machineinfo", controller.MachineInfoHandler) - macList.GET("/sourcepool", controller.FreeMachineSource) - macList.POST("/gettags", pluginapi.GetTagHandler) - } + { + //machine list + mac := system.Group("/macList") + mac.GET("/machineinfo", controller.MachineInfoHandler) + mac.POST("/gettags", pluginapi.GetTagHandler) + mac.GET("/machinealldata", controller.MachineAllDataHandler) + } + { + // depart manager + depart := system.Group("/macList") + depart.GET("/depart", controller.DepartHandler) + depart.GET("/departinfo", controller.DepartInfoHandler) + } + { + // batch related + batch := system.Group("/macList") + batch.GET("/selectmachine", controller.MachineListHandler) - macDetails := tokenApi.Group("/api") // 机器详情 - { - macDetails.GET("/agent_overview", agentcontroller.AgentOverviewHandler) - macDetails.GET("/agent_list", agentcontroller.AgentListHandler) - macDetails.GET("/run_command", agentcontroller.RunCmd) - macDetails.GET("/run_script", agentcontroller.RunScriptWithBooleanCheck) - macDetails.GET("/os_info", agentcontroller.OSInfoHandler) - macDetails.GET("/cpu_info", agentcontroller.CPUInfoHandler) - macDetails.GET("/memory_info", agentcontroller.MemoryInfoHandler) - macDetails.GET("/sysctl_info", agentcontroller.SysInfoHandler) - macDetails.GET("/sysctl_view", agentcontroller.SysctlViewHandler) - macDetails.GET("/service_list", agentcontroller.ServiceListHandler) - macDetails.GET("/service_status", agentcontroller.ServiceStatusHandler) - macDetails.GET("/rpm_all", agentcontroller.AllRpmHandler) - macDetails.GET("/rpm_source", agentcontroller.RpmSourceHandler) - macDetails.GET("/repos", agentcontroller.GetAgentRepo) - macDetails.GET("/rpm_info", agentcontroller.RpmInfoHandler) - macDetails.GET("/disk_use", agentcontroller.DiskUsageHandler) - macDetails.GET("/disk_info", agentcontroller.DiskInfoHandler) - macDetails.GET("/net_tcp", agentcontroller.NetTCPHandler) - macDetails.GET("/net_udp", agentcontroller.NetUDPHandler) - macDetails.GET("/net_io", agentcontroller.NetIOCounterHandler) - macDetails.GET("/net_nic", agentcontroller.NetNICConfigHandler) - macDetails.GET("/user_info", agentcontroller.CurrentUserInfoHandler) - macDetails.GET("/user_all", agentcontroller.AllUserInfoHandler) - macDetails.GET("/os_basic", agentcontroller.OsBasic) - macDetails.GET("/firewall_config", agentcontroller.FirewalldConfig) - macDetails.GET("/firewall_zone", agentcontroller.FirewalldZoneConfig) - macDetails.GET("/net", agentcontroller.GetAgentNetworkConnect) + batchmanager := system.Group("/batchmanager") + { + batchmanager.GET("/batchinfo", controller.BatchInfoHandler) + batchmanager.GET("/batchmachineinfo", controller.BatchMachineInfoHandler) + batchmanager.GET("/selectbatch", controller.SelectBatchHandler) + } + } + { + // machine detail info + macDetails := system.Group("/api") + macDetails.GET("/agent_overview", agentcontroller.AgentOverviewHandler) + macDetails.GET("/agent_list", agentcontroller.AgentListHandler) + macDetails.GET("/run_command", agentcontroller.RunCmd) + macDetails.GET("/run_script", agentcontroller.RunScriptWithBooleanCheck) + macDetails.GET("/os_info", agentcontroller.OSInfoHandler) + macDetails.GET("/cpu_info", agentcontroller.CPUInfoHandler) + macDetails.GET("/memory_info", agentcontroller.MemoryInfoHandler) + macDetails.GET("/sysctl_info", agentcontroller.SysInfoHandler) + macDetails.GET("/sysctl_view", agentcontroller.SysctlViewHandler) + macDetails.GET("/service_list", agentcontroller.ServiceListHandler) + macDetails.GET("/service_status", agentcontroller.ServiceStatusHandler) + macDetails.GET("/rpm_all", agentcontroller.AllRpmHandler) + macDetails.GET("/rpm_source", agentcontroller.RpmSourceHandler) + macDetails.GET("/repos", agentcontroller.GetAgentRepo) + macDetails.GET("/rpm_info", agentcontroller.RpmInfoHandler) + macDetails.GET("/disk_use", agentcontroller.DiskUsageHandler) + macDetails.GET("/disk_info", agentcontroller.DiskInfoHandler) + macDetails.GET("/net_tcp", agentcontroller.NetTCPHandler) + macDetails.GET("/net_udp", agentcontroller.NetUDPHandler) + macDetails.GET("/net_io", agentcontroller.NetIOCounterHandler) + macDetails.GET("/net_nic", agentcontroller.NetNICConfigHandler) + macDetails.GET("/user_info", agentcontroller.CurrentUserInfoHandler) + macDetails.GET("/user_all", agentcontroller.AllUserInfoHandler) + macDetails.GET("/os_basic", agentcontroller.OsBasic) + macDetails.GET("/firewall_config", agentcontroller.FirewalldConfig) + macDetails.GET("/firewall_zone", agentcontroller.FirewalldZoneConfig) + macDetails.GET("/net", agentcontroller.GetAgentNetworkConnect) + } + { + // script manager + script := system.Group("/script") + script.POST("/save", controller.AddScriptHandler) + } } + /* macBasicModify := api.Group("/agent") // 机器配置 { @@ -264,73 +282,51 @@ func registerAPIs(router *gin.Engine) { macBasicModify.POST("/network", agentcontroller.ConfigNetworkConnect) } */ - batchmanager := tokenApi.Group("batchmanager") // 批次 - { - batchmanager.GET("/batchinfo", controller.BatchInfoHandler) - batchmanager.GET("/batchmachineinfo", controller.BatchMachineInfoHandler) - } - user := tokenApi.Group("user") // 用户管理 + user := tokenApi.Group("/user") // 用户、角色管理 { - user.POST("/updatepwd", controller.UpdatePasswordHandler) - // user.GET("/logout", controller.Logout) - user.GET("/searchAll", controller.UserAll) - user.POST("/userSearch", controller.UserSearchHandler) - user.GET("/info", controller.Info) - // user.POST("/permission", controller.GetLoginUserPermissionHandler) - user.GET("/roles", controller.GetRolesHandler) - user.GET("/roles_paged", controller.GetRolesPagedHandler) - - // 获取登录用户权限列表 - user.POST("/permission", controller.GetLoginUserPermissionHandler) - } - - /* - configmanager := api.Group("config") // 配置管理 { - configmanager.GET("/read_file", agentcontroller.ReadFile) - configmanager.POST("/fileSaveAdd", controller.SaveConfigFileToDatabaseHandler) - configmanager.GET("/file_all", controller.AllConfigFiles) - configmanager.POST("/file_search", controller.ConfigFileSearchHandler) - configmanager.POST("/file_update", controller.UpdateConfigFileHandler) - configmanager.POST("/file_delete", controller.DeleteConfigFileHandler) - configmanager.GET("/lastfile_all", controller.HistoryConfigFilesHandler) - configmanager.POST("/lastfile_rollback", controller.LastConfigFileRollBackHandler) + u := user.Group("") + u.GET("/info", controller.Info) + u.POST("/updatepwd", controller.UpdatePasswordHandler) + u.GET("/searchAll", controller.UserAll) + u.POST("/userSearch", controller.UserSearchHandler) + u.POST("/permission", controller.GetLoginUserPermissionHandler) } - */ + { + role := user.Group("") + role.GET("/roles", controller.GetRolesHandler) + role.GET("/roles_paged", controller.GetRolesPagedHandler) + } + } - tokenApi.GET("/plugins_paged", controller.GetPluginsPagedHandler) - plugin := tokenApi.Group("plugins") // 插件 + AuditLog := tokenApi.Group("/log") // 审计日志 { - // 添加插件 - plugin.PUT("", controller.AddPluginHandler) - // 启用/停用plugin - plugin.POST("/:uuid", controller.TogglePluginHandler) - // 删除插件 - plugin.DELETE("/:uuid", controller.UnloadPluginHandler) - - // 获取插件列表 - plugin.GET("/", controller.GetPluginsHandler) + AuditLog.GET("/log_all", controller.LogAllHandler) + // TODO: 界面未调用该接口 + AuditLog.GET("/log_child", controller.GetAuditLogByIdHandler) } - // 对插件提供的api接口 - registerPluginApi(router) - - other := tokenApi.Group("") + plugin := tokenApi.Group("") // 插件管理 { - // 监控机器列表 - other.GET("/macList/machinealldata", controller.MachineAllDataHandler) - // 未用到 - other.GET("/macList/departinfo", controller.DepartInfoHandler) - // 配置批次下发 - other.GET("/batchmanager/selectbatch", controller.SelectBatchHandler) - // 健康监测 - other.GET("/ping", func(c *gin.Context) { c.String(http.StatusOK, "pong") }) + plugin.GET("/plugins_paged", controller.GetPluginsPagedHandler) + p := plugin.Group("/plugins") + { + // 添加插件 + p.PUT("", controller.AddPluginHandler) + // 启用/停用plugin + p.POST("/:uuid", controller.TogglePluginHandler) + // 删除插件 + p.DELETE("/:uuid", controller.UnloadPluginHandler) + // 获取插件列表 + p.GET("/", controller.GetPluginsHandler) + } } } func registerPluginApi(router *gin.Engine) { - pluginAPI := router.Group("/api/v1/pluginapi") + api := router.Group("/api/v1") + pluginAPI := api.Group("/pluginapi") pluginAPI.Use(pluginapi.AuthCheck) { pluginAPI.POST("/upload", controller.Upload) diff --git a/cmd/server/app/service/machine/machinemanager.go b/cmd/server/app/service/machine/machinemanager.go index e61f9339..5c0fa265 100644 --- a/cmd/server/app/service/machine/machinemanager.go +++ b/cmd/server/app/service/machine/machinemanager.go @@ -56,11 +56,6 @@ func MachineInfo(depart *Depart, offset, size int) (int64, []dao.Res, error) { return total, data, err } -func ReturnMachinePaged(departid, offset, size int) (int64, []dao.Res, error) { - count, list, err := dao.ReturnMachinePaged(departid, offset, size) - return count, list, err -} - // 插件调用 func MachineAllData() ([]map[string]string, error) { AllData, err := dao.MachineAll() diff --git a/cmd/server/main.go b/cmd/server/main.go index 4cd7cd97..d4efbadb 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -13,7 +13,7 @@ import ( ) // @title PilotGo Swagger API -// @version 1.0 +// @version 2.0 // @description This is a pilotgo server API docs. // @license.name MulanPSL2 // @license.url http://license.coscl.org.cn/MulanPSL2 -- Gitee