github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/pkg/dashboard/dashboardexecute/control_hooks_dashboard_event.go (about) 1 package dashboardexecute 2 3 import ( 4 "context" 5 "github.com/turbot/steampipe/pkg/control/controlstatus" 6 "time" 7 8 "github.com/turbot/steampipe/pkg/dashboard/dashboardevents" 9 ) 10 11 // DashboardEventControlHooks is a struct which implements ControlHooks, 12 // and raises ControlComplete and ControlError dashboard events 13 type DashboardEventControlHooks struct { 14 CheckRun *CheckRun 15 } 16 17 func NewDashboardEventControlHooks(r *CheckRun) *DashboardEventControlHooks { 18 return &DashboardEventControlHooks{ 19 CheckRun: r, 20 } 21 } 22 23 func (c *DashboardEventControlHooks) OnStart(ctx context.Context, _ *controlstatus.ControlProgress) { 24 // nothing to do 25 } 26 27 func (c *DashboardEventControlHooks) OnControlStart(context.Context, controlstatus.ControlRunStatusProvider, *controlstatus.ControlProgress) { 28 } 29 30 func (c *DashboardEventControlHooks) OnControlComplete(ctx context.Context, controlRun controlstatus.ControlRunStatusProvider, progress *controlstatus.ControlProgress) { 31 event := &dashboardevents.ControlComplete{ 32 Control: controlRun, 33 Progress: progress, 34 Name: c.CheckRun.Name, 35 ExecutionId: c.CheckRun.executionTree.id, 36 Session: c.CheckRun.SessionId, 37 Timestamp: time.Now(), 38 } 39 c.CheckRun.executionTree.workspace.PublishDashboardEvent(ctx, event) 40 } 41 42 func (c *DashboardEventControlHooks) OnControlError(ctx context.Context, controlRun controlstatus.ControlRunStatusProvider, progress *controlstatus.ControlProgress) { 43 var event = &dashboardevents.ControlError{ 44 Control: controlRun, 45 Progress: progress, 46 Name: c.CheckRun.Name, 47 ExecutionId: c.CheckRun.executionTree.id, 48 Session: c.CheckRun.SessionId, 49 Timestamp: time.Now(), 50 } 51 c.CheckRun.executionTree.workspace.PublishDashboardEvent(ctx, event) 52 } 53 54 func (c *DashboardEventControlHooks) OnComplete(ctx context.Context, _ *controlstatus.ControlProgress) { 55 // nothing to do - LeafNodeDone will be sent anyway 56 }