Skip to content

Commit c7f6f75

Browse files
code review comments incorporated - error handled
1 parent 36f77c5 commit c7f6f75

File tree

1 file changed

+37
-32
lines changed

1 file changed

+37
-32
lines changed

pkg/module/ModuleCacheService.go

Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,11 @@ func NewModuleCacheServiceImpl(logger *zap.SugaredLogger, K8sUtil *k8s.K8sServic
102102
if serverEnvConfig.DevtronInstallationType == serverBean.DevtronInstallationTypeOssHelm {
103103
// listen in installer object to save status in-memory
104104
// build informer to listen on installer object
105-
go impl.buildInformerToListenOnInstallerObject()
105+
err := impl.buildInformerToListenOnInstallerObject()
106+
if err != nil {
107+
log.Println("Error building informer:", err)
108+
return nil, err
109+
}
106110
}
107111

108112
return impl, nil
@@ -123,42 +127,43 @@ func (impl *ModuleCacheServiceImpl) updateModuleToInstalled(moduleName string) e
123127
return nil
124128
}
125129

126-
func (impl *ModuleCacheServiceImpl) buildInformerToListenOnInstallerObject() {
130+
func (impl *ModuleCacheServiceImpl) buildInformerToListenOnInstallerObject() error {
127131
impl.logger.Debug("building informer cache to listen on installer object")
128132
_, _, clusterDynamicClient, err := impl.K8sUtil.GetK8sInClusterConfigAndDynamicClients()
129133
if err != nil {
130134
log.Println("not able to get k8s cluster rest config.", "error", err)
131-
os.Exit(2)
132-
return
133-
}
134-
135-
installerResource := schema.GroupVersionResource{
136-
Group: impl.serverEnvConfig.InstallerCrdObjectGroupName,
137-
Version: impl.serverEnvConfig.InstallerCrdObjectVersion,
138-
Resource: impl.serverEnvConfig.InstallerCrdObjectResource,
135+
return err
139136
}
140-
factory := dynamicinformer.NewFilteredDynamicSharedInformerFactory(
141-
clusterDynamicClient, time.Minute, impl.serverEnvConfig.InstallerCrdNamespace, nil)
142-
informer := factory.ForResource(installerResource).Informer()
143-
144-
informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
145-
AddFunc: func(obj interface{}) {
146-
impl.handleInstallerObjectChange(obj)
147-
},
148-
UpdateFunc: func(oldObj, newObj interface{}) {
149-
impl.handleInstallerObjectChange(newObj)
150-
},
151-
DeleteFunc: func(obj interface{}) {
152-
impl.serverDataStore.InstallerCrdObjectStatus = ""
153-
impl.serverDataStore.InstallerCrdObjectExists = false
154-
},
155-
})
156-
157-
ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt)
158-
defer cancel()
159-
160-
go informer.Run(ctx.Done())
161-
<-ctx.Done()
137+
go func() {
138+
installerResource := schema.GroupVersionResource{
139+
Group: impl.serverEnvConfig.InstallerCrdObjectGroupName,
140+
Version: impl.serverEnvConfig.InstallerCrdObjectVersion,
141+
Resource: impl.serverEnvConfig.InstallerCrdObjectResource,
142+
}
143+
factory := dynamicinformer.NewFilteredDynamicSharedInformerFactory(
144+
clusterDynamicClient, time.Minute, impl.serverEnvConfig.InstallerCrdNamespace, nil)
145+
informer := factory.ForResource(installerResource).Informer()
146+
147+
informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
148+
AddFunc: func(obj interface{}) {
149+
impl.handleInstallerObjectChange(obj)
150+
},
151+
UpdateFunc: func(oldObj, newObj interface{}) {
152+
impl.handleInstallerObjectChange(newObj)
153+
},
154+
DeleteFunc: func(obj interface{}) {
155+
impl.serverDataStore.InstallerCrdObjectStatus = ""
156+
impl.serverDataStore.InstallerCrdObjectExists = false
157+
},
158+
})
159+
160+
ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt)
161+
defer cancel()
162+
163+
go informer.Run(ctx.Done())
164+
<-ctx.Done()
165+
}()
166+
return nil
162167
}
163168

164169
func (impl *ModuleCacheServiceImpl) handleInstallerObjectChange(obj interface{}) {

0 commit comments

Comments
 (0)