Skip to content

Commit 459f129

Browse files
feat: improve yaml template sync audit log detail
Signed-off-by: huanghongbo <huanghongbo@koderover.com>
1 parent 316664e commit 459f129

1 file changed

Lines changed: 35 additions & 1 deletion

File tree

  • pkg/microservice/aslan/core/templatestore/handler

pkg/microservice/aslan/core/templatestore/handler/yaml.go

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@ package handler
1919
import (
2020
"encoding/json"
2121
"fmt"
22+
"strings"
2223

2324
"github.com/gin-gonic/gin"
2425
"github.com/koderover/zadig/v2/pkg/types"
26+
"go.uber.org/zap"
2527

2628
commonmodels "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/repository/models"
2729
"github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/service/template"
@@ -271,7 +273,8 @@ func SyncYamlTemplateReference(c *gin.Context) {
271273
return
272274
}
273275

274-
internalhandler.InsertOperationLog(c, ctx.UserName, "", "同步", "模板-YAML", c.Param("id"), c.Param("id"), "", types.RequestBodyTypeJSON, ctx.Logger)
276+
detail, detailEn := buildYamlTemplateSyncLogDetail(c.Param("id"), ctx.Logger)
277+
internalhandler.InsertOperationLog(c, ctx.UserName, "", "同步", "模板-YAML", detail, detailEn, "", types.RequestBodyTypeJSON, ctx.Logger)
275278

276279
// authorization check
277280
if !ctx.Resources.IsSystemAdmin {
@@ -284,6 +287,37 @@ func SyncYamlTemplateReference(c *gin.Context) {
284287
ctx.RespErr = templateservice.SyncYamlTemplateReference(ctx.UserName, c.Param("id"), ctx.Logger)
285288
}
286289

290+
func buildYamlTemplateSyncLogDetail(templateID string, logger *zap.SugaredLogger) (string, string) {
291+
templateDetail, err := templateservice.GetYamlTemplateDetail(templateID, logger)
292+
if err != nil {
293+
logger.Warnf("failed to get yaml template detail for operation log, templateID: %s, err: %v", templateID, err)
294+
return templateID, templateID
295+
}
296+
297+
references, err := templateservice.GetYamlTemplateReference(templateID, logger)
298+
if err != nil {
299+
logger.Warnf("failed to get yaml template references for operation log, templateID: %s, err: %v", templateID, err)
300+
return fmt.Sprintf("模板名称:%s", templateDetail.Name), fmt.Sprintf("Template Name: %s", templateDetail.Name)
301+
}
302+
303+
serviceRefs := make([]string, 0, len(references))
304+
serviceRefsEn := make([]string, 0, len(references))
305+
for _, reference := range references {
306+
if reference == nil {
307+
continue
308+
}
309+
serviceRefs = append(serviceRefs, fmt.Sprintf("%s/%s", reference.ProjectName, reference.ServiceName))
310+
serviceRefsEn = append(serviceRefsEn, fmt.Sprintf("%s/%s", reference.ProjectName, reference.ServiceName))
311+
}
312+
313+
if len(serviceRefs) == 0 {
314+
return fmt.Sprintf("模板名称:%s", templateDetail.Name), fmt.Sprintf("Template Name: %s", templateDetail.Name)
315+
}
316+
317+
return fmt.Sprintf("模板名称:%s; 影响服务:%s", templateDetail.Name, strings.Join(serviceRefs, ", ")),
318+
fmt.Sprintf("Template Name: %s; Affected Services: %s", templateDetail.Name, strings.Join(serviceRefsEn, ", "))
319+
}
320+
287321
type getYamlTemplateVariablesReq struct {
288322
Content string `json:"content" binding:"required"`
289323
VariableYaml string `json:"variable_yaml" binding:"required"`

0 commit comments

Comments
 (0)