From f3016357d36a9c7f9a59e1ff71f39f7b3b134f21 Mon Sep 17 00:00:00 2001 From: Ansuman Satapathy Date: Mon, 28 Oct 2024 05:06:08 +0000 Subject: [PATCH] feat: [CDE-332]: added an event and method for auto-stopping (#2876) * feat: [CDE-332]: added an event and method for auto-stopping --- app/api/controller/gitspace/events.go | 4 +++- app/services/gitspace/action.go | 12 ++++++++++++ types/enum/gitspace_event_type.go | 5 +++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/api/controller/gitspace/events.go b/app/api/controller/gitspace/events.go index 1f30f376b..6ef829860 100644 --- a/app/api/controller/gitspace/events.go +++ b/app/api/controller/gitspace/events.go @@ -77,7 +77,7 @@ func eventsMessageMapping() map[enum.GitspaceEventType]string { gitspaceConfigsMap[enum.GitspaceEventTypeGitspaceActionStartCompleted] = "Started gitspace" gitspaceConfigsMap[enum.GitspaceEventTypeGitspaceActionStartFailed] = "Starting gitspace failed" - gitspaceConfigsMap[enum.GitspaceEventTypeGitspaceActionStop] = "Stopping gitspace" + gitspaceConfigsMap[enum.GitspaceEventTypeGitspaceActionStop] = "Stopping gitspace..." gitspaceConfigsMap[enum.GitspaceEventTypeGitspaceActionStopCompleted] = "Stopped gitspace" gitspaceConfigsMap[enum.GitspaceEventTypeGitspaceActionStopFailed] = "Stopping gitspace failed" @@ -117,5 +117,7 @@ func eventsMessageMapping() map[enum.GitspaceEventType]string { gitspaceConfigsMap[enum.GitspaceEventTypeAgentGitspaceStateReportStopped] = "Gitspace is stopped" gitspaceConfigsMap[enum.GitspaceEventTypeAgentGitspaceStateReportUnknown] = "Gitspace is in unknown state" gitspaceConfigsMap[enum.GitspaceEventTypeAgentGitspaceStateReportError] = "Gitspace has an error" + + gitspaceConfigsMap[enum.GitspaceEventTypeGitspaceAutoStop] = "Triggering auto-stopping due to inactivity..." return gitspaceConfigsMap } diff --git a/app/services/gitspace/action.go b/app/services/gitspace/action.go index 5cca62d06..c0df97371 100644 --- a/app/services/gitspace/action.go +++ b/app/services/gitspace/action.go @@ -66,6 +66,18 @@ func (c *Service) StopGitspaceAction( return nil } +func (c *Service) GitspaceAutostopAction( + ctx context.Context, + config *types.GitspaceConfig, + now time.Time, +) error { + c.EmitGitspaceConfigEvent(ctx, config, enum.GitspaceEventTypeGitspaceAutoStop) + if err := c.StopGitspaceAction(ctx, config, now); err != nil { + return err + } + return nil +} + func (c *Service) gitspaceBusyOperation( ctx context.Context, config *types.GitspaceConfig, diff --git a/types/enum/gitspace_event_type.go b/types/enum/gitspace_event_type.go index e8aaea245..a16ceb4cc 100644 --- a/types/enum/gitspace_event_type.go +++ b/types/enum/gitspace_event_type.go @@ -65,6 +65,8 @@ var gitspaceEventTypes = []GitspaceEventType{ GitspaceEventTypeAgentGitspaceStateReportError, GitspaceEventTypeAgentGitspaceStateReportStopped, GitspaceEventTypeAgentGitspaceStateReportUnknown, + + GitspaceEventTypeGitspaceAutoStop, } const ( @@ -123,4 +125,7 @@ const ( GitspaceEventTypeAgentGitspaceStateReportError GitspaceEventType = "agent_gitspace_state_report_error" GitspaceEventTypeAgentGitspaceStateReportStopped GitspaceEventType = "agent_gitspace_state_report_stopped" GitspaceEventTypeAgentGitspaceStateReportUnknown GitspaceEventType = "agent_gitspace_state_report_unknown" + + // AutoStop action events. + GitspaceEventTypeGitspaceAutoStop GitspaceEventType = "gitspace_action_auto_stop" )