Skip to content

Commit 7d439c2

Browse files
feat: improve yaml template sync audit log detail (#4664)
* feat: improve yaml template sync audit log detail Signed-off-by: huanghongbo <huanghongbo@koderover.com> * refactor: format yaml template sync audit log detail Signed-off-by: huanghongbo <huanghongbo@koderover.com> --------- Signed-off-by: huanghongbo <huanghongbo@koderover.com>
1 parent 0312d2f commit 7d439c2

1 file changed

Lines changed: 40 additions & 1 deletion

File tree

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

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

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424

2525
"github.com/gin-gonic/gin"
2626
"github.com/koderover/zadig/v2/pkg/types"
27+
"go.uber.org/zap"
2728

2829
commonmodels "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/repository/models"
2930
"github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/service/template"
@@ -467,7 +468,8 @@ func SyncYamlTemplateReference(c *gin.Context) {
467468
return
468469
}
469470

470-
internalhandler.InsertOperationLog(c, ctx.UserName, "", "同步", "模板-YAML", c.Param("id"), c.Param("id"), "", types.RequestBodyTypeJSON, ctx.Logger)
471+
detail, detailEn := buildYamlTemplateSyncLogDetail(c.Param("id"), ctx.Logger)
472+
internalhandler.InsertOperationLog(c, ctx.UserName, "", "同步", "模板-YAML", detail, detailEn, "", types.RequestBodyTypeJSON, ctx.Logger)
471473

472474
// authorization check
473475
if !ctx.Resources.IsSystemAdmin {
@@ -480,6 +482,43 @@ func SyncYamlTemplateReference(c *gin.Context) {
480482
ctx.RespErr = templateservice.SyncYamlTemplateReference(ctx.UserName, c.Param("id"), ctx.Logger)
481483
}
482484

485+
func buildYamlTemplateSyncLogDetail(templateID string, logger *zap.SugaredLogger) (string, string) {
486+
templateDetail, err := templateservice.GetYamlTemplateDetail(templateID, logger)
487+
if err != nil {
488+
logger.Warnf("failed to get yaml template detail for operation log, templateID: %s, err: %v", templateID, err)
489+
return templateID, templateID
490+
}
491+
492+
references, err := templateservice.GetYamlTemplateReference(templateID, logger)
493+
if err != nil {
494+
logger.Warnf("failed to get yaml template references for operation log, templateID: %s, err: %v", templateID, err)
495+
return fmt.Sprintf("模板名称:%s", templateDetail.Name), fmt.Sprintf("Template Name: %s", templateDetail.Name)
496+
}
497+
498+
serviceRefs := make([]string, 0, len(references))
499+
serviceRefsEn := make([]string, 0, len(references))
500+
for _, reference := range references {
501+
if reference == nil {
502+
continue
503+
}
504+
envTypeCN := "测试"
505+
envTypeEN := "test"
506+
if reference.Production {
507+
envTypeCN = "生产"
508+
envTypeEN = "production"
509+
}
510+
serviceRefs = append(serviceRefs, fmt.Sprintf("%s/%s(%s)", reference.ProjectName, reference.ServiceName, envTypeCN))
511+
serviceRefsEn = append(serviceRefsEn, fmt.Sprintf("%s/%s(%s)", reference.ProjectName, reference.ServiceName, envTypeEN))
512+
}
513+
514+
if len(serviceRefs) == 0 {
515+
return fmt.Sprintf("模板名称:%s", templateDetail.Name), fmt.Sprintf("Template Name: %s", templateDetail.Name)
516+
}
517+
518+
return fmt.Sprintf("模板名称:%s\n影响服务:\n%s", templateDetail.Name, strings.Join(serviceRefs, "\n")),
519+
fmt.Sprintf("Template Name: %s\nAffected Services:\n%s", templateDetail.Name, strings.Join(serviceRefsEn, "\n"))
520+
}
521+
483522
type getYamlTemplateVariablesReq struct {
484523
Content string `json:"content" binding:"required"`
485524
VariableYaml string `json:"variable_yaml" binding:"required"`

0 commit comments

Comments
 (0)