@@ -21,7 +21,9 @@ import (
2121 "crypto/tls"
2222 "fmt"
2323 "github.com/devtron-labs/common-lib/middlewares"
24+ pubsub "github.com/devtron-labs/common-lib/pubsub-lib"
2425 "github.com/devtron-labs/devtron/pkg/eventProcessor"
26+ "github.com/devtron-labs/devtron/pkg/eventProcessor/in"
2527 "log"
2628 "net/http"
2729 "os"
@@ -53,10 +55,12 @@ type App struct {
5355 posthogClient * telemetry.PosthogClient
5456 centralEventProcessor * eventProcessor.CentralEventProcessor
5557 // used for local dev only
56- serveTls bool
57- sessionManager2 * authMiddleware.SessionManager
58- OtelTracingService * otel.OtelTracingServiceImpl
59- loggingMiddleware util.LoggingMiddleware
58+ serveTls bool
59+ sessionManager2 * authMiddleware.SessionManager
60+ OtelTracingService * otel.OtelTracingServiceImpl
61+ loggingMiddleware util.LoggingMiddleware
62+ pubSubClient * pubsub.PubSubClientServiceImpl
63+ workflowEventProcessorImpl * in.WorkflowEventProcessorImpl
6064}
6165
6266func NewApp (router * router.MuxRouter ,
@@ -68,21 +72,25 @@ func NewApp(router *router.MuxRouter,
6872 posthogClient * telemetry.PosthogClient ,
6973 loggingMiddleware util.LoggingMiddleware ,
7074 centralEventProcessor * eventProcessor.CentralEventProcessor ,
75+ pubSubClient * pubsub.PubSubClientServiceImpl ,
76+ workflowEventProcessorImpl * in.WorkflowEventProcessorImpl ,
7177) * App {
7278 //check argo connection
7379 //todo - check argo-cd version on acd integration installation
7480 app := & App {
75- MuxRouter : router ,
76- Logger : Logger ,
77- SSE : sse ,
78- Enforcer : enforcer ,
79- db : db ,
80- serveTls : false ,
81- sessionManager2 : sessionManager2 ,
82- posthogClient : posthogClient ,
83- OtelTracingService : otel .NewOtelTracingServiceImpl (Logger ),
84- loggingMiddleware : loggingMiddleware ,
85- centralEventProcessor : centralEventProcessor ,
81+ MuxRouter : router ,
82+ Logger : Logger ,
83+ SSE : sse ,
84+ Enforcer : enforcer ,
85+ db : db ,
86+ serveTls : false ,
87+ sessionManager2 : sessionManager2 ,
88+ posthogClient : posthogClient ,
89+ OtelTracingService : otel .NewOtelTracingServiceImpl (Logger ),
90+ loggingMiddleware : loggingMiddleware ,
91+ centralEventProcessor : centralEventProcessor ,
92+ pubSubClient : pubSubClient ,
93+ workflowEventProcessorImpl : workflowEventProcessorImpl ,
8694 }
8795 return app
8896}
@@ -132,14 +140,19 @@ func (app *App) Start() {
132140
133141func (app * App ) Stop () {
134142 app .Logger .Info ("orchestrator shutdown initiating" )
143+ err := app .pubSubClient .ShutDown ()
144+ if err != nil {
145+ app .Logger .Errorw ("error in NATS client shutdown" , "err" , err )
146+ }
147+ app .workflowEventProcessorImpl .ShutDownDevtronAppReleaseContext ()
135148 posthogCl := app .posthogClient .Client
136149 if posthogCl != nil {
137150 app .Logger .Info ("flushing messages of posthog" )
138151 posthogCl .Close ()
139152 }
140153 timeoutContext , _ := context .WithTimeout (context .Background (), 5 * time .Second )
141154 app .Logger .Infow ("closing router" )
142- err : = app .server .Shutdown (timeoutContext )
155+ err = app .server .Shutdown (timeoutContext )
143156 if err != nil {
144157 app .Logger .Errorw ("error in mux router shutdown" , "err" , err )
145158 }
0 commit comments