mirror of
https://github.com/lzh-1625/go_process_manager.git
synced 2025-10-05 07:56:50 +08:00
rename service
This commit is contained in:
16
boot/boot.go
16
boot/boot.go
@@ -10,9 +10,9 @@ import (
|
|||||||
|
|
||||||
"github.com/lzh-1625/go_process_manager/config"
|
"github.com/lzh-1625/go_process_manager/config"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/constants"
|
"github.com/lzh-1625/go_process_manager/internal/app/constants"
|
||||||
|
"github.com/lzh-1625/go_process_manager/internal/app/logic"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/middle"
|
"github.com/lzh-1625/go_process_manager/internal/app/middle"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/service"
|
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/termui"
|
"github.com/lzh-1625/go_process_manager/internal/app/termui"
|
||||||
logger "github.com/lzh-1625/go_process_manager/log"
|
logger "github.com/lzh-1625/go_process_manager/log"
|
||||||
"github.com/lzh-1625/go_process_manager/utils"
|
"github.com/lzh-1625/go_process_manager/utils"
|
||||||
@@ -83,11 +83,11 @@ func initLog() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func initEs() {
|
func initEs() {
|
||||||
service.EsService.InitEs()
|
logic.EsLogic.InitEs()
|
||||||
}
|
}
|
||||||
|
|
||||||
func initProcess() {
|
func initProcess() {
|
||||||
service.ProcessCtlService.ProcessInit()
|
logic.ProcessCtlLogic.ProcessInit()
|
||||||
}
|
}
|
||||||
|
|
||||||
func initJwtSecret() {
|
func initJwtSecret() {
|
||||||
@@ -101,7 +101,7 @@ func initJwtSecret() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func initLogHanler() {
|
func initLogHanler() {
|
||||||
service.InitLog()
|
logic.InitLog()
|
||||||
}
|
}
|
||||||
|
|
||||||
func initTui() {
|
func initTui() {
|
||||||
@@ -109,12 +109,12 @@ func initTui() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func InitTask() {
|
func InitTask() {
|
||||||
service.TaskService.InitTaskJob()
|
logic.TaskLogic.InitTaskJob()
|
||||||
}
|
}
|
||||||
|
|
||||||
func initResetConfig() {
|
func initResetConfig() {
|
||||||
if len(os.Args) >= 2 && os.Args[1] == "reset" {
|
if len(os.Args) >= 2 && os.Args[1] == "reset" {
|
||||||
err := service.ConfigService.ResetSystemConfiguration()
|
err := logic.ConfigLogic.ResetSystemConfiguration()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panic(err)
|
log.Panic(err)
|
||||||
}
|
}
|
||||||
@@ -128,7 +128,7 @@ func initListenKillSignal() {
|
|||||||
sigs := make(chan os.Signal, 1)
|
sigs := make(chan os.Signal, 1)
|
||||||
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
|
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
|
||||||
<-sigs
|
<-sigs
|
||||||
service.ProcessCtlService.KillAllProcess()
|
logic.ProcessCtlLogic.KillAllProcess()
|
||||||
log.Print("已停止所有进程")
|
log.Print("已停止所有进程")
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}()
|
}()
|
||||||
@@ -139,5 +139,5 @@ func initCondTiming() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func initLogHandle() {
|
func initLogHandle() {
|
||||||
service.InitLogHandle()
|
logic.InitLogHandle()
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
package api
|
package api
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/service"
|
"github.com/lzh-1625/go_process_manager/internal/app/logic"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -11,16 +11,16 @@ type configApi struct{}
|
|||||||
var ConfigApi = new(configApi)
|
var ConfigApi = new(configApi)
|
||||||
|
|
||||||
func (c *configApi) GetSystemConfiguration(ctx *gin.Context) {
|
func (c *configApi) GetSystemConfiguration(ctx *gin.Context) {
|
||||||
result := service.ConfigService.GetSystemConfiguration()
|
result := logic.ConfigLogic.GetSystemConfiguration()
|
||||||
rOk(ctx, "Operation successful!", result)
|
rOk(ctx, "Operation successful!", result)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *configApi) SetSystemConfiguration(ctx *gin.Context, req map[string]string) {
|
func (c *configApi) SetSystemConfiguration(ctx *gin.Context, req map[string]string) {
|
||||||
errCheck(ctx, service.ConfigService.SetSystemConfiguration(req) != nil, "Set config fail!")
|
errCheck(ctx, logic.ConfigLogic.SetSystemConfiguration(req) != nil, "Set config fail!")
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *configApi) EsConfigReload(ctx *gin.Context) {
|
func (c *configApi) EsConfigReload(ctx *gin.Context) {
|
||||||
errCheck(ctx, !service.EsService.InitEs(), "Incorrect username or password!")
|
errCheck(ctx, !logic.EsLogic.InitEs(), "Incorrect username or password!")
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
package api
|
package api
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/service"
|
"github.com/lzh-1625/go_process_manager/internal/app/logic"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -12,7 +12,7 @@ var FileApi = new(file)
|
|||||||
|
|
||||||
func (f *file) FilePathHandler(ctx *gin.Context) {
|
func (f *file) FilePathHandler(ctx *gin.Context) {
|
||||||
path := getQueryString(ctx, "path")
|
path := getQueryString(ctx, "path")
|
||||||
rOk(ctx, "Operation successful!", service.FileService.GetFileAndDirByPath(path))
|
rOk(ctx, "Operation successful!", logic.FileLogic.GetFileAndDirByPath(path))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *file) FileWriteHandler(ctx *gin.Context) {
|
func (f *file) FileWriteHandler(ctx *gin.Context) {
|
||||||
@@ -20,14 +20,14 @@ func (f *file) FileWriteHandler(ctx *gin.Context) {
|
|||||||
fi, err := ctx.FormFile("data")
|
fi, err := ctx.FormFile("data")
|
||||||
errCheck(ctx, err != nil, "Read file data failed!")
|
errCheck(ctx, err != nil, "Read file data failed!")
|
||||||
fiReader, _ := fi.Open()
|
fiReader, _ := fi.Open()
|
||||||
err = service.FileService.UpdateFileData(path, fiReader, fi.Size)
|
err = logic.FileLogic.UpdateFileData(path, fiReader, fi.Size)
|
||||||
errCheck(ctx, err != nil, "Update file data operation failed!")
|
errCheck(ctx, err != nil, "Update file data operation failed!")
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *file) FileReadHandler(ctx *gin.Context) {
|
func (f *file) FileReadHandler(ctx *gin.Context) {
|
||||||
path := getQueryString(ctx, "filePath")
|
path := getQueryString(ctx, "filePath")
|
||||||
bytes, err := service.FileService.ReadFileFromPath(path)
|
bytes, err := logic.FileLogic.ReadFileFromPath(path)
|
||||||
errCheck(ctx, err != nil, "Operation failed!")
|
errCheck(ctx, err != nil, "Operation failed!")
|
||||||
rOk(ctx, "Operation successful!", string(bytes))
|
rOk(ctx, "Operation successful!", string(bytes))
|
||||||
}
|
}
|
||||||
|
@@ -4,9 +4,9 @@ import (
|
|||||||
"slices"
|
"slices"
|
||||||
|
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/constants"
|
"github.com/lzh-1625/go_process_manager/internal/app/constants"
|
||||||
|
"github.com/lzh-1625/go_process_manager/internal/app/logic"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/model"
|
"github.com/lzh-1625/go_process_manager/internal/app/model"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/service"
|
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -17,7 +17,7 @@ var LogApi = new(logApi)
|
|||||||
|
|
||||||
func (a *logApi) GetLog(ctx *gin.Context, req model.GetLogReq) {
|
func (a *logApi) GetLog(ctx *gin.Context, req model.GetLogReq) {
|
||||||
if isAdmin(ctx) {
|
if isAdmin(ctx) {
|
||||||
rOk(ctx, "Query successful!", service.LogServiceImpl.Search(req, req.FilterName...))
|
rOk(ctx, "Query successful!", logic.LogLogicImpl.Search(req, req.FilterName...))
|
||||||
} else {
|
} else {
|
||||||
processNameList := repository.PermissionRepository.GetProcessNameByPermission(getUserName(ctx), constants.OPERATION_LOG)
|
processNameList := repository.PermissionRepository.GetProcessNameByPermission(getUserName(ctx), constants.OPERATION_LOG)
|
||||||
filterName := slices.DeleteFunc(req.FilterName, func(s string) bool {
|
filterName := slices.DeleteFunc(req.FilterName, func(s string) bool {
|
||||||
@@ -27,10 +27,10 @@ func (a *logApi) GetLog(ctx *gin.Context, req model.GetLogReq) {
|
|||||||
filterName = processNameList
|
filterName = processNameList
|
||||||
}
|
}
|
||||||
errCheck(ctx, len(filterName) == 0, "No information found!")
|
errCheck(ctx, len(filterName) == 0, "No information found!")
|
||||||
rOk(ctx, "Query successful!", service.LogServiceImpl.Search(req, filterName...))
|
rOk(ctx, "Query successful!", logic.LogLogicImpl.Search(req, filterName...))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *logApi) GetRunningLog(ctx *gin.Context) {
|
func (a *logApi) GetRunningLog(ctx *gin.Context) {
|
||||||
rOk(ctx, "Query successful!", service.Loghandler.GetRunning())
|
rOk(ctx, "Query successful!", logic.Loghandler.GetRunning())
|
||||||
}
|
}
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
package api
|
package api
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/lzh-1625/go_process_manager/internal/app/logic"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/model"
|
"github.com/lzh-1625/go_process_manager/internal/app/model"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/service"
|
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -16,9 +16,9 @@ func (p *procApi) CreateNewProcess(ctx *gin.Context, req model.Process) {
|
|||||||
index, err := repository.ProcessRepository.AddProcessConfig(req)
|
index, err := repository.ProcessRepository.AddProcessConfig(req)
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
req.Uuid = index
|
req.Uuid = index
|
||||||
proc, err := service.ProcessCtlService.RunNewProcess(req)
|
proc, err := logic.ProcessCtlLogic.RunNewProcess(req)
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
service.ProcessCtlService.AddProcess(req.Uuid, proc)
|
logic.ProcessCtlLogic.AddProcess(req.Uuid, proc)
|
||||||
rOk(ctx, "Operation successful!", gin.H{
|
rOk(ctx, "Operation successful!", gin.H{
|
||||||
"id": req.Uuid,
|
"id": req.Uuid,
|
||||||
})
|
})
|
||||||
@@ -26,8 +26,8 @@ func (p *procApi) CreateNewProcess(ctx *gin.Context, req model.Process) {
|
|||||||
|
|
||||||
func (p *procApi) DeleteNewProcess(ctx *gin.Context) {
|
func (p *procApi) DeleteNewProcess(ctx *gin.Context) {
|
||||||
uuid := getQueryInt(ctx, "uuid")
|
uuid := getQueryInt(ctx, "uuid")
|
||||||
service.ProcessCtlService.KillProcess(uuid)
|
logic.ProcessCtlLogic.KillProcess(uuid)
|
||||||
service.ProcessCtlService.DeleteProcess(uuid)
|
logic.ProcessCtlLogic.DeleteProcess(uuid)
|
||||||
err := repository.ProcessRepository.DeleteProcessConfig(uuid)
|
err := repository.ProcessRepository.DeleteProcessConfig(uuid)
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
@@ -35,18 +35,18 @@ func (p *procApi) DeleteNewProcess(ctx *gin.Context) {
|
|||||||
|
|
||||||
func (p *procApi) KillProcess(ctx *gin.Context) {
|
func (p *procApi) KillProcess(ctx *gin.Context) {
|
||||||
uuid := getQueryInt(ctx, "uuid")
|
uuid := getQueryInt(ctx, "uuid")
|
||||||
err := service.ProcessCtlService.KillProcess(uuid)
|
err := logic.ProcessCtlLogic.KillProcess(uuid)
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *procApi) StartProcess(ctx *gin.Context) {
|
func (p *procApi) StartProcess(ctx *gin.Context) {
|
||||||
uuid := getQueryInt(ctx, "uuid")
|
uuid := getQueryInt(ctx, "uuid")
|
||||||
prod, err := service.ProcessCtlService.GetProcess(uuid)
|
prod, err := logic.ProcessCtlLogic.GetProcess(uuid)
|
||||||
if err != nil { // 进程不存在则创建
|
if err != nil { // 进程不存在则创建
|
||||||
proc, err := service.ProcessCtlService.RunNewProcess(repository.ProcessRepository.GetProcessConfigById(uuid))
|
proc, err := logic.ProcessCtlLogic.RunNewProcess(repository.ProcessRepository.GetProcessConfigById(uuid))
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
service.ProcessCtlService.AddProcess(uuid, proc)
|
logic.ProcessCtlLogic.AddProcess(uuid, proc)
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -59,32 +59,32 @@ func (p *procApi) StartProcess(ctx *gin.Context) {
|
|||||||
|
|
||||||
func (p *procApi) StartAllProcess(ctx *gin.Context) {
|
func (p *procApi) StartAllProcess(ctx *gin.Context) {
|
||||||
if isAdmin(ctx) {
|
if isAdmin(ctx) {
|
||||||
service.ProcessCtlService.ProcessStartAll()
|
logic.ProcessCtlLogic.ProcessStartAll()
|
||||||
} else {
|
} else {
|
||||||
service.ProcessCtlService.ProcesStartAllByUsername(getUserName(ctx))
|
logic.ProcessCtlLogic.ProcesStartAllByUsername(getUserName(ctx))
|
||||||
}
|
}
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *procApi) KillAllProcess(ctx *gin.Context) {
|
func (p *procApi) KillAllProcess(ctx *gin.Context) {
|
||||||
if isAdmin(ctx) {
|
if isAdmin(ctx) {
|
||||||
service.ProcessCtlService.KillAllProcess()
|
logic.ProcessCtlLogic.KillAllProcess()
|
||||||
} else {
|
} else {
|
||||||
service.ProcessCtlService.KillAllProcessByUserName(getUserName(ctx))
|
logic.ProcessCtlLogic.KillAllProcessByUserName(getUserName(ctx))
|
||||||
}
|
}
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *procApi) GetProcessList(ctx *gin.Context) {
|
func (p *procApi) GetProcessList(ctx *gin.Context) {
|
||||||
if isAdmin(ctx) {
|
if isAdmin(ctx) {
|
||||||
rOk(ctx, "Query successful!", service.ProcessCtlService.GetProcessList())
|
rOk(ctx, "Query successful!", logic.ProcessCtlLogic.GetProcessList())
|
||||||
} else {
|
} else {
|
||||||
rOk(ctx, "Query successful!", service.ProcessCtlService.GetProcessListByUser(getUserName(ctx)))
|
rOk(ctx, "Query successful!", logic.ProcessCtlLogic.GetProcessListByUser(getUserName(ctx)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *procApi) UpdateProcessConfig(ctx *gin.Context, req model.Process) {
|
func (p *procApi) UpdateProcessConfig(ctx *gin.Context, req model.Process) {
|
||||||
service.ProcessCtlService.UpdateProcessConfig(req)
|
logic.ProcessCtlLogic.UpdateProcessConfig(req)
|
||||||
err := repository.ProcessRepository.UpdateProcessConfig(req)
|
err := repository.ProcessRepository.UpdateProcessConfig(req)
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
@@ -100,7 +100,7 @@ func (p *procApi) GetProcessConfig(ctx *gin.Context) {
|
|||||||
func (p *procApi) ProcessControl(ctx *gin.Context) {
|
func (p *procApi) ProcessControl(ctx *gin.Context) {
|
||||||
user := getUserName(ctx)
|
user := getUserName(ctx)
|
||||||
uuid := getQueryInt(ctx, "uuid")
|
uuid := getQueryInt(ctx, "uuid")
|
||||||
proc, err := service.ProcessCtlService.GetProcess(uuid)
|
proc, err := logic.ProcessCtlLogic.GetProcess(uuid)
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
proc.ProcessControl(user)
|
proc.ProcessControl(user)
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
package api
|
package api
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/lzh-1625/go_process_manager/internal/app/logic"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/model"
|
"github.com/lzh-1625/go_process_manager/internal/app/model"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/service"
|
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -13,7 +13,7 @@ type taskApi struct{}
|
|||||||
var TaskApi = new(taskApi)
|
var TaskApi = new(taskApi)
|
||||||
|
|
||||||
func (t *taskApi) CreateTask(ctx *gin.Context, req model.Task) {
|
func (t *taskApi) CreateTask(ctx *gin.Context, req model.Task) {
|
||||||
err := service.TaskService.CreateTask(req)
|
err := logic.TaskLogic.CreateTask(req)
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
@@ -25,46 +25,46 @@ func (t *taskApi) GetTaskById(ctx *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskApi) GetTaskList(ctx *gin.Context) {
|
func (t *taskApi) GetTaskList(ctx *gin.Context) {
|
||||||
result := service.TaskService.GetAllTaskJob()
|
result := logic.TaskLogic.GetAllTaskJob()
|
||||||
rOk(ctx, "Operation successful!", result)
|
rOk(ctx, "Operation successful!", result)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskApi) DeleteTaskById(ctx *gin.Context) {
|
func (t *taskApi) DeleteTaskById(ctx *gin.Context) {
|
||||||
err := service.TaskService.DeleteTask(getQueryInt(ctx, "id"))
|
err := logic.TaskLogic.DeleteTask(getQueryInt(ctx, "id"))
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskApi) StartTask(ctx *gin.Context) {
|
func (t *taskApi) StartTask(ctx *gin.Context) {
|
||||||
go service.TaskService.RunTaskById(getQueryInt(ctx, "id"))
|
go logic.TaskLogic.RunTaskById(getQueryInt(ctx, "id"))
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskApi) StopTask(ctx *gin.Context) {
|
func (t *taskApi) StopTask(ctx *gin.Context) {
|
||||||
errCheck(ctx, service.TaskService.StopTaskJob(getQueryInt(ctx, "id")) != nil, "Operation failed!")
|
errCheck(ctx, logic.TaskLogic.StopTaskJob(getQueryInt(ctx, "id")) != nil, "Operation failed!")
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskApi) EditTask(ctx *gin.Context, req model.Task) {
|
func (t *taskApi) EditTask(ctx *gin.Context, req model.Task) {
|
||||||
err := service.TaskService.EditTask(req)
|
err := logic.TaskLogic.EditTask(req)
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskApi) EditTaskEnable(ctx *gin.Context, req model.Task) {
|
func (t *taskApi) EditTaskEnable(ctx *gin.Context, req model.Task) {
|
||||||
err := service.TaskService.EditTaskEnable(req.Id, req.Enable)
|
err := logic.TaskLogic.EditTaskEnable(req.Id, req.Enable)
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskApi) RunTaskByKey(ctx *gin.Context) {
|
func (t *taskApi) RunTaskByKey(ctx *gin.Context) {
|
||||||
err := service.TaskService.RunTaskByKey(ctx.Param("key"))
|
err := logic.TaskLogic.RunTaskByKey(ctx.Param("key"))
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskApi) CreateTaskApiKey(ctx *gin.Context) {
|
func (t *taskApi) CreateTaskApiKey(ctx *gin.Context) {
|
||||||
err := service.TaskService.CreateApiKey(getQueryInt(ctx, "id"))
|
err := logic.TaskLogic.CreateApiKey(getQueryInt(ctx, "id"))
|
||||||
errCheck(ctx, err != nil, err)
|
errCheck(ctx, err != nil, err)
|
||||||
rOk(ctx, "Operation successful!", nil)
|
rOk(ctx, "Operation successful!", nil)
|
||||||
}
|
}
|
||||||
|
@@ -5,8 +5,8 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/constants"
|
"github.com/lzh-1625/go_process_manager/internal/app/constants"
|
||||||
|
"github.com/lzh-1625/go_process_manager/internal/app/logic"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/middle"
|
"github.com/lzh-1625/go_process_manager/internal/app/middle"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/service"
|
|
||||||
"github.com/lzh-1625/go_process_manager/log"
|
"github.com/lzh-1625/go_process_manager/log"
|
||||||
"github.com/lzh-1625/go_process_manager/utils"
|
"github.com/lzh-1625/go_process_manager/utils"
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ var upgrader = websocket.Upgrader{
|
|||||||
func (w *wsApi) WebsocketHandle(ctx *gin.Context) {
|
func (w *wsApi) WebsocketHandle(ctx *gin.Context) {
|
||||||
reqUser := getUserName(ctx)
|
reqUser := getUserName(ctx)
|
||||||
uuid := getQueryInt(ctx, "uuid")
|
uuid := getQueryInt(ctx, "uuid")
|
||||||
proc, err := service.ProcessCtlService.GetProcess(uuid)
|
proc, err := logic.ProcessCtlLogic.GetProcess(uuid)
|
||||||
errCheck(ctx, err != nil, "Operation failed!")
|
errCheck(ctx, err != nil, "Operation failed!")
|
||||||
errCheck(ctx, proc.HasWsConn(reqUser), "A connection already exists; unable to establish a new one!")
|
errCheck(ctx, proc.HasWsConn(reqUser), "A connection already exists; unable to establish a new one!")
|
||||||
errCheck(ctx, proc.State.State != 1, "The process is currently running.")
|
errCheck(ctx, proc.State.State != 1, "The process is currently running.")
|
||||||
@@ -83,7 +83,7 @@ func (w *wsApi) WebsocketHandle(ctx *gin.Context) {
|
|||||||
conn.Close()
|
conn.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *wsApi) startWsConnect(conn *websocket.Conn, proc service.Process, write bool) {
|
func (w *wsApi) startWsConnect(conn *websocket.Conn, proc logic.Process, write bool) {
|
||||||
log.Logger.Debugw("ws读取线程已启动")
|
log.Logger.Debugw("ws读取线程已启动")
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"reflect"
|
"reflect"
|
||||||
@@ -9,13 +9,13 @@ import (
|
|||||||
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
type configService struct{}
|
type configLogic struct{}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ConfigService = new(configService)
|
ConfigLogic = new(configLogic)
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *configService) GetSystemConfiguration() []model.SystemConfigurationVo {
|
func (c *configLogic) GetSystemConfiguration() []model.SystemConfigurationVo {
|
||||||
result := []model.SystemConfigurationVo{}
|
result := []model.SystemConfigurationVo{}
|
||||||
typeElem := reflect.TypeOf(config.CF).Elem()
|
typeElem := reflect.TypeOf(config.CF).Elem()
|
||||||
valueElem := reflect.ValueOf(config.CF).Elem()
|
valueElem := reflect.ValueOf(config.CF).Elem()
|
||||||
@@ -49,7 +49,7 @@ func (c *configService) GetSystemConfiguration() []model.SystemConfigurationVo {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *configService) SetSystemConfiguration(kv map[string]string) error {
|
func (c *configLogic) SetSystemConfiguration(kv map[string]string) error {
|
||||||
typeElem := reflect.TypeOf(config.CF).Elem()
|
typeElem := reflect.TypeOf(config.CF).Elem()
|
||||||
valueElem := reflect.ValueOf(config.CF).Elem()
|
valueElem := reflect.ValueOf(config.CF).Elem()
|
||||||
for i := 0; i < typeElem.NumField(); i++ {
|
for i := 0; i < typeElem.NumField(); i++ {
|
||||||
@@ -96,7 +96,7 @@ func (c *configService) SetSystemConfiguration(kv map[string]string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// reset system config to default
|
// reset system config to default
|
||||||
func (c *configService) ResetSystemConfiguration() error {
|
func (c *configLogic) ResetSystemConfiguration() error {
|
||||||
typeElem := reflect.TypeOf(config.CF).Elem()
|
typeElem := reflect.TypeOf(config.CF).Elem()
|
||||||
valueElem := reflect.ValueOf(config.CF).Elem()
|
valueElem := reflect.ValueOf(config.CF).Elem()
|
||||||
for i := 0; i < typeElem.NumField(); i++ {
|
for i := 0; i < typeElem.NumField(); i++ {
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@@ -13,22 +13,22 @@ import (
|
|||||||
"github.com/olivere/elastic/v7"
|
"github.com/olivere/elastic/v7"
|
||||||
)
|
)
|
||||||
|
|
||||||
type esService struct {
|
type esLogic struct {
|
||||||
esClient *elastic.Client
|
esClient *elastic.Client
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
EsService = new(esService)
|
EsLogic = new(esLogic)
|
||||||
)
|
)
|
||||||
|
|
||||||
func (e *esService) InitEs() bool {
|
func (e *esLogic) InitEs() bool {
|
||||||
if !config.CF.EsEnable {
|
if !config.CF.EsEnable {
|
||||||
log.Logger.Debug("不使用es")
|
log.Logger.Debug("不使用es")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
EsService.esClient, err = elastic.NewClient(
|
EsLogic.esClient, err = elastic.NewClient(
|
||||||
elastic.SetURL(config.CF.EsUrl),
|
elastic.SetURL(config.CF.EsUrl),
|
||||||
elastic.SetBasicAuth(config.CF.EsUsername, config.CF.EsPassword),
|
elastic.SetBasicAuth(config.CF.EsUsername, config.CF.EsPassword),
|
||||||
elastic.SetSniff(false),
|
elastic.SetSniff(false),
|
||||||
@@ -38,11 +38,11 @@ func (e *esService) InitEs() bool {
|
|||||||
log.Logger.Warnw("Failed to connect to es", "err", err)
|
log.Logger.Warnw("Failed to connect to es", "err", err)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
EsService.CreateIndexIfNotExists(config.CF.EsIndex)
|
EsLogic.CreateIndexIfNotExists(config.CF.EsIndex)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *esService) Insert(logContent string, processName string, using string, ts int64) {
|
func (e *esLogic) Insert(logContent string, processName string, using string, ts int64) {
|
||||||
data := model.ProcessLog{
|
data := model.ProcessLog{
|
||||||
Log: logContent,
|
Log: logContent,
|
||||||
Name: processName,
|
Name: processName,
|
||||||
@@ -55,7 +55,7 @@ func (e *esService) Insert(logContent string, processName string, using string,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *esService) CreateIndexIfNotExists(index string) error {
|
func (e *esLogic) CreateIndexIfNotExists(index string) error {
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
exists, err := e.esClient.IndexExists(index).Do(ctx)
|
exists, err := e.esClient.IndexExists(index).Do(ctx)
|
||||||
@@ -76,7 +76,7 @@ func (e *esService) CreateIndexIfNotExists(index string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *esService) Search(req model.GetLogReq, filterProcessName ...string) model.LogResp {
|
func (e *esLogic) Search(req model.GetLogReq, filterProcessName ...string) model.LogResp {
|
||||||
// 检查 req 是否为 nil
|
// 检查 req 是否为 nil
|
||||||
if req.Page.From < 0 || req.Page.Size <= 0 {
|
if req.Page.From < 0 || req.Page.Size <= 0 {
|
||||||
log.Logger.Error("无效的分页请求参数")
|
log.Logger.Error("无效的分页请求参数")
|
||||||
@@ -144,7 +144,7 @@ func (e *esService) Search(req model.GetLogReq, filterProcessName ...string) mod
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 通过反射得到mapping
|
// 通过反射得到mapping
|
||||||
func (e *esService) structToJSON() string {
|
func (e *esLogic) structToJSON() string {
|
||||||
typ := reflect.TypeOf(model.ProcessLog{})
|
typ := reflect.TypeOf(model.ProcessLog{})
|
||||||
properties := make(map[string]map[string]string)
|
properties := make(map[string]map[string]string)
|
||||||
for i := 0; i < typ.NumField(); i++ {
|
for i := 0; i < typ.NumField(); i++ {
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
@@ -10,11 +10,11 @@ import (
|
|||||||
"github.com/lzh-1625/go_process_manager/log"
|
"github.com/lzh-1625/go_process_manager/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
type fileService struct{}
|
type fileLogic struct{}
|
||||||
|
|
||||||
var FileService = new(fileService)
|
var FileLogic = new(fileLogic)
|
||||||
|
|
||||||
func (f *fileService) ReadFileFromPath(path string) (result []byte, err error) {
|
func (f *fileLogic) ReadFileFromPath(path string) (result []byte, err error) {
|
||||||
fi, err := os.Open(path)
|
fi, err := os.Open(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
@@ -36,7 +36,7 @@ func (f *fileService) ReadFileFromPath(path string) (result []byte, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fileService) UpdateFileData(filePath string, file io.Reader, size int64) error {
|
func (f *fileLogic) UpdateFileData(filePath string, file io.Reader, size int64) error {
|
||||||
if size := float64(size) / 1e6; size > config.CF.FileSizeLimit {
|
if size := float64(size) / 1e6; size > config.CF.FileSizeLimit {
|
||||||
return fmt.Errorf("写入数据大小%vMB,超过%vMB限制", size, config.CF.FileSizeLimit)
|
return fmt.Errorf("写入数据大小%vMB,超过%vMB限制", size, config.CF.FileSizeLimit)
|
||||||
}
|
}
|
||||||
@@ -52,7 +52,7 @@ func (f *fileService) UpdateFileData(filePath string, file io.Reader, size int64
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fileService) GetFileAndDirByPath(srcPath string) []model.FileStruct {
|
func (f *fileLogic) GetFileAndDirByPath(srcPath string) []model.FileStruct {
|
||||||
result := []model.FileStruct{}
|
result := []model.FileStruct{}
|
||||||
files, err := os.ReadDir(srcPath)
|
files, err := os.ReadDir(srcPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -67,11 +67,11 @@ func (f *fileService) GetFileAndDirByPath(srcPath string) []model.FileStruct {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fileService) CreateNewDir(path string, name string) error {
|
func (f *fileLogic) CreateNewDir(path string, name string) error {
|
||||||
_, err := os.Create(path + name)
|
_, err := os.Create(path + name)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fileService) CreateNewFile(path string, name string) error {
|
func (f *fileLogic) CreateNewFile(path string, name string) error {
|
||||||
return os.MkdirAll(path+name, os.ModeDir)
|
return os.MkdirAll(path+name, os.ModeDir)
|
||||||
}
|
}
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
@@ -26,7 +26,7 @@ func InitLogHandle() {
|
|||||||
|
|
||||||
func (l *loghandler) AddLog(data model.ProcessLog) {
|
func (l *loghandler) AddLog(data model.ProcessLog) {
|
||||||
if err := l.antsPool.Submit(func() {
|
if err := l.antsPool.Submit(func() {
|
||||||
LogServiceImpl.Insert(data.Log, data.Name, data.Using, data.Time)
|
LogLogicImpl.Insert(data.Log, data.Name, data.Using, data.Time)
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
log.Logger.Warnw("协程池添加任务失败", "err", err, "当前运行数量", l.antsPool.Running())
|
log.Logger.Warnw("协程池添加任务失败", "err", err, "当前运行数量", l.antsPool.Running())
|
||||||
}
|
}
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/lzh-1625/go_process_manager/config"
|
"github.com/lzh-1625/go_process_manager/config"
|
||||||
@@ -6,18 +6,18 @@ import (
|
|||||||
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
||||||
)
|
)
|
||||||
|
|
||||||
type LogService interface {
|
type LogLogic interface {
|
||||||
Search(req model.GetLogReq, filterProcessName ...string) model.LogResp
|
Search(req model.GetLogReq, filterProcessName ...string) model.LogResp
|
||||||
Insert(log string, processName string, using string, ts int64)
|
Insert(log string, processName string, using string, ts int64)
|
||||||
}
|
}
|
||||||
|
|
||||||
var LogServiceImpl LogService
|
var LogLogicImpl LogLogic
|
||||||
|
|
||||||
func InitLog() {
|
func InitLog() {
|
||||||
if config.CF.EsEnable {
|
if config.CF.EsEnable {
|
||||||
LogServiceImpl = LogEs
|
LogLogicImpl = LogEs
|
||||||
} else {
|
} else {
|
||||||
LogServiceImpl = LogSqlite
|
LogLogicImpl = LogSqlite
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,9 +48,9 @@ type logEs struct{}
|
|||||||
var LogEs = new(logEs)
|
var LogEs = new(logEs)
|
||||||
|
|
||||||
func (l *logEs) Search(req model.GetLogReq, filterProcessName ...string) model.LogResp {
|
func (l *logEs) Search(req model.GetLogReq, filterProcessName ...string) model.LogResp {
|
||||||
return EsService.Search(req, filterProcessName...)
|
return EsLogic.Search(req, filterProcessName...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *logEs) Insert(log string, processName string, using string, ts int64) {
|
func (l *logEs) Insert(log string, processName string, using string, ts int64) {
|
||||||
EsService.Insert(log, processName, using, ts)
|
EsLogic.Insert(log, processName, using, ts)
|
||||||
}
|
}
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
@@ -151,7 +151,7 @@ func (p *ProcessBase) SetState(state constants.ProcessState, fn ...func() bool)
|
|||||||
}
|
}
|
||||||
p.State.State = state
|
p.State.State = state
|
||||||
middle.ProcessWaitCond.Trigger()
|
middle.ProcessWaitCond.Trigger()
|
||||||
go TaskService.RunTaskByTriggerEvent(p.Name, state)
|
go TaskLogic.RunTaskByTriggerEvent(p.Name, state)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,7 +237,7 @@ func (p *ProcessBase) push(message string) {
|
|||||||
"{$message}": message,
|
"{$message}": message,
|
||||||
"{$status}": strconv.Itoa(int(p.State.State)),
|
"{$status}": strconv.Itoa(int(p.State.State)),
|
||||||
}
|
}
|
||||||
PushService.Push(p.Config.PushIds, messagePlaceholders)
|
PushLogic.Push(p.Config.PushIds, messagePlaceholders)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
@@ -13,19 +13,19 @@ import (
|
|||||||
"github.com/lzh-1625/go_process_manager/utils"
|
"github.com/lzh-1625/go_process_manager/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
type processCtlService struct {
|
type processCtlLogic struct {
|
||||||
processMap sync.Map
|
processMap sync.Map
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ProcessCtlService = new(processCtlService)
|
ProcessCtlLogic = new(processCtlLogic)
|
||||||
)
|
)
|
||||||
|
|
||||||
func (p *processCtlService) AddProcess(uuid int, process *ProcessBase) {
|
func (p *processCtlLogic) AddProcess(uuid int, process *ProcessBase) {
|
||||||
p.processMap.Store(uuid, process)
|
p.processMap.Store(uuid, process)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) KillProcess(uuid int) error {
|
func (p *processCtlLogic) KillProcess(uuid int) error {
|
||||||
value, ok := p.processMap.Load(uuid)
|
value, ok := p.processMap.Load(uuid)
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("进程不存在")
|
return errors.New("进程不存在")
|
||||||
@@ -41,7 +41,7 @@ func (p *processCtlService) KillProcess(uuid int) error {
|
|||||||
return result.Kill()
|
return result.Kill()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) GetProcess(uuid int) (*ProcessBase, error) {
|
func (p *processCtlLogic) GetProcess(uuid int) (*ProcessBase, error) {
|
||||||
process, ok := p.processMap.Load(uuid)
|
process, ok := p.processMap.Load(uuid)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, errors.New("进程获取失败")
|
return nil, errors.New("进程获取失败")
|
||||||
@@ -54,7 +54,7 @@ func (p *processCtlService) GetProcess(uuid int) (*ProcessBase, error) {
|
|||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) KillAllProcess() {
|
func (p *processCtlLogic) KillAllProcess() {
|
||||||
wg := sync.WaitGroup{}
|
wg := sync.WaitGroup{}
|
||||||
p.processMap.Range(func(key, value any) bool {
|
p.processMap.Range(func(key, value any) bool {
|
||||||
process := value.(*ProcessBase)
|
process := value.(*ProcessBase)
|
||||||
@@ -72,7 +72,7 @@ func (p *processCtlService) KillAllProcess() {
|
|||||||
wg.Wait()
|
wg.Wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) KillAllProcessByUserName(userName string) {
|
func (p *processCtlLogic) KillAllProcessByUserName(userName string) {
|
||||||
stopPermissionProcess := repository.PermissionRepository.GetProcessNameByPermission(userName, constants.OPERATION_STOP)
|
stopPermissionProcess := repository.PermissionRepository.GetProcessNameByPermission(userName, constants.OPERATION_STOP)
|
||||||
wg := sync.WaitGroup{}
|
wg := sync.WaitGroup{}
|
||||||
p.processMap.Range(func(key, value any) bool {
|
p.processMap.Range(func(key, value any) bool {
|
||||||
@@ -90,21 +90,21 @@ func (p *processCtlService) KillAllProcessByUserName(userName string) {
|
|||||||
wg.Wait()
|
wg.Wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) DeleteProcess(uuid int) {
|
func (p *processCtlLogic) DeleteProcess(uuid int) {
|
||||||
p.processMap.Delete(uuid)
|
p.processMap.Delete(uuid)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) GetProcessList() []model.ProcessInfo {
|
func (p *processCtlLogic) GetProcessList() []model.ProcessInfo {
|
||||||
processConfiglist := repository.ProcessRepository.GetAllProcessConfig()
|
processConfiglist := repository.ProcessRepository.GetAllProcessConfig()
|
||||||
return p.getProcessInfoList(processConfiglist)
|
return p.getProcessInfoList(processConfiglist)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) GetProcessListByUser(username string) []model.ProcessInfo {
|
func (p *processCtlLogic) GetProcessListByUser(username string) []model.ProcessInfo {
|
||||||
processConfiglist := repository.ProcessRepository.GetProcessConfigByUser(username)
|
processConfiglist := repository.ProcessRepository.GetProcessConfigByUser(username)
|
||||||
return p.getProcessInfoList(processConfiglist)
|
return p.getProcessInfoList(processConfiglist)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) getProcessInfoList(processConfiglist []model.Process) []model.ProcessInfo {
|
func (p *processCtlLogic) getProcessInfoList(processConfiglist []model.Process) []model.ProcessInfo {
|
||||||
processInfoList := []model.ProcessInfo{}
|
processInfoList := []model.ProcessInfo{}
|
||||||
for _, v := range processConfiglist {
|
for _, v := range processConfiglist {
|
||||||
pi := model.ProcessInfo{
|
pi := model.ProcessInfo{
|
||||||
@@ -130,7 +130,7 @@ func (p *processCtlService) getProcessInfoList(processConfiglist []model.Process
|
|||||||
return processInfoList
|
return processInfoList
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) ProcessStartAll() {
|
func (p *processCtlLogic) ProcessStartAll() {
|
||||||
p.processMap.Range(func(key, value any) bool {
|
p.processMap.Range(func(key, value any) bool {
|
||||||
process := value.(*ProcessBase)
|
process := value.(*ProcessBase)
|
||||||
err := process.Start()
|
err := process.Start()
|
||||||
@@ -141,7 +141,7 @@ func (p *processCtlService) ProcessStartAll() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) RunPrcessById(id int) (*ProcessBase, error) {
|
func (p *processCtlLogic) RunPrcessById(id int) (*ProcessBase, error) {
|
||||||
config := repository.ProcessRepository.GetProcessConfigById(id)
|
config := repository.ProcessRepository.GetProcessConfigById(id)
|
||||||
proc, err := p.RunNewProcess(config)
|
proc, err := p.RunNewProcess(config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -152,7 +152,7 @@ func (p *processCtlService) RunPrcessById(id int) (*ProcessBase, error) {
|
|||||||
return proc, nil
|
return proc, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) ProcessInit() {
|
func (p *processCtlLogic) ProcessInit() {
|
||||||
config := repository.ProcessRepository.GetAllProcessConfig()
|
config := repository.ProcessRepository.GetAllProcessConfig()
|
||||||
for _, v := range config {
|
for _, v := range config {
|
||||||
|
|
||||||
@@ -172,7 +172,7 @@ func (p *processCtlService) ProcessInit() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) ProcesStartAllByUsername(userName string) {
|
func (p *processCtlLogic) ProcesStartAllByUsername(userName string) {
|
||||||
startPermissionProcess := repository.PermissionRepository.GetProcessNameByPermission(userName, constants.OPERATION_START)
|
startPermissionProcess := repository.PermissionRepository.GetProcessNameByPermission(userName, constants.OPERATION_START)
|
||||||
p.processMap.Range(func(key, value any) bool {
|
p.processMap.Range(func(key, value any) bool {
|
||||||
process := value.(*ProcessBase)
|
process := value.(*ProcessBase)
|
||||||
@@ -187,7 +187,7 @@ func (p *processCtlService) ProcesStartAllByUsername(userName string) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) UpdateProcessConfig(config model.Process) error {
|
func (p *processCtlLogic) UpdateProcessConfig(config model.Process) error {
|
||||||
process, ok := p.processMap.Load(config.Uuid)
|
process, ok := p.processMap.Load(config.Uuid)
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("进程获取失败")
|
return errors.New("进程获取失败")
|
||||||
@@ -213,7 +213,7 @@ func (p *processCtlService) UpdateProcessConfig(config model.Process) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) RunNewProcess(config model.Process) (proc *ProcessBase, err error) {
|
func (p *processCtlLogic) RunNewProcess(config model.Process) (proc *ProcessBase, err error) {
|
||||||
switch config.TermType {
|
switch config.TermType {
|
||||||
case constants.TERMINAL_STD:
|
case constants.TERMINAL_STD:
|
||||||
proc, err = RunNewProcessStd(config)
|
proc, err = RunNewProcessStd(config)
|
||||||
@@ -225,7 +225,7 @@ func (p *processCtlService) RunNewProcess(config model.Process) (proc *ProcessBa
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *processCtlService) NewProcess(config model.Process) (proc *ProcessBase, err error) {
|
func (p *processCtlLogic) NewProcess(config model.Process) (proc *ProcessBase, err error) {
|
||||||
switch config.TermType {
|
switch config.TermType {
|
||||||
case constants.TERMINAL_STD:
|
case constants.TERMINAL_STD:
|
||||||
proc = NewProcessStd(config)
|
proc = NewProcessStd(config)
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
@@ -9,11 +9,11 @@ import (
|
|||||||
"github.com/levigross/grequests"
|
"github.com/levigross/grequests"
|
||||||
)
|
)
|
||||||
|
|
||||||
type pushService struct{}
|
type pushLogic struct{}
|
||||||
|
|
||||||
var PushService = new(pushService)
|
var PushLogic = new(pushLogic)
|
||||||
|
|
||||||
func (p *pushService) Push(ids []int, placeholders map[string]string) {
|
func (p *pushLogic) Push(ids []int, placeholders map[string]string) {
|
||||||
pl := repository.PushRepository.GetPushConfigByIds(ids)
|
pl := repository.PushRepository.GetPushConfigByIds(ids)
|
||||||
for _, v := range pl {
|
for _, v := range pl {
|
||||||
if v.Enable {
|
if v.Enable {
|
||||||
@@ -29,7 +29,7 @@ func (p *pushService) Push(ids []int, placeholders map[string]string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *pushService) getReplaceMessage(placeholders map[string]string, message string) string {
|
func (p *pushLogic) getReplaceMessage(placeholders map[string]string, message string) string {
|
||||||
for k, v := range placeholders {
|
for k, v := range placeholders {
|
||||||
message = strings.ReplaceAll(message, k, v)
|
message = strings.ReplaceAll(message, k, v)
|
||||||
}
|
}
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@@ -12,7 +12,7 @@ import (
|
|||||||
"github.com/lzh-1625/go_process_manager/log"
|
"github.com/lzh-1625/go_process_manager/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (t *taskService) RunTaskById(id int) error {
|
func (t *taskLogic) RunTaskById(id int) error {
|
||||||
v, ok := t.taskJobMap.Load(id)
|
v, ok := t.taskJobMap.Load(id)
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("don't exist task id")
|
return errors.New("don't exist task id")
|
||||||
@@ -28,7 +28,7 @@ func (t *taskService) RunTaskById(id int) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskService) run(ctx context.Context, data *model.TaskJob) {
|
func (t *taskLogic) run(ctx context.Context, data *model.TaskJob) {
|
||||||
data.Running = true
|
data.Running = true
|
||||||
middle.TaskWaitCond.Trigger()
|
middle.TaskWaitCond.Trigger()
|
||||||
defer func() {
|
defer func() {
|
||||||
@@ -42,7 +42,7 @@ func (t *taskService) run(ctx context.Context, data *model.TaskJob) {
|
|||||||
if data.Task.Condition == constants.PASS {
|
if data.Task.Condition == constants.PASS {
|
||||||
ok = true
|
ok = true
|
||||||
} else {
|
} else {
|
||||||
proc, err := ProcessCtlService.GetProcess(data.Task.OperationTarget)
|
proc, err := ProcessCtlLogic.GetProcess(data.Task.OperationTarget)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -53,7 +53,7 @@ func (t *taskService) run(ctx context.Context, data *model.TaskJob) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
proc, err := ProcessCtlService.GetProcess(data.Task.OperationTarget)
|
proc, err := ProcessCtlLogic.GetProcess(data.Task.OperationTarget)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Logger.Debugw("不存在该进程,结束任务")
|
log.Logger.Debugw("不存在该进程,结束任务")
|
||||||
return
|
return
|
@@ -1,4 +1,4 @@
|
|||||||
package service
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@@ -15,13 +15,13 @@ import (
|
|||||||
"github.com/robfig/cron/v3"
|
"github.com/robfig/cron/v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
type taskService struct {
|
type taskLogic struct {
|
||||||
taskJobMap sync.Map
|
taskJobMap sync.Map
|
||||||
}
|
}
|
||||||
|
|
||||||
var TaskService taskService
|
var TaskLogic taskLogic
|
||||||
|
|
||||||
func (t *taskService) InitTaskJob() {
|
func (t *taskLogic) InitTaskJob() {
|
||||||
for _, v := range repository.TaskRepository.GetAllTask() {
|
for _, v := range repository.TaskRepository.GetAllTask() {
|
||||||
tj := &model.TaskJob{
|
tj := &model.TaskJob{
|
||||||
Task: &v,
|
Task: &v,
|
||||||
@@ -43,7 +43,7 @@ func (t *taskService) InitTaskJob() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskService) cronHandle(data *model.TaskJob) func() {
|
func (t *taskLogic) cronHandle(data *model.TaskJob) func() {
|
||||||
return func() {
|
return func() {
|
||||||
log.Logger.AddAdditionalInfo("id", data.Task.Id)
|
log.Logger.AddAdditionalInfo("id", data.Task.Id)
|
||||||
defer log.Logger.DeleteAdditionalInfo(1)
|
defer log.Logger.DeleteAdditionalInfo(1)
|
||||||
@@ -60,7 +60,7 @@ func (t *taskService) cronHandle(data *model.TaskJob) func() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskService) StopTaskJob(id int) error {
|
func (t *taskLogic) StopTaskJob(id int) error {
|
||||||
c, ok := t.taskJobMap.Load(id)
|
c, ok := t.taskJobMap.Load(id)
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("id不存在")
|
return errors.New("id不存在")
|
||||||
@@ -72,7 +72,7 @@ func (t *taskService) StopTaskJob(id int) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskService) StartTaskJob(id int) error {
|
func (t *taskLogic) StartTaskJob(id int) error {
|
||||||
c, ok := t.taskJobMap.Load(id)
|
c, ok := t.taskJobMap.Load(id)
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("id不存在")
|
return errors.New("id不存在")
|
||||||
@@ -82,7 +82,7 @@ func (t *taskService) StartTaskJob(id int) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskService) GetAllTaskJob() []model.TaskVo {
|
func (t *taskLogic) GetAllTaskJob() []model.TaskVo {
|
||||||
result := repository.TaskRepository.GetAllTaskWithProcessName()
|
result := repository.TaskRepository.GetAllTaskWithProcessName()
|
||||||
for i, v := range result {
|
for i, v := range result {
|
||||||
item, ok := t.taskJobMap.Load(v.Id)
|
item, ok := t.taskJobMap.Load(v.Id)
|
||||||
@@ -97,7 +97,7 @@ func (t *taskService) GetAllTaskJob() []model.TaskVo {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskService) DeleteTask(id int) (err error) {
|
func (t *taskLogic) DeleteTask(id int) (err error) {
|
||||||
t.StopTaskJob(id)
|
t.StopTaskJob(id)
|
||||||
t.EditTaskEnable(id, false)
|
t.EditTaskEnable(id, false)
|
||||||
t.taskJobMap.Delete(id)
|
t.taskJobMap.Delete(id)
|
||||||
@@ -108,7 +108,7 @@ func (t *taskService) DeleteTask(id int) (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskService) CreateTask(data model.Task) error {
|
func (t *taskLogic) CreateTask(data model.Task) error {
|
||||||
tj := &model.TaskJob{
|
tj := &model.TaskJob{
|
||||||
Task: &data,
|
Task: &data,
|
||||||
StartTime: time.Now(),
|
StartTime: time.Now(),
|
||||||
@@ -132,7 +132,7 @@ func (t *taskService) CreateTask(data model.Task) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskService) EditTask(data model.Task) error {
|
func (t *taskLogic) EditTask(data model.Task) error {
|
||||||
if data.Cron != nil {
|
if data.Cron != nil {
|
||||||
if _, err := cron.ParseStandard(*data.Cron); err != nil {
|
if _, err := cron.ParseStandard(*data.Cron); err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -147,7 +147,7 @@ func (t *taskService) EditTask(data model.Task) error {
|
|||||||
return repository.TaskRepository.EditTask(data)
|
return repository.TaskRepository.EditTask(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskService) EditTaskEnable(id int, status bool) error {
|
func (t *taskLogic) EditTaskEnable(id int, status bool) error {
|
||||||
v, ok := t.taskJobMap.Load(id)
|
v, ok := t.taskJobMap.Load(id)
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("don't exist this task id")
|
return errors.New("don't exist this task id")
|
||||||
@@ -165,7 +165,7 @@ func (t *taskService) EditTaskEnable(id int, status bool) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskService) CreateApiKey(id int) error {
|
func (t *taskLogic) CreateApiKey(id int) error {
|
||||||
data, err := repository.TaskRepository.GetTaskById(id)
|
data, err := repository.TaskRepository.GetTaskById(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -176,7 +176,7 @@ func (t *taskService) CreateApiKey(id int) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskService) RunTaskByKey(key string) error {
|
func (t *taskLogic) RunTaskByKey(key string) error {
|
||||||
data, err := repository.TaskRepository.GetTaskByKey(key)
|
data, err := repository.TaskRepository.GetTaskByKey(key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.New("don't exist key")
|
return errors.New("don't exist key")
|
||||||
@@ -185,7 +185,7 @@ func (t *taskService) RunTaskByKey(key string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *taskService) RunTaskByTriggerEvent(processName string, event constants.ProcessState) {
|
func (t *taskLogic) RunTaskByTriggerEvent(processName string, event constants.ProcessState) {
|
||||||
taskList := repository.TaskRepository.GetTriggerTask(processName, event)
|
taskList := repository.TaskRepository.GetTriggerTask(processName, event)
|
||||||
if len(taskList) == 0 {
|
if len(taskList) == 0 {
|
||||||
return
|
return
|
@@ -7,7 +7,7 @@ import (
|
|||||||
|
|
||||||
"github.com/lzh-1625/go_process_manager/config"
|
"github.com/lzh-1625/go_process_manager/config"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/constants"
|
"github.com/lzh-1625/go_process_manager/internal/app/constants"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/service"
|
"github.com/lzh-1625/go_process_manager/internal/app/logic"
|
||||||
"github.com/lzh-1625/go_process_manager/log"
|
"github.com/lzh-1625/go_process_manager/log"
|
||||||
"github.com/lzh-1625/go_process_manager/utils"
|
"github.com/lzh-1625/go_process_manager/utils"
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ func (t *tui) TermuiInit() {
|
|||||||
func (t *tui) drawProcessList() {
|
func (t *tui) drawProcessList() {
|
||||||
t.app = tview.NewApplication()
|
t.app = tview.NewApplication()
|
||||||
list := tview.NewList()
|
list := tview.NewList()
|
||||||
for i, v := range service.ProcessCtlService.GetProcessList() {
|
for i, v := range logic.ProcessCtlLogic.GetProcessList() {
|
||||||
if i >= 'r' {
|
if i >= 'r' {
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
@@ -67,7 +67,7 @@ func (t *tui) drawProcessList() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *tui) teminal(uuid int) {
|
func (t *tui) teminal(uuid int) {
|
||||||
p, err := service.ProcessCtlService.GetProcess(uuid)
|
p, err := logic.ProcessCtlLogic.GetProcess(uuid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Logger.Error("不存在uuid", "uuid", uuid)
|
log.Logger.Error("不存在uuid", "uuid", uuid)
|
||||||
}
|
}
|
||||||
@@ -89,7 +89,7 @@ func (t *tui) teminal(uuid int) {
|
|||||||
log.Logger.Info("tui quit")
|
log.Logger.Info("tui quit")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *tui) startConnect(p service.Process, ctx context.Context, cancel context.CancelFunc) {
|
func (t *tui) startConnect(p logic.Process, ctx context.Context, cancel context.CancelFunc) {
|
||||||
switch p.Type() {
|
switch p.Type() {
|
||||||
case constants.TERMINAL_PTY:
|
case constants.TERMINAL_PTY:
|
||||||
{
|
{
|
||||||
@@ -102,7 +102,7 @@ func (t *tui) startConnect(p service.Process, ctx context.Context, cancel contex
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *tui) ptyConnect(p service.Process, ctx context.Context, cancel context.CancelFunc) {
|
func (t *tui) ptyConnect(p logic.Process, ctx context.Context, cancel context.CancelFunc) {
|
||||||
buf := make([]byte, 1024)
|
buf := make([]byte, 1024)
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
@@ -124,7 +124,7 @@ func (t *tui) ptyConnect(p service.Process, ctx context.Context, cancel context.
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *tui) stdConnect(p service.Process, ctx context.Context, cancel context.CancelFunc) {
|
func (t *tui) stdConnect(p logic.Process, ctx context.Context, cancel context.CancelFunc) {
|
||||||
buf := make([]byte, 1024)
|
buf := make([]byte, 1024)
|
||||||
var line string
|
var line string
|
||||||
for {
|
for {
|
||||||
|
@@ -6,8 +6,8 @@ import (
|
|||||||
|
|
||||||
_ "github.com/lzh-1625/go_process_manager/boot"
|
_ "github.com/lzh-1625/go_process_manager/boot"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/constants"
|
"github.com/lzh-1625/go_process_manager/internal/app/constants"
|
||||||
|
"github.com/lzh-1625/go_process_manager/internal/app/logic"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/model"
|
"github.com/lzh-1625/go_process_manager/internal/app/model"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/service"
|
|
||||||
|
|
||||||
"github.com/containerd/cgroups/v3/cgroup1"
|
"github.com/containerd/cgroups/v3/cgroup1"
|
||||||
"github.com/opencontainers/runtime-spec/specs-go"
|
"github.com/opencontainers/runtime-spec/specs-go"
|
||||||
@@ -28,7 +28,7 @@ func TestCgroup(t *testing.T) {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
defer control.Delete()
|
defer control.Delete()
|
||||||
p, err := service.ProcessCtlService.RunNewProcess(model.Process{
|
p, err := logic.ProcessCtlLogic.RunNewProcess(model.Process{
|
||||||
Name: "test",
|
Name: "test",
|
||||||
Cmd: "bash",
|
Cmd: "bash",
|
||||||
Cwd: `/root`,
|
Cwd: `/root`,
|
||||||
|
Reference in New Issue
Block a user