package cmii import ( "bytes" "io.wdd.message_pusher/pusher" "text/template" "wdd.io/agent-common/logger" ) var log = logger.Log type MessageBody struct { Namespace string AppName string ToTag string Replicas string DeployStatus bool } const cmiiUpgradeTemplate = ` {{if .DeployStatus}} 部署状态: 成功😍 {{- else }} 部署状态: 失败👿👿👿 {{- end}} 命名空间: {{.Namespace}} 应用名称: {{.AppName}} 副本数量: {{.Replicas}} 目标版本: {{.ToTag}} ` func (d *MessageBody) ParseCmiiUpgradeTemplate() bytes.Buffer { // 解析模板 tmpl, err := template.New("cmiiUpgradeTemplate").Parse(cmiiUpgradeTemplate) if err != nil { panic(err) } // 应用数据并打印结果 var result bytes.Buffer err = tmpl.Execute(&result, d) if err != nil { panic(err) } return result } var UpdatePushOptions = []pusher.PublishOption{ pusher.WithTitle("更新应用"), pusher.WithPriority("3"), } // DefaultPushUpgradeMessage 使用默认的Client 发布更新的消息 func (d *MessageBody) DefaultPushUpgradeMessage() *pusher.Message { upgradeTemplate := d.ParseCmiiUpgradeTemplate() result, err := pusher.DefaultPusherClient.PublishDefault(upgradeTemplate, UpdatePushOptions) if err != nil { log.ErrorF("[PushCmiiUpgradeMessage] - message push error ! %s", err.Error()) return result } return result }