添加集成run日志脚本记录

This commit is contained in:
junleea 2024-07-06 18:46:55 +08:00
parent baae696b56
commit edf94cbca9
2 changed files with 7 additions and 5 deletions

View File

@ -18,6 +18,7 @@ type CIDRunLog struct {
gorm.Model gorm.Model
CID_id int `gorm:"column:cid_id"` CID_id int `gorm:"column:cid_id"`
Auth_id int `form:"column:auth_id"` Auth_id int `form:"column:auth_id"`
Script string `gorm:"column:script"`
Log string `gorm:"column:log"` Log string `gorm:"column:log"`
Error string `gorm:"column:error"` Error string `gorm:"column:error"`
} }
@ -73,8 +74,8 @@ func UpdateCIDByID(id, auth_id int, name, url, script, token string) bool {
} }
// CreateRunLog,添加执行日志 // CreateRunLog,添加执行日志
func CreateRunLog(cid_id, auth_id int, log, err string) uint { func CreateRunLog(cid_id, auth_id int, script, log, err string) uint {
cidRunLog := CIDRunLog{CID_id: cid_id, Auth_id: auth_id, Log: log, Error: err} cidRunLog := CIDRunLog{CID_id: cid_id, Auth_id: auth_id, Log: log, Error: err, Script: script}
result := DB.Debug().Create(&cidRunLog) result := DB.Debug().Create(&cidRunLog)
if result != nil { if result != nil {
fmt.Println(err) fmt.Println(err)
@ -85,7 +86,7 @@ func CreateRunLog(cid_id, auth_id int, log, err string) uint {
func FindRunLogByAuthID(auth_id int) []CIDRunLog { func FindRunLogByAuthID(auth_id int) []CIDRunLog {
var cidRunLogs []CIDRunLog var cidRunLogs []CIDRunLog
DB.Debug().Where(" auth_id = ?", auth_id).Find(&cidRunLogs).Order("created_at desc") DB.Debug().Where(" auth_id = ?", auth_id).Order("created_at desc").Find(&cidRunLogs)
return cidRunLogs return cidRunLogs
} }

View File

@ -58,6 +58,7 @@ func RunCID(c *gin.Context) {
re := regexp.MustCompile(`(?i)(?:https?://|git@)[^/]+/([^/]+)/([^/]+)(?:\.git)?$`) re := regexp.MustCompile(`(?i)(?:https?://|git@)[^/]+/([^/]+)/([^/]+)(?:\.git)?$`)
matches := re.FindStringSubmatch(cid.Url) matches := re.FindStringSubmatch(cid.Url)
name := matches[2] name := matches[2]
//脚本内容
scriptContent := `#!/bin/bash scriptContent := `#!/bin/bash
TARGET_DIR = ` + proto.CID_BASE_DIR + `/workspace` + name + ` TARGET_DIR = ` + proto.CID_BASE_DIR + `/workspace` + name + `
if [ ! -d $TARGET_DIR ]; then if [ ! -d $TARGET_DIR ]; then
@ -75,7 +76,7 @@ func RunCID(c *gin.Context) {
// 使用bytes.Buffer捕获输出 // 使用bytes.Buffer捕获输出
var out bytes.Buffer var out bytes.Buffer
cmd.Stdout = &out cmd.Stdout = &out
dao.CreateRunLog(req.ID, authID, out.String(), err3.Error()) //添加执行日志 dao.CreateRunLog(req.ID, authID, scriptContent, out.String(), err3.Error()) //添加执行日志
c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": "success"}) c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": "success"})
} }
@ -201,7 +202,7 @@ func CIDCallback(c *gin.Context) {
// 使用bytes.Buffer捕获输出 // 使用bytes.Buffer捕获输出
var out bytes.Buffer var out bytes.Buffer
cmd.Stdout = &out cmd.Stdout = &out
dao.CreateRunLog(cid, res.Auth_id, out.String(), err3.Error()) //添加执行日志 dao.CreateRunLog(cid, res.Auth_id, scriptContent, out.String(), err3.Error()) //添加执行日志
c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": "success"}) c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": "success"})
} else { } else {
c.JSON(200, gin.H{"error": "CID not found by id and token", "code": proto.OperationFailed, "message": "failed"}) c.JSON(200, gin.H{"error": "CID not found by id and token", "code": proto.OperationFailed, "message": "failed"})