Files
ProjectOctopus/message_pusher/cmii/ImageSyncMessage.go
2024-06-14 10:37:40 +08:00

75 lines
1.9 KiB
Go
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package cmii
import (
"bytes"
"io.wdd.message_pusher/pusher"
"text/template"
)
type ImageSyncMessage struct {
ImageFullName string `json:"imageFullName"`
ProjectName string `json:"projectName"`
ProjectNameSpace string `json:"projectNameSpace"`
ProjectMasterIP string `json:"projectMasterIP"`
ProjectMasterTopicName string `json:"projectMasterTopicName"`
InnerWorkTopicName string `json:"innerWorkTopicName"`
CurrentProcedure string `json:"currentProcedure"`
IsSyncFinished bool `json:"isSyncFinished"`
}
const imageSyncTemplate = `
{{if .IsSyncFinished}}
镜像更新状态: 成功😍
{{- else }}
镜像更新状态: 失败👿👿👿
{{- end}}
当前步骤: {{.CurrentProcedure}}
更新镜像: {{.ImageFullName}}
项目名称: {{.ProjectName}}
项目空间: {{.ProjectNameSpace}}
项目MasterIP: {{.ProjectMasterIP}}
项目Master名称: {{.ProjectMasterTopicName}}
中转节点名称: {{.InnerWorkTopicName}}
`
const ImageSyncTopicName = "imageSync"
var ImageSyncPushOptions = []pusher.PublishOption{
pusher.WithTitle("镜像同步更新"),
pusher.WithPriority("3"),
}
func (d *ImageSyncMessage) ParseTemplate() bytes.Buffer {
// 解析模板
tmpl, err := template.New("imageSyncTemplate").Parse(imageSyncTemplate)
if err != nil {
panic(err)
}
// 应用数据并打印结果
var result bytes.Buffer
err = tmpl.Execute(&result, d)
if err != nil {
panic(err)
}
return result
}
// PublishMessage 使用默认的Client 发布更新的消息
func (d *ImageSyncMessage) PublishMessage() *pusher.Message {
parseTemplate := d.ParseTemplate()
pusher.DefaultPusherClient.ChangeTopicName(ImageSyncTopicName)
result, err := pusher.DefaultPusherClient.PublishDefault(parseTemplate, ImageSyncPushOptions)
if err != nil {
log.ErrorF("[ImageSyncMessage] - message push error %s", err.Error())
return result
}
return result
}