From 868731c95e4bcfaab6baaa7c2e5d7b1ad058803d Mon Sep 17 00:00:00 2001 From: mei Date: Thu, 13 Aug 2026 14:50:08 +0800 Subject: [PATCH] fix(drivers): rainyun run away --- drivers/rainyun/rainyun.go | 5 +++++ drivers/rainyun/runner.go | 12 ++++++++++++ handler/runner/interface.go | 1 + 3 files changed, 18 insertions(+) diff --git a/drivers/rainyun/rainyun.go b/drivers/rainyun/rainyun.go index 3bfc961..f102fff 100644 --- a/drivers/rainyun/rainyun.go +++ b/drivers/rainyun/rainyun.go @@ -3,6 +3,7 @@ package rainyun import ( "context" "fmt" + "strings" "github.com/ssdomei232/goodBaby/internal/retry" "github.com/ssdomei232/goodBaby/model" @@ -117,5 +118,9 @@ func RainyunRunAway(ctx context.Context, rule *model.Rule) error { } } + if len(fails) > 0 { + return fmt.Errorf("%d/%d 台云服务器重装失败: %s", len(fails), total, strings.Join(fails, "; ")) + } + return nil } diff --git a/drivers/rainyun/runner.go b/drivers/rainyun/runner.go index d5ed5eb..1b3a7e4 100644 --- a/drivers/rainyun/runner.go +++ b/drivers/rainyun/runner.go @@ -19,3 +19,15 @@ func (e *RainyunWorkorderExecutor) Execute(ctx context.Context, rule *model.Rule return SendRainyunWorkorderMsg(ctx, rule) } + +// RainyunRunAwayExecutor 雨云跑路执行器 +type RainyunRunAwayExecutor struct{} + +func (e *RainyunRunAwayExecutor) GetType() string { + return "rainyun-runaway" +} + +func (e *RainyunRunAwayExecutor) Execute(ctx context.Context, rule *model.Rule) error { + log.Printf("执行雨云跑路规则: %s", rule.Name) + return RainyunRunAway(ctx, rule) +} diff --git a/handler/runner/interface.go b/handler/runner/interface.go index d5a776f..a59ae25 100644 --- a/handler/runner/interface.go +++ b/handler/runner/interface.go @@ -80,6 +80,7 @@ func InitExecutorRegistry() *ExecutorRegistry { registry.Register(&dingtalk.DingTalkExecutor{}) registry.Register(&fwalert.FwalertExecutor{}) registry.Register(&rainyun.RainyunWorkorderExecutor{}) + registry.Register(&rainyun.RainyunRunAwayExecutor{}) // 未来添加新规则类型时,在这里注册即可 globalExecutorRegistry = registry