-
Notifications
You must be signed in to change notification settings - Fork 34
/
execItemSource.go
51 lines (43 loc) · 1.05 KB
/
execItemSource.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package apps
import (
"github.com/TeaWeb/code/teaconfigs/agents"
"github.com/TeaWeb/code/teaweb/actions/default/agents/agentutils"
"github.com/iwind/TeaGo/actions"
"github.com/iwind/TeaGo/maps"
)
type ExecItemSourceAction actions.Action
// 立即执行监控项数据源
func (this *ExecItemSourceAction) Run(params struct {
AgentId string
AppId string
ItemId string
}) {
agent := agents.NewAgentConfigFromId(params.AgentId)
if agent == nil {
this.Fail("找不到要操作的Agent")
}
app := agent.FindApp(params.AppId)
if app == nil {
this.Fail("找不到App")
}
item := app.FindItem(params.ItemId)
if item == nil {
this.Fail("找不到Item")
}
// 通知更新
agentutils.PostAgentEvent(agent.Id, agentutils.NewAgentEvent("RUN_ITEM", maps.Map{
"appId": app.Id,
"itemId": params.ItemId,
}))
// 同步
if app.IsSharedWithGroup {
agentutils.SyncAppEvent(agent.Id, agent.GroupIds, app, &agentutils.AgentEvent{
Name: "RUN_ITEM",
Data: maps.Map{
"appId": app.Id,
"itemId": params.ItemId,
},
})
}
this.Success()
}