@@ -19,6 +19,7 @@ package delete
1919import (
2020 "fmt"
2121 "github.com/devtron-labs/common-lib/utils/k8s"
22+ appRepository "github.com/devtron-labs/devtron/internal/sql/repository/app"
2223 dockerRegistryRepository "github.com/devtron-labs/devtron/internal/sql/repository/dockerRegistry"
2324 "github.com/devtron-labs/devtron/internal/util"
2425 "github.com/devtron-labs/devtron/pkg/appStore/installedApp/repository"
@@ -58,6 +59,7 @@ type DeleteServiceImpl struct {
5859 dockerRegistryRepository dockerRegistryRepository.DockerArtifactStoreRepository
5960 K8sUtil k8s.K8sService
6061 k8sInformerFactory informer.K8sInformerFactory
62+ appRepository appRepository.AppRepository
6163}
6264
6365func NewDeleteServiceImpl (logger * zap.SugaredLogger ,
@@ -70,6 +72,7 @@ func NewDeleteServiceImpl(logger *zap.SugaredLogger,
7072 dockerRegistryRepository dockerRegistryRepository.DockerArtifactStoreRepository ,
7173 k8sInformerFactory informer.K8sInformerFactory ,
7274 K8sUtil k8s.K8sService ,
75+ appRepository appRepository.AppRepository ,
7376) * DeleteServiceImpl {
7477 return & DeleteServiceImpl {
7578 logger : logger ,
@@ -82,6 +85,7 @@ func NewDeleteServiceImpl(logger *zap.SugaredLogger,
8285 dockerRegistryRepository : dockerRegistryRepository ,
8386 K8sUtil : K8sUtil ,
8487 k8sInformerFactory : k8sInformerFactory ,
88+ appRepository : appRepository ,
8589 }
8690}
8791
@@ -94,7 +98,8 @@ func (impl DeleteServiceImpl) DeleteCluster(deleteRequest *bean2.ClusterBean, us
9498 err = impl .DeleteClusterSecret (deleteRequest , err )
9599 if err != nil {
96100 impl .logger .Errorw ("error in deleting cluster secret" , "clusterId" , deleteRequest .Id , "error" , err )
97- return err
101+ // We are not returning error as it is not a blocking call as cluster can be unreachable at that time, and we have already deleted cluster from db.
102+ //return err
98103 }
99104 impl .k8sInformerFactory .DeleteClusterFromCache (clusterName )
100105 return nil
@@ -121,7 +126,17 @@ func (impl DeleteServiceImpl) DeleteEnvironment(deleteRequest *bean.EnvironmentB
121126 return nil
122127}
123128func (impl DeleteServiceImpl ) DeleteTeam (deleteRequest * bean3.TeamRequest ) error {
124- err := impl .teamService .Delete (deleteRequest )
129+ //finding if this project is used in some app; if yes, will not perform delete operation
130+ apps , err := impl .appRepository .FindAppsByTeamId (deleteRequest .Id )
131+ if err != nil && err != pg .ErrNoRows {
132+ impl .logger .Errorw ("err in deleting team" , "teamId" , deleteRequest .Id , "err" , err )
133+ return err
134+ }
135+ if len (apps ) > 0 {
136+ impl .logger .Errorw ("err in deleting team, found apps in team" , "teamName" , deleteRequest .Name , "err" , err )
137+ return fmt .Errorf (" Please delete all apps in this project before deleting this project" )
138+ }
139+ err = impl .teamService .Delete (deleteRequest )
125140 if err != nil {
126141 impl .logger .Errorw ("error in deleting team" , "err" , err , "deleteRequest" , deleteRequest )
127142 return err
0 commit comments