package cmdline import ( "fmt" "gitlink.org.cn/cloudream/common/pkg/cmdtrie" myreflect "gitlink.org.cn/cloudream/common/utils/reflect" agtevt "gitlink.org.cn/cloudream/rabbitmq/message/agent/event" ) var parseAgentEventCmdTrie cmdtrie.StaticCommandTrie[any] = cmdtrie.NewStaticCommandTrie[any]() func AgentPostEvent(ctx CommandContext, nodeID int, args []string) error { ret, err := parseAgentEventCmdTrie.Execute(args, cmdtrie.ExecuteOption{ReplaceEmptyArrayWithNil: true}) if err != nil { return fmt.Errorf("execute parsing event command failed, err: %w", err) } // TODO 支持设置标志 err = ctx.Cmdline.Svc.AgentSvc().PostEvent(nodeID, ret, false, false) if err != nil { return fmt.Errorf("post event to agent failed, err: %w", err) } return nil } func init() { parseAgentEventCmdTrie.MustAdd(agtevt.NewCheckCache, myreflect.TypeNameOf[agtevt.CheckCache]()) parseAgentEventCmdTrie.MustAdd(agtevt.NewCheckState, myreflect.TypeNameOf[agtevt.CheckState]()) parseAgentEventCmdTrie.MustAdd(agtevt.NewCheckStorage, myreflect.TypeNameOf[agtevt.CheckStorage]()) commands.MustAdd(AgentPostEvent, "agent", "event") }